Skip to content

Commit b7f1e21

Browse files
committed
carefully picked tweaks from Mistral AI
1 parent 5e1a8f2 commit b7f1e21

File tree

1 file changed

+28
-40
lines changed

1 file changed

+28
-40
lines changed

make.py

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,13 @@ def build_installer_7zip(script_template_path: Path, output_script_path: Path, r
4646
("PORTABLE_DIR=", f"PORTABLE_DIR={PORTABLE_DIRECTORY}& rem "),
4747
("SEVENZIP_EXE=", f"SEVENZIP_EXE={find_7zip_executable()}& rem "),
4848
] + [(f"{a}=", f"{a}={b}& rem ") for a, b in replacements]
49-
49+
5050
utils.replace_in_file(script_template_path, data_to_replace, output_script_path)
5151

5252
try:
5353
# Execute the generated 7-Zip script, with stdout=sys.stderr to see 7zip compressing
54-
command = f'"{output_script_path}"'
55-
print(f"Executing 7-Zip script: {command}")
56-
subprocess.run(command, shell=True, check=True, stderr=sys.stderr, stdout=sys.stderr)
54+
print(f'Executing 7-Zip script: "{output_script_path}"')
55+
subprocess.run(f'"{output_script_path}"', shell=True, check=True, stderr=sys.stderr, stdout=sys.stderr)
5756
except subprocess.CalledProcessError as e:
5857
print(f"Error executing 7-Zip script: {e}", file=sys.stderr)
5958

