Lines Matching refs:ns
84 def get_lib_layout(ns):
90 return ns.include_tests
92 return ns.include_tcltk
94 return ns.include_idle
96 return ns.include_venv
99 return ns.include_tcltk
102 for dest, src in rglob(ns.source / "Lib", "**/*", _c):
106 def get_tcltk_lib(ns):
107 if not ns.include_tcltk:
113 with open(ns.build / "TCL_LIBRARY.env", "r", encoding="utf-8-sig") as f:
125 def get_layout(ns):
129 src = ns.build / f
130 if ns.debug and src not in REQUIRED_DLLS:
137 if ns.include_symbols:
141 if ns.include_dev:
146 if ns.include_appxmanifest:
158 if ns.include_launchers and ns.include_appxmanifest:
159 if ns.include_pip:
161 if ns.include_idle:
164 if ns.include_stable:
168 for dest, src in rglob(ns.build, "vcruntime*.dll"):
174 yield "LICENSE.txt", ns.build / "LICENSE.txt"
176 for dest, src in rglob(ns.build, ("*.pyd", "*.dll")):
177 if src.stem.endswith("_d") != bool(ns.debug) and src not in REQUIRED_DLLS:
181 if src in TEST_PYDS_ONLY and not ns.include_tests:
183 if src in TCLTK_PYDS_ONLY and not ns.include_tcltk:
186 yield from in_build(src.name, dest="" if ns.flat_dlls else "DLLs/")
188 if ns.zip_lib:
190 yield zip_name, ns.temp / zip_name
192 for dest, src in get_lib_layout(ns):
195 if ns.include_venv:
199 if ns.include_tools:
206 for dest, src in rglob(ns.source / "Tools", "**/*", _c):
209 if ns.include_underpth:
210 yield PYTHON_PTH_NAME, ns.temp / PYTHON_PTH_NAME
212 if ns.include_dev:
214 for dest, src in rglob(ns.source / "Include", "**/*.h"):
216 src = ns.source / "PC" / "pyconfig.h"
219 for dest, src in get_tcltk_lib(ns):
222 if ns.include_pip:
223 for dest, src in get_pip_layout(ns):
230 if ns.include_chm:
231 for dest, src in rglob(ns.doc_build / "htmlhelp", PYTHON_CHM_NAME):
234 if ns.include_html_doc:
235 for dest, src in rglob(ns.doc_build / "html", "**/*"):
238 if ns.include_props:
239 for dest, src in get_props_layout(ns):
242 if ns.include_nuspec:
243 for dest, src in get_nuspec_layout(ns):
246 for dest, src in get_appx_layout(ns):
249 if ns.include_cat:
250 if ns.flat_dlls:
251 yield ns.include_cat.name, ns.include_cat
253 yield "DLLs/{}".format(ns.include_cat.name), ns.include_cat
285 def _py_temp_compile(src, name, ns, dest_dir=None, checked=True):
286 if not ns.precompile or src not in PY_FILES or src.parent in DATA_DIRS:
288 dest = (dest_dir or ns.temp) / (src.stem + ".pyc")
292 def _write_to_zip(zf, dest, src, ns, checked=True):
293 pyc = _py_temp_compile(src, dest, ns, checked=checked)
307 tmp = ns.temp / src.name
311 for f in ns.temp.glob(src.stem + "*.pickle"):
328 def generate_source_files(ns):
329 if ns.zip_lib:
331 zip_path = ns.temp / zip_name
339 log_info("Generating {} in {}", zip_name, ns.temp)
340 ns.temp.mkdir(parents=True, exist_ok=True)
342 for dest, src in get_lib_layout(ns):
343 _write_to_zip(zf, dest, src, ns, checked=False)
345 if ns.include_underpth:
346 log_info("Generating {} in {}", PYTHON_PTH_NAME, ns.temp)
347 ns.temp.mkdir(parents=True, exist_ok=True)
348 with open(ns.temp / PYTHON_PTH_NAME, "w", encoding="utf-8") as f:
349 if ns.zip_lib:
351 if ns.include_pip:
356 if not ns.flat_dlls:
363 if ns.include_pip:
365 extract_pip_files(ns)
368 def _create_zip_file(ns):
369 if not ns.zip:
372 if ns.zip.is_file():
374 ns.zip.unlink()
376 log_exception("Unable to remove {}", ns.zip)
378 elif ns.zip.is_dir():
379 log_error("Cannot create ZIP file because {} is a directory", ns.zip)
382 ns.zip.parent.mkdir(parents=True, exist_ok=True)
383 return zipfile.ZipFile(ns.zip, "w", zipfile.ZIP_DEFLATED)
386 def copy_files(files, ns):
387 if ns.copy:
388 ns.copy.mkdir(parents=True, exist_ok=True)
396 zip_file = _create_zip_file(ns)
412 if ns.copy:
413 log_debug("Copy {} -> {}", src, ns.copy / dest)
414 (ns.copy / dest).parent.mkdir(parents=True, exist_ok=True)
415 with open(ns.copy / dest, "wb") as f:
417 if ns.zip:
418 log_debug("Zip {} into {}", src, ns.zip)
423 ns.precompile
429 if ns.copy:
430 need_compile.append((dest, ns.copy / dest))
432 (ns.temp / "Lib" / dest).parent.mkdir(parents=True, exist_ok=True)
433 copy_if_modified(src, ns.temp / "Lib" / dest)
434 need_compile.append((dest, ns.temp / "Lib" / dest))
439 if ns.copy:
440 log_debug("Copy {} -> {}", src, ns.copy / dest)
441 (ns.copy / dest).parent.mkdir(parents=True, exist_ok=True)
443 copy_if_modified(src, ns.copy / dest)
447 if ns.zip:
448 log_debug("Zip {} into {}", src, ns.zip)
462 if ns.zip:
463 log_debug("Zip {} into {}", c, ns.zip)
467 if ns.catalog:
470 log_info("Generating {}", ns.catalog)
471 ns.catalog.parent.mkdir(parents=True, exist_ok=True)
472 write_catalog(ns.catalog, in_catalog)
574 ns = parser.parse_args()
575 update_presets(ns)
577 ns.source = ns.source or (Path(__file__).resolve().parent.parent.parent)
578 ns.build = ns.build or Path(sys.executable).parent
579 ns.temp = ns.temp or Path(tempfile.mkdtemp())
580 ns.doc_build = ns.doc_build or (ns.source / "Doc" / "build")
581 if not ns.source.is_absolute():
582 ns.source = (Path.cwd() / ns.source).resolve()
583 if not ns.build.is_absolute():
584 ns.build = (Path.cwd() / ns.build).resolve()
585 if not ns.temp.is_absolute():
586 ns.temp = (Path.cwd() / ns.temp).resolve()
587 if not ns.doc_build.is_absolute():
588 ns.doc_build = (Path.cwd() / ns.doc_build).resolve()
589 if ns.include_cat and not ns.include_cat.is_absolute():
590 ns.include_cat = (Path.cwd() / ns.include_cat).resolve()
591 if not ns.arch:
592 ns.arch = "amd64" if sys.maxsize > 2 ** 32 else "win32"
594 if ns.copy and not ns.copy.is_absolute():
595 ns.copy = (Path.cwd() / ns.copy).resolve()
596 if ns.zip and not ns.zip.is_absolute():
597 ns.zip = (Path.cwd() / ns.zip).resolve()
598 if ns.catalog and not ns.catalog.is_absolute():
599 ns.catalog = (Path.cwd() / ns.catalog).resolve()
601 configure_logger(ns)
605 Source: {ns.source}
606 Build: {ns.build}
607 Temp: {ns.temp}
608 Arch: {ns.arch}
610 Copy to: {ns.copy}
611 Zip to: {ns.zip}
612 Catalog: {ns.catalog}""",
613 ns=ns,
616 if ns.arch not in ("win32", "amd64", "arm32", "arm64"):
619 if ns.arch in ("arm32", "arm64"):
621 if getattr(ns, n):
623 setattr(ns, n, False)
625 if ns.include_idle and not ns.include_tcltk:
627 ns.include_tcltk = True
630 generate_source_files(ns)
631 files = list(get_layout(ns))
632 copy_files(files, ns)