fix public api

This commit is contained in:
2025-10-13 14:23:47 +03:00
parent 4a895df52c
commit 36b4d16610
36 changed files with 164 additions and 158 deletions
+3 -6
View File
@@ -1,6 +1,3 @@
__all__ = ["App", "Orchestrator", "Router"] from argenta.orchestrator.entity import Orchestrator as Orchestrator
from argenta.app.models import App as App
from argenta.router.entity import Router as Router
from argenta.orchestrator.entity import Orchestrator
from argenta.app.models import App
from argenta.router.entity import Router
+4 -12
View File
@@ -1,12 +1,4 @@
__all__ = [ from argenta.app.models import App as App
"App", from argenta.app.defaults import PredefinedMessages as PredefinedMessages
"PredefinedMessages", from argenta.app.dividing_line.models import DynamicDividingLine as DynamicDividingLine, StaticDividingLine as StaticDividingLine
"DynamicDividingLine", from argenta.app.autocompleter.entity import AutoCompleter as AutoCompleter
"StaticDividingLine",
"AutoCompleter"
]
from argenta.app.models import App
from argenta.app.defaults import PredefinedMessages
from argenta.app.dividing_line.models import DynamicDividingLine, StaticDividingLine
from argenta.app.autocompleter.entity import AutoCompleter
+1 -4
View File
@@ -1,4 +1 @@
__all__ = ["AutoCompleter"] from argenta.app.autocompleter.entity import AutoCompleter as AutoCompleter
from argenta.app.autocompleter.entity import AutoCompleter
+7 -5
View File
@@ -1,3 +1,5 @@
__all__ = ["AutoCompleter"]
import os import os
import readline import readline
from typing import Never from typing import Never
@@ -38,7 +40,7 @@ class AutoCompleter:
i += 1 i += 1
common_prefix = common_prefix[:i] common_prefix = common_prefix[:i]
if state == 0: if state == 0:
readline.insert_text(common_prefix[len(text) :]) readline.insert_text(common_prefix[len(text) :])
readline.redisplay() readline.redisplay()
return None return None
elif len(matches) == 1: elif len(matches) == 1:
@@ -54,10 +56,10 @@ class AutoCompleter:
""" """
if self.history_filename: if self.history_filename:
if os.path.exists(self.history_filename): if os.path.exists(self.history_filename):
readline.read_history_file(self.history_filename) readline.read_history_file(self.history_filename)
else: else:
for line in all_commands: for line in all_commands:
readline.add_history(line) readline.add_history(line)
readline.set_completer(self._complete) readline.set_completer(self._complete)
readline.set_completer_delims(readline.get_completer_delims().replace(" ", "")) readline.set_completer_delims(readline.get_completer_delims().replace(" ", ""))
@@ -69,7 +71,7 @@ class AutoCompleter:
:return: None :return: None
""" """
if self.history_filename: if self.history_filename:
readline.write_history_file(self.history_filename) readline.write_history_file(self.history_filename)
with open(self.history_filename, "r") as history_file: with open(self.history_filename, "r") as history_file:
raw_history = history_file.read() raw_history = history_file.read()
pretty_history: list[str] = [] pretty_history: list[str] = []
@@ -86,5 +88,5 @@ def _get_history_items() -> list[str] | list[Never]:
""" """
return [ return [
readline.get_history_item(i) readline.get_history_item(i)
for i in range(1, readline.get_current_history_length() + 1) for i in range(1, readline.get_current_history_length() + 1)
] ]
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["PredefinedMessages"]
from enum import StrEnum from enum import StrEnum
+1 -4
View File
@@ -1,4 +1 @@
__all__ = ["StaticDividingLine", "DynamicDividingLine"] from argenta.app.dividing_line.models import StaticDividingLine as StaticDividingLine, DynamicDividingLine as DynamicDividingLine
from argenta.app.dividing_line.models import StaticDividingLine, DynamicDividingLine
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["StaticDividingLine", "DynamicDividingLine"]
from abc import ABC from abc import ABC
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["App"]
import io import io
import re import re
from contextlib import redirect_stdout from contextlib import redirect_stdout
+4 -2
View File
@@ -1,3 +1,5 @@
__all__ = ["NonStandardBehaviorHandler", "EmptyCommandHandler", "Printer", "DescriptionMessageGenerator"]
from typing import Protocol, TypeVar from typing import Protocol, TypeVar
T = TypeVar('T', contravariant=True) # noqa: WPS111 T = TypeVar('T', contravariant=True) # noqa: WPS111
@@ -6,11 +8,11 @@ T = TypeVar('T', contravariant=True) # noqa: WPS111
class NonStandardBehaviorHandler(Protocol[T]): class NonStandardBehaviorHandler(Protocol[T]):
def __call__(self, __param: T) -> None: def __call__(self, __param: T) -> None:
raise NotImplementedError raise NotImplementedError
class EmptyCommandHandler(Protocol): class EmptyCommandHandler(Protocol):
def __call__(self) -> None: def __call__(self) -> None:
raise NotImplementedError raise NotImplementedError
class Printer(Protocol): class Printer(Protocol):
def __call__(self, __text: str) -> None: def __call__(self, __text: str) -> None:
@@ -1,3 +1,5 @@
__all__ = ["RegisteredRouters"]
from typing import Iterator, Optional from typing import Iterator, Optional
from argenta.router import Router from argenta.router import Router
+5 -12
View File
@@ -1,12 +1,5 @@
__all__ = [ from argenta.command.models import Command as Command, InputCommand as InputCommand
"Command", from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags
"PossibleValues", from argenta.command.flag import (Flag as Flag,
"PredefinedFlags", Flags as Flags,
"InputCommand", PossibleValues as PossibleValues)
"Flags",
"Flag"
]
from argenta.command.models import Command, InputCommand
from argenta.command.flag import defaults as PredefinedFlags
from argenta.command.flag import (Flag, Flags, PossibleValues)
+7
View File
@@ -1,3 +1,10 @@
__all__ = [
"InputCommandException",
"UnprocessedInputFlagException",
"RepeatedInputFlagsException",
"EmptyInputCommandException",
]
from argenta.command.flag.models import Flag, InputFlag from argenta.command.flag.models import Flag, InputFlag
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from typing import override from typing import override
+7 -11
View File
@@ -1,11 +1,7 @@
__all__ = [ from argenta.command.flag.models import (
"Flag", Flag as Flag,
"InputFlag", InputFlag as InputFlag,
"Flags", PossibleValues as PossibleValues,
"PossibleValues", ValidationStatus as ValidationStatus
"ValidationStatus" )
] from argenta.command.flag.flags.models import Flags as Flags
from argenta.command.flag.models import Flag, InputFlag, PossibleValues, ValidationStatus
from argenta.command.flag.flags.models import Flags
+21 -17
View File
@@ -1,27 +1,31 @@
__all__ = ["PredefinedFlags"]
from typing import Literal from typing import Literal
from argenta.command.flag.models import Flag, PossibleValues from argenta.command.flag.models import Flag, PossibleValues
import re import re
DEFAULT_PREFIX: Literal["-", "--", "---"] = "-" DEFAULT_PREFIX: Literal["-", "--", "---"] = "-"
HELP = Flag(name="help", possible_values=PossibleValues.NEITHER)
SHORT_HELP = Flag(name="H", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER)
INFO = Flag(name="info", possible_values=PossibleValues.NEITHER) # noqa: WPS110 class PredefinedFlags:
SHORT_INFO = Flag(name="I", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER) HELP = Flag(name="help", possible_values=PossibleValues.NEITHER)
SHORT_HELP = Flag(name="H", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER)
ALL = Flag(name="all", possible_values=PossibleValues.NEITHER) INFO = Flag(name="info", possible_values=PossibleValues.NEITHER) # noqa: WPS110
SHORT_ALL = Flag(name="A", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER) SHORT_INFO = Flag(name="I", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER)
HOST = Flag( ALL = Flag(name="all", possible_values=PossibleValues.NEITHER)
name="host", possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") SHORT_ALL = Flag(name="A", prefix=DEFAULT_PREFIX, possible_values=PossibleValues.NEITHER)
)
SHORT_HOST = Flag(
name="H",
prefix=DEFAULT_PREFIX,
possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"),
)
PORT = Flag(name="port", possible_values=re.compile(r"^\d{1,5}$")) HOST = Flag(
SHORT_PORT = Flag(name="P", prefix=DEFAULT_PREFIX, possible_values=re.compile(r"^\d{1,5}$")) name="host", possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
)
SHORT_HOST = Flag(
name="H",
prefix=DEFAULT_PREFIX,
possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"),
)
PORT = Flag(name="port", possible_values=re.compile(r"^\d{1,5}$"))
SHORT_PORT = Flag(name="P", prefix=DEFAULT_PREFIX, possible_values=re.compile(r"^\d{1,5}$"))
+2 -8
View File
@@ -1,10 +1,4 @@
__all__ = [
"Flags",
"InputFlags"
]
from argenta.command.flag.flags.models import ( from argenta.command.flag.flags.models import (
Flags, Flags as Flags,
InputFlags InputFlags as InputFlags
) )
+5 -4
View File
@@ -1,3 +1,5 @@
__all__ = ["Flags", "InputFlags"]
from argenta.command.flag.models import InputFlag, Flag from argenta.command.flag.models import InputFlag, Flag
from typing import Generic, TypeVar, override from typing import Generic, TypeVar, override
from collections.abc import Iterator from collections.abc import Iterator
@@ -52,7 +54,7 @@ class Flags(BaseFlags[Flag]):
:return: entity of the flag or None :return: entity of the flag or None
""" """
return next((flag for flag in self.flags if flag.name == name), None) return next((flag for flag in self.flags if flag.name == name), None)
@override @override
def __eq__(self, other: object) -> bool: def __eq__(self, other: object) -> bool:
if not isinstance(other, Flags): if not isinstance(other, Flags):
@@ -82,9 +84,9 @@ class InputFlags(BaseFlags[InputFlag]):
:return: entity of the flag or None :return: entity of the flag or None
""" """
return next((flag for flag in self.flags if flag.name == name), None) return next((flag for flag in self.flags if flag.name == name), None)
@override @override
def __eq__(self, other: object) -> bool: def __eq__(self, other: object) -> bool:
if not isinstance(other, InputFlags): if not isinstance(other, InputFlags):
raise NotImplementedError raise NotImplementedError
@@ -103,4 +105,3 @@ class InputFlags(BaseFlags[InputFlag]):
return False return False
else: else:
raise TypeError raise TypeError
+11 -9
View File
@@ -1,3 +1,5 @@
__all__ = ["PossibleValues", "ValidationStatus", "Flag", "InputFlag"]
from enum import Enum from enum import Enum
from re import Pattern from re import Pattern
from typing import Literal, override from typing import Literal, override
@@ -16,7 +18,7 @@ class ValidationStatus(Enum):
class Flag: class Flag:
def __init__( def __init__(
self, name: str, *, self, name: str, *,
prefix: Literal["-", "--", "---"] = "--", prefix: Literal["-", "--", "---"] = "--",
possible_values: list[str] | Pattern[str] | PossibleValues = PossibleValues.ALL, possible_values: list[str] | Pattern[str] | PossibleValues = PossibleValues.ALL,
) -> None: ) -> None:
@@ -47,7 +49,7 @@ class Flag:
return input_flag_value in self.possible_values return input_flag_value in self.possible_values
return True return True
@property @property
def string_entity(self) -> str: def string_entity(self) -> str:
""" """
@@ -56,17 +58,17 @@ class Flag:
""" """
string_entity: str = self.prefix + self.name string_entity: str = self.prefix + self.name
return string_entity return string_entity
@override @override
def __str__(self) -> str: def __str__(self) -> str:
return self.string_entity return self.string_entity
@override @override
def __repr__(self) -> str: def __repr__(self) -> str:
return f'Flag<name={self.name}, prefix={self.prefix}>' return f'Flag<name={self.name}, prefix={self.prefix}>'
@override @override
def __eq__(self, other: object) -> bool: def __eq__(self, other: object) -> bool:
if isinstance(other, Flag): if isinstance(other, Flag):
return self.string_entity == other.string_entity return self.string_entity == other.string_entity
else: else:
@@ -91,7 +93,7 @@ class InputFlag:
self.prefix: Literal['-', '--', '---'] = prefix self.prefix: Literal['-', '--', '---'] = prefix
self.input_value: str | None = input_value self.input_value: str | None = input_value
self.status: ValidationStatus | None = status self.status: ValidationStatus | None = status
@property @property
def string_entity(self) -> str: def string_entity(self) -> str:
""" """
@@ -104,13 +106,13 @@ class InputFlag:
@override @override
def __str__(self) -> str: def __str__(self) -> str:
return f'{self.string_entity} {self.input_value}' return f'{self.string_entity} {self.input_value}'
@override @override
def __repr__(self) -> str: def __repr__(self) -> str:
return f'InputFlag<name={self.name}, prefix={self.prefix}, value={self.input_value}, status={self.status}>' return f'InputFlag<name={self.name}, prefix={self.prefix}, value={self.input_value}, status={self.status}>'
@override @override
def __eq__(self, other: object) -> bool: def __eq__(self, other: object) -> bool:
if isinstance(other, InputFlag): if isinstance(other, InputFlag):
return ( return (
self.name == other.name self.name == other.name
+14 -9
View File
@@ -1,3 +1,8 @@
__all__ = [
"Command",
"InputCommand"
]
from argenta.command.flag.models import Flag, InputFlag, ValidationStatus from argenta.command.flag.models import Flag, InputFlag, ValidationStatus
from argenta.command.flag.flags.models import InputFlags, Flags from argenta.command.flag.flags.models import InputFlags, Flags
from argenta.command.exceptions import ( from argenta.command.exceptions import (
@@ -20,7 +25,7 @@ DEFAULT_WITHOUT_INPUT_FLAGS: InputFlags = InputFlags()
class Command: class Command:
def __init__( def __init__(
self, self,
trigger: str, *, trigger: str, *,
description: str | None = None, description: str | None = None,
flags: Flag | Flags = DEFAULT_WITHOUT_FLAGS, flags: Flag | Flags = DEFAULT_WITHOUT_FLAGS,
aliases: list[str] | None = None, aliases: list[str] | None = None,
@@ -57,7 +62,7 @@ class Command:
class InputCommand: class InputCommand:
def __init__(self, trigger: str, *, def __init__(self, trigger: str, *,
input_flags: InputFlag | InputFlags = DEFAULT_WITHOUT_INPUT_FLAGS): input_flags: InputFlag | InputFlags = DEFAULT_WITHOUT_INPUT_FLAGS):
""" """
Private. The model of the input command, after parsing Private. The model of the input command, after parsing
@@ -78,7 +83,7 @@ class InputCommand:
trigger, input_flags = CommandParser(raw_command).parse_raw_command() trigger, input_flags = CommandParser(raw_command).parse_raw_command()
return cls(trigger=trigger, input_flags=input_flags) return cls(trigger=trigger, input_flags=input_flags)
class CommandParser: class CommandParser:
def __init__(self, raw_command: str) -> None: def __init__(self, raw_command: str) -> None:
@@ -113,24 +118,24 @@ class CommandParser:
input_value=crnt_flg_val, input_value=crnt_flg_val,
status=None status=None
) )
if input_flag in self._parsed_input_flags: if input_flag in self._parsed_input_flags:
raise RepeatedInputFlagsException(input_flag) raise RepeatedInputFlagsException(input_flag)
self._parsed_input_flags.add_flag(input_flag) self._parsed_input_flags.add_flag(input_flag)
crnt_flg_name, crnt_flg_val = None, None crnt_flg_name, crnt_flg_val = None, None
return (self._parsed_input_flags, crnt_flg_name, crnt_flg_val) return (self._parsed_input_flags, crnt_flg_name, crnt_flg_val)
def _is_next_token_value(self, current_index: int, def _is_next_token_value(self, current_index: int,
_tokens: list[str] | list[Never]) -> bool: _tokens: list[str] | list[Never]) -> bool:
next_index = current_index + 1 next_index = current_index + 1
if next_index >= len(_tokens): if next_index >= len(_tokens):
return False return False
next_token = _tokens[next_index] next_token = _tokens[next_index]
return not next_token.startswith(MIN_FLAG_PREFIX) return not next_token.startswith(MIN_FLAG_PREFIX)
def _parse_single_token( def _parse_single_token(
token: str, token: str,
crnt_flag_name: str | None, crnt_flag_name: str | None,
+2 -2
View File
@@ -20,9 +20,10 @@ def inject(func: Callable[..., T]) -> Callable[..., T]:
) )
def setup_dishka(app: App, *, auto_inject: bool = False) -> None: def setup_dishka(app: App, container: Container, *, auto_inject: bool = False) -> None:
if auto_inject: if auto_inject:
_auto_inject_handlers(app) _auto_inject_handlers(app)
Response.patch_by_container(container)
def _get_container_from_response( def _get_container_from_response(
@@ -33,7 +34,6 @@ def _get_container_from_response(
if hasattr(arg, "_dishka_container"): if hasattr(arg, "_dishka_container"):
return arg._dishka_container # pyright: ignore[reportPrivateUsage] return arg._dishka_container # pyright: ignore[reportPrivateUsage]
break break
raise RuntimeError("dishka container not found in Response") raise RuntimeError("dishka container not found in Response")
+4
View File
@@ -1,3 +1,7 @@
__all__ = [
'SystemProvider',
]
from argenta.orchestrator.argparser import ArgParser from argenta.orchestrator.argparser import ArgParser
from dishka import Provider, provide, Scope from dishka import Provider, provide, Scope
+1 -4
View File
@@ -1,4 +1 @@
__all__ = ["get_time_of_pre_cycle_setup"] from argenta.metrics.main import get_time_of_pre_cycle_setup as get_time_of_pre_cycle_setup
from argenta.metrics.main import get_time_of_pre_cycle_setup
+4
View File
@@ -1,3 +1,7 @@
__all__ = [
'get_time_of_pre_cycle_setup',
]
import io import io
from contextlib import redirect_stdout from contextlib import redirect_stdout
from time import time from time import time
+2 -4
View File
@@ -1,4 +1,2 @@
__all__ = ["ArgParser", "Orchestrator"] from argenta.orchestrator.argparser.entity import ArgParser as ArgParser
from argenta.orchestrator.entity import Orchestrator as Orchestrator
from argenta.orchestrator.argparser.entity import ArgParser
from argenta.orchestrator.entity import Orchestrator
@@ -1,9 +1,2 @@
__all__ = [ from argenta.orchestrator.argparser.entity import ArgParser as ArgParser
"ArgParser", from argenta.orchestrator.argparser.arguments import BooleanArgument as BooleanArgument, ValueArgument as ValueArgument
"BooleanArgument",
"ValueArgument"
]
from argenta.orchestrator.argparser.entity import ArgParser
from argenta.orchestrator.argparser.arguments import BooleanArgument, ValueArgument
@@ -1,8 +1,5 @@
__all__ = ["BooleanArgument", "ValueArgument", "InputArgument"]
from argenta.orchestrator.argparser.arguments.models import ( from argenta.orchestrator.argparser.arguments.models import (
BooleanArgument, BooleanArgument as BooleanArgument,
ValueArgument, ValueArgument as ValueArgument,
InputArgument InputArgument as InputArgument
) )
@@ -1,3 +1,9 @@
__all__ = [
'BooleanArgument',
'ValueArgument',
'InputArgument'
]
from typing import Literal from typing import Literal
@@ -20,7 +26,7 @@ class BaseArgument:
self.help: str = help self.help: str = help
self.is_deprecated: bool = is_deprecated self.is_deprecated: bool = is_deprecated
self.prefix: Literal["-", "--", "---"] = prefix self.prefix: Literal["-", "--", "---"] = prefix
@property @property
def string_entity(self) -> str: def string_entity(self) -> str:
return self.prefix + self.name return self.prefix + self.name
@@ -29,7 +35,7 @@ class BaseArgument:
class ValueArgument(BaseArgument): class ValueArgument(BaseArgument):
def __init__(self, name: str, *, def __init__(self, name: str, *,
prefix: Literal["-", "--", "---"] = "--", prefix: Literal["-", "--", "---"] = "--",
help: str = "Help message for the value argument", help: str = "Help message for the value argument",
possible_values: list[str] | None = None, possible_values: list[str] | None = None,
default: str | None = None, default: str | None = None,
is_required: bool = False, is_required: bool = False,
@@ -74,9 +80,9 @@ class InputArgument:
self.name: str = name self.name: str = name
self.value: str | None = value self.value: str | None = value
self.founder_class: type[BaseArgument] = founder_class self.founder_class: type[BaseArgument] = founder_class
def __str__(self) -> str: def __str__(self) -> str:
return f"InputArgument({self.name}={self.value})" return f"InputArgument({self.name}={self.value})"
def __repr__(self) -> str: def __repr__(self) -> str:
return f"InputArgument<name={self.name}, value={self.value}, founder_class={self.founder_class.__name__}>" return f"InputArgument<name={self.name}, value={self.value}, founder_class={self.founder_class.__name__}>"
+18 -14
View File
@@ -1,3 +1,8 @@
__all__ = [
"ArgSpace",
"ArgParser",
]
from argparse import ArgumentParser, Namespace from argparse import ArgumentParser, Namespace
from typing import Never, Self from typing import Never, Self
@@ -8,32 +13,32 @@ from argenta.orchestrator.argparser.arguments.models import (
ValueArgument ValueArgument
) )
class ArgSpace: class ArgSpace:
def __init__(self, all_arguments: list[InputArgument]) -> None: def __init__(self, all_arguments: list[InputArgument]) -> None:
self.all_arguments = all_arguments self.all_arguments = all_arguments
@classmethod @classmethod
def from_namespace(cls, namespace: Namespace, def from_namespace(cls, namespace: Namespace,
processed_args: list[ValueArgument | BooleanArgument]) -> Self: processed_args: list[ValueArgument | BooleanArgument]) -> Self:
name_type_paired_args: dict[str, type[BaseArgument]] = { name_type_paired_args: dict[str, type[BaseArgument]] = {
arg.name: type(arg) arg.name: type(arg)
for arg in processed_args for arg in processed_args
} }
return cls([InputArgument(name=name, return cls([InputArgument(name=name,
value=value, value=value,
founder_class=name_type_paired_args[name]) founder_class=name_type_paired_args[name])
for name, value in vars(namespace).items()]) for name, value in vars(namespace).items()])
def get_by_name(self, name: str) -> InputArgument | None: def get_by_name(self, name: str) -> InputArgument | None:
for arg in self.all_arguments: for arg in self.all_arguments:
if arg.name == name: if arg.name == name:
return arg return arg
return None return None
def get_by_type(self, arg_type: type[BaseArgument]) -> list[InputArgument] | list[Never]: def get_by_type(self, arg_type: type[BaseArgument]) -> list[InputArgument] | list[Never]:
return [arg for arg in self.all_arguments if arg.founder_class is arg_type] return [arg for arg in self.all_arguments if arg.founder_class is arg_type]
class ArgParser: class ArgParser:
def __init__( def __init__(
@@ -56,15 +61,15 @@ class ArgParser:
self.processed_args: list[ValueArgument | BooleanArgument] = processed_args self.processed_args: list[ValueArgument | BooleanArgument] = processed_args
self._core: ArgumentParser = ArgumentParser(prog=name, description=description, epilog=epilog) self._core: ArgumentParser = ArgumentParser(prog=name, description=description, epilog=epilog)
for arg in processed_args: for arg in processed_args:
if isinstance(arg, BooleanArgument): if isinstance(arg, BooleanArgument):
_ = self._core.add_argument(arg.string_entity, _ = self._core.add_argument(arg.string_entity,
action=arg.action, action=arg.action,
help=arg.help, help=arg.help,
deprecated=arg.is_deprecated) deprecated=arg.is_deprecated)
else: else:
_ = self._core.add_argument(arg.string_entity, _ = self._core.add_argument(arg.string_entity,
action=arg.action, action=arg.action,
help=arg.help, help=arg.help,
default=arg.default, default=arg.default,
@@ -75,4 +80,3 @@ class ArgParser:
def parse_args(self) -> ArgSpace: def parse_args(self) -> ArgSpace:
return ArgSpace.from_namespace(namespace=self._core.parse_args(), return ArgSpace.from_namespace(namespace=self._core.parse_args(),
processed_args=self.processed_args) processed_args=self.processed_args)
+3 -3
View File
@@ -1,5 +1,6 @@
__all__ = ["Orchestrator"]
from argenta.app import App from argenta.app import App
from argenta.response import Response
from argenta.orchestrator.argparser import ArgParser from argenta.orchestrator.argparser import ArgParser
from argenta.di.integration import setup_dishka from argenta.di.integration import setup_dishka
@@ -31,7 +32,6 @@ class Orchestrator:
:return: None :return: None
""" """
container = make_container(SystemProvider(self._arg_parser), *self._custom_providers) container = make_container(SystemProvider(self._arg_parser), *self._custom_providers)
Response.patch_by_container(container) setup_dishka(app, container, auto_inject=self._auto_inject_handlers)
setup_dishka(app, auto_inject=self._auto_inject_handlers)
app.run_polling() app.run_polling()
+2 -5
View File
@@ -1,5 +1,2 @@
__all__ = ["Response", "ResponseStatus"] from argenta.response.entity import Response as Response
from argenta.response.status import ResponseStatus as ResponseStatus
from argenta.response.entity import Response
from argenta.response.status import ResponseStatus
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["Response"]
from dishka import Container from dishka import Container
from argenta.command.flag.flags.models import InputFlags from argenta.command.flag.flags.models import InputFlags
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["ResponseStatus"]
from enum import Enum from enum import Enum
+1 -4
View File
@@ -1,4 +1 @@
from argenta.router.entity import Router from argenta.router.entity import Router as Router
__all__ = ["Router"]
@@ -1,3 +1,5 @@
__all__ = ["CommandHandler", "CommandHandlers"]
from collections.abc import Iterator from collections.abc import Iterator
from typing import Callable from typing import Callable
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["system_router"]
from argenta.router import Router from argenta.router import Router
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["Router"]
from typing import Callable, TypeAlias from typing import Callable, TypeAlias
from inspect import getfullargspec, get_annotations, getsourcefile, getsourcelines from inspect import getfullargspec, get_annotations, getsourcefile, getsourcelines
from rich.console import Console from rich.console import Console
+2
View File
@@ -1,3 +1,5 @@
__all__ = ["RepeatedFlagNameException", "RequiredArgumentNotPassedException", "TriggerContainSpacesException"]
from typing import override from typing import override