MCPcopy
hub / github.com/pex-tool/pex / main

Function main

scripts/gen-scie-platform.py:263–331  ·  view source on GitHub ↗
(out: IO[str])

Source from the content-addressed store, hash-verified

261
262
263def main(out: IO[str]) -> str | int | None:
264 parser = argparse.ArgumentParser()
265 parser.add_argument("-d", "--dest-dir", type=Path, default=PACKAGE_DIR / "complete-platforms")
266 parser.add_argument("--pbs-release")
267 parser.add_argument("--python-version")
268 parser.add_argument("--encoded-scie-config")
269 parser.add_argument("--all", action="store_true")
270 parser.add_argument("-f", "--force", action="store_true")
271 parser.add_argument("--lock-file", type=Path, default=PACKAGE_DIR / "pex-scie.lock")
272 sync_lock_options = parser.add_mutually_exclusive_group()
273 sync_lock_options.add_argument("-L", "--only-sync-lock", default=False, action="store_true")
274 sync_lock_options.add_argument(
275 "--no-sync-lock", dest="sync_lock", default=True, action="store_false"
276 )
277 parser.add_argument("-v", "--verbose", action="store_true")
278 try:
279 options = parser.parse_args()
280 except (ArgumentError, ArgumentTypeError) as e:
281 return str(e)
282
283 scie_config = ScieConfig.load(
284 pbs_release=options.pbs_release,
285 python_version=options.python_version,
286 encoded_config=options.encoded_scie_config,
287 )
288
289 logging.basicConfig(level=logging.INFO if options.verbose else logging.WARNING)
290
291 generated_files: list[Path] = []
292 if not options.only_sync_lock:
293 if options.all:
294 try:
295 generated_files.extend(
296 ensure_all_complete_platforms(
297 dest_dir=options.dest_dir, scie_config=scie_config, force=options.force
298 )
299 )
300 except (
301 GitHubError,
302 github.GithubException,
303 github.BadAttributeException,
304 httpx.HTTPError,
305 ) as e:
306 return str(e)
307 else:
308 current_platform = scie_config.current_platform()
309 complete_platform_file = options.dest_dir / f"{current_platform.name}.json"
310 try:
311 create_complete_platform(
312 complete_platform_file=complete_platform_file, platform=current_platform
313 )
314 except subprocess.CalledProcessError as e:
315 return str(e)
316 generated_files.append(complete_platform_file)
317
318 if options.only_sync_lock or options.sync_lock:
319 try:
320 create_lock(

Callers 1

Calls 8

create_complete_platformFunction · 0.85
parse_argsMethod · 0.80
extendMethod · 0.80
current_platformMethod · 0.80
appendMethod · 0.80
create_lockFunction · 0.70
loadMethod · 0.45

Tested by

no test coverage detected