Files
tout-doux/sample/params.py
T
2026-06-29 19:09:15 +00:00

32 lines
837 B
Python

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)