@@ -76,11 +75,9 @@ def copy_items(source_directories: list[Path], target_directory: Path, verbose:
7675

7776
def parse_list_argument(argument_value: str | list[str], separator=" ") -> list[str]:
7877
"""Parse a separated list argument into a list of strings."""
79-
if argument_value is None:
78+
if not argument_value:
8079
return []
81-
if isinstance(argument_value, str):
82-
return argument_value.split(separator)
83-
return list(argument_value)
80+
return argument_value.split(separator) if isinstance(argument_value, str) else list(argument_value)
8481

8582
class WinPythonDistributionBuilder:
8683
"""Builds a WinPython distribution."""
@@ -163,20 +160,17 @@ def _get_installed_tools_markdown(self) -> str:
163160

164161
def get_tool_path(relative_path):
165162
path = self.winpython_directory / relative_path if self.winpython_directory else None
166-
return path if path and (path.is_file() or path.is_dir()) else None
163+
return path if path and path.exists() else None
167164

168165
if nodejs_path := get_tool_path(self.NODEJS_RELATIVE_PATH):
169-
node_version = utils.get_nodejs_version(nodejs_path)
170-
npm_version = utils.get_npmjs_version(nodejs_path)
171-
installed_tools += [("Nodejs", node_version), ("npmjs", npm_version)]
166+
installed_tools.append(("Nodejs", utils.get_nodejs_version(nodejs_path)))
167+
installed_tools.append(("npmjs", utils.get_npmjs_version(nodejs_path)))
172168

173-
if pandoc_executable := get_tool_path("t/pandoc.exe"):
174-
pandoc_version = utils.get_pandoc_version(str(pandoc_executable.parent))
175-
installed_tools.append(("Pandoc", pandoc_version))
169+
if pandoc_exe := get_tool_path("t/pandoc.exe"):
170+
installed_tools.append(("Pandoc", utils.get_pandoc_version(str(pandoc_exe.parent))))
176171

177-
if vscode_executable := get_tool_path("t/VSCode/Code.exe"):
178-
vscode_version = utils.getFileProperties(str(vscode_executable))["FileVersion"]
179-
installed_tools.append(("VSCode", vscode_version))
172+
if vscode_exe := get_tool_path("t/VSCode/Code.exe"):
173+
installed_tools.append(("VSCode", utils.getFileProperties(str(vscode_exe))["FileVersion"]))
180174

181175
tool_lines = []
182176
for name, version in installed_tools:
@@ -187,7 +181,7 @@ def get_tool_path(relative_path):
187181

188182
def _get_installed_packages_markdown(self) -> str:
189183
"""Generates Markdown for installed packages section in package index."""
190-
if self.distribution is None:
184+
if not self.distribution:
191185
return "" # Distribution not initialized yet.
192186
self.installed_packages = self.distribution.get_installed_packages(update=True)
193187
package_lines = [
@@ -204,25 +198,20 @@ def winpython_version_name(self) -> str:
204198
@property
205199
def python_full_version(self) -> str:
206200
"""Retrieves the Python full version string from the distribution."""
207-
if self.distribution is None:
208-
return "0.0.0" # Placeholder before initialization
209-
return utils.get_python_long_version(self.distribution.target)
201+
return utils.get_python_long_version(self.distribution.target) if self.distribution else "0.0.0"
210202

211203
@property
212204
def python_executable_directory(self) -> str:
213205
"""Returns the directory containing the Python executable."""
214-
python_path_directory = self.winpython_directory / self.python_directory_name if self.winpython_directory else None
215-
if python_path_directory and python_path_directory.is_dir():
216-
return str(python_path_directory)
217-
python_path_executable = self.winpython_directory / self.python_name if self.winpython_directory else None
218-
return str(python_path_executable) if python_path_executable else ""
206+
if self.winpython_directory:
207+
python_path_directory = self.winpython_directory / self.python_directory_name
208+
return str(python_path_directory) if python_path_directory.is_dir() else str(self.winpython_directory / self.python_name)
209+
return ""
219210

220211
@property
221212
def architecture_bits(self) -> int:
222213
"""Returns the architecture (32 or 64 bits) of the distribution."""
223-
if self.distribution:
224-
return self.distribution.architecture
225-
return 64
214+
return self.distribution.architecture if self.distribution else 64
226215

227216
def create_installer_7zip(self, installer_type: str = ".exe"):
228217
"""Creates a WinPython installer using 7-Zip: ".exe", ".7z", ".zip")"""
@@ -241,7 +230,6 @@ def create_installer_7zip(self, installer_type: str = ".exe"):
241230
("RELEASELEVEL", self.release_level),
242231
("INSTALLER_OPTION", installer_type),
243232
]
244-
245233
build_installer_7zip(PORTABLE_DIRECTORY / template_name, self.target_directory / output_name, replacements)
246234

247235
def _print_action(self, text: str):
@@ -351,9 +339,9 @@ def build(self, rebuild: bool = True, requirements_files_list=None, winpy_dirnam
351339

352340
def rebuild_winpython_package(source_directory: Path, target_directory: Path, architecture: int = 64, verbose: bool = False):
353341
"""Rebuilds the winpython package from source using flit."""
354-
for filename in os.listdir(target_directory):
355-
if filename.startswith("winpython-") and filename.endswith((".exe", ".whl", ".gz")):
356-
os.remove(Path(target_directory) / filename)
342+
for file in target_directory.glob("winpython-*"):
343+
if file.suffix in (".exe", ".whl", ".gz"):
344+
file.unlink()
357345
utils.buildflit_wininst(source_directory, copy_to=target_directory, verbose=verbose)
358346

359347
def make_all(build_number: int, release_level: str, pyver: str, architecture: int, basedir: Path,
@@ -391,14 +379,14 @@ def make_all(build_number: int, release_level: str, pyver: str, architecture: in
391379
find_links_dirs_list = parse_list_argument(find_links, ",")
392380
requirements_files_list = [Path(f) for f in parse_list_argument(requirements, ",") if f]
393381
find_links_options = [f"--find-links={link}" for link in find_links_dirs_list + [source_dirs]]
394-
build_directory = str(Path(basedir) / ("bu" + flavor))
382+
build_directory = Path(basedir) / ("bu" + flavor)
395383

396384
if rebuild:
397385
utils.print_box(f"Making WinPython {architecture}bits at {Path(basedir) / ('bu' + flavor)}")
398-
os.makedirs(Path(build_directory), exist_ok=True)
386+
os.makedirs(build_directory, exist_ok=True)
399387
# use source_dirs as the directory to re-build Winpython wheel
400388
winpython_source_dir = Path(__file__).resolve().parent
401-
rebuild_winpython_package(winpython_source_dir, source_dirs, architecture, verbose)
389+
rebuild_winpython_package(winpython_source_dir, Path(source_dirs), architecture, verbose)
402390

403391
builder = WinPythonDistributionBuilder(
404392
build_number, release_level, build_directory, wheels_directory=source_dirs,
@@ -420,11 +408,11 @@ def make_all(build_number: int, release_level: str, pyver: str, architecture: in
420408

421409
builder.build(rebuild=rebuild, requirements_files_list=requirements_files_list, winpy_dirname=winpython_dirname)
422410

423-
if ".zip" in str(create_installer).lower():
411+
if ".zip" in create_installer.lower():
424412
builder.create_installer_7zip(".zip")
425-
if ".7z" in str(create_installer).lower():
413+
if ".7z" in create_installer.lower():
426414
builder.create_installer_7zip(".7z")
427-
if "7zip" in str(create_installer).lower():
415+
if "7zip" in create_installer.lower():
428416
builder.create_installer_7zip(".exe")
429417

430418
if __name__ == "__main__":

0 commit comments

Comments
 (0)