mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
extend arguments
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user