(argv: list[str] | None = None)
| 418 | |
| 419 | |
| 420 | def main(argv: list[str] | None = None) -> int: |
| 421 | parser = argparse.ArgumentParser( |
| 422 | description=__doc__, |
| 423 | formatter_class=argparse.RawDescriptionHelpFormatter, |
| 424 | ) |
| 425 | parser.add_argument( |
| 426 | "names", |
| 427 | nargs="+", |
| 428 | help="Module names (e.g., dis, dataclasses) or 'all' for all modules", |
| 429 | ) |
| 430 | parser.add_argument( |
| 431 | "--cpython", |
| 432 | default="cpython", |
| 433 | help="CPython directory prefix (default: cpython)", |
| 434 | ) |
| 435 | parser.add_argument( |
| 436 | "--lib", |
| 437 | default="Lib", |
| 438 | help="Local Lib directory prefix (default: Lib)", |
| 439 | ) |
| 440 | parser.add_argument( |
| 441 | "--depth", |
| 442 | type=int, |
| 443 | default=10, |
| 444 | help="Maximum recursion depth for soft_deps tree (default: 10)", |
| 445 | ) |
| 446 | |
| 447 | args = parser.parse_args(argv) |
| 448 | |
| 449 | try: |
| 450 | show_deps(args.names, args.cpython, args.lib, args.depth) |
| 451 | return 0 |
| 452 | except Exception as e: |
| 453 | print(f"Error: {e}", file=sys.stderr) |
| 454 | return 1 |
| 455 | |
| 456 | |
| 457 | if __name__ == "__main__": |
no test coverage detected