Files
cool-domain/cool_domain/params.py
T
klemek 11de7386f0
Python Lint CI / ruff (push) Successful in 48s
Python Lint CI / ruff-format-check (push) Successful in 48s
Python Lint CI / ty (push) Successful in 48s
Python Test CI / coverage (push) Successful in 1m44s
chore: template usage
2026-06-15 10:27:21 +02: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)