extend arguments

This commit is contained in:
2025-10-09 20:23:52 +03:00
parent 0bdc3f07c2
commit b3b5e2e8a8
6 changed files with 89 additions and 28 deletions
+18 -8
View File
@@ -2,15 +2,15 @@ from argparse import ArgumentParser, Namespace
from argenta.orchestrator.argparser.arguments.models import (
BooleanArgument,
OptionalArgument,
PositionalArgument,
ValueArgument,
RequiredArgument,
)
class ArgParser:
def __init__(
self,
processed_args: list[PositionalArgument | OptionalArgument | BooleanArgument], *,
processed_args: list[RequiredArgument | ValueArgument | BooleanArgument], *,
name: str = "Argenta",
description: str = "Argenta available arguments",
epilog: str = "github.com/koloideal/Argenta | made by kolo",
@@ -27,13 +27,23 @@ class ArgParser:
self._epilog: str = epilog
self._entity: ArgumentParser = ArgumentParser(prog=name, description=description, epilog=epilog)
self._processed_args: list[PositionalArgument | OptionalArgument | BooleanArgument] = processed_args
self._processed_args: list[RequiredArgument | ValueArgument | BooleanArgument] = processed_args
for arg in processed_args:
if isinstance(arg, PositionalArgument) or isinstance(arg, OptionalArgument):
_ = self._entity.add_argument(arg.string_entity)
else:
_ = self._entity.add_argument(arg.string_entity, action="store_true")
if isinstance(arg, BooleanArgument):
_ = self._entity.add_argument(arg.string_entity,
action=arg.action,
help=arg.help,
required=arg.is_required,
deprecated=arg.is_deprecated)
else:
_ = self._entity.add_argument(arg.string_entity,
action=arg.action,
help=arg.help,
default=arg.default,
choices=arg.possible_values,
required=arg.is_required,
deprecated=arg.is_deprecated)
def parse_args(self) -> Namespace:
return self._entity.parse_args()