refactor(precompiler): give optimize/invalidation_mode flags default values (#2180)
This allows one to actually run this script with *just* these flags:
src, src_name, pyc
Extra: refactor how the enum member is parsed
diff --git a/tools/precompiler/precompiler.py b/tools/precompiler/precompiler.py
index ae7339a..310f2eb 100644
--- a/tools/precompiler/precompiler.py
+++ b/tools/precompiler/precompiler.py
@@ -24,8 +24,8 @@
def _create_parser() -> "argparse.Namespace":
parser = argparse.ArgumentParser(fromfile_prefix_chars="@")
- parser.add_argument("--invalidation_mode")
- parser.add_argument("--optimize", type=int)
+ parser.add_argument("--invalidation_mode", default="CHECKED_HASH")
+ parser.add_argument("--optimize", type=int, default=-1)
parser.add_argument("--python_version")
parser.add_argument("--src", action="append", dest="srcs")
@@ -40,10 +40,10 @@
def _compile(options: "argparse.Namespace") -> None:
try:
- invalidation_mode = getattr(
- py_compile.PycInvalidationMode, options.invalidation_mode.upper()
- )
- except AttributeError as e:
+ invalidation_mode = py_compile.PycInvalidationMode[
+ options.invalidation_mode.upper()
+ ]
+ except KeyError as e:
raise ValueError(
f"Unknown PycInvalidationMode: {options.invalidation_mode}"
) from e