Initial commit

This commit is contained in:
2026-06-15 08:11:11 +00:00
commit 093c553f6c
15 changed files with 758 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
import argparse
import dataclasses
import typing
from . import PKG_NAME
@dataclasses.dataclass(frozen=True, slots=True)
class Parameters:
debug: bool = False
quiet: bool = False
@classmethod
def from_namespace(cls, args: argparse.Namespace) -> Parameters:
return Parameters(**vars(args))
def parse_parameters(args: typing.Sequence[str]) -> Parameters:
default_values = Parameters()
parser = argparse.ArgumentParser(
PKG_NAME,
suggest_on_error=True,
)
parser.add_argument(
"--debug", action=argparse.BooleanOptionalAction, default=default_values.debug
)
parser.add_argument(
"--quiet", action=argparse.BooleanOptionalAction, default=default_values.quiet
)
parsed_args = parser.parse_args(args)
return Parameters.from_namespace(parsed_args)