This commit is contained in:
2026-02-06 23:52:26 +03:00
parent f1034ff447
commit a21570e779
15 changed files with 420 additions and 125 deletions
+4 -3
View File
@@ -3,13 +3,14 @@ __all__ = ["AutoCompleter"]
import sys
from typing import Callable, Iterable
from prompt_toolkit import PromptSession, HTML
from prompt_toolkit import HTML, PromptSession
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.completion import Completer, Completion, CompleteEvent, ThreadedCompleter
from prompt_toolkit.completion import (CompleteEvent, Completer, Completion,
ThreadedCompleter)
from prompt_toolkit.cursor_shapes import CursorShape
from prompt_toolkit.document import Document
from prompt_toolkit.formatted_text import StyleAndTextTuples
from prompt_toolkit.history import History, ThreadedHistory, FileHistory, InMemoryHistory
from prompt_toolkit.history import FileHistory, History, InMemoryHistory, ThreadedHistory
from prompt_toolkit.key_binding import KeyBindings, KeyPressEvent
from prompt_toolkit.lexers import Lexer
from prompt_toolkit.styles import Style
+4 -8
View File
@@ -1,15 +1,11 @@
from rich.markup import escape
from argenta.response.entity import Response
from argenta.app.presentation.renderers import Renderer
from argenta.app.protocols import (
NonStandardBehaviorHandler,
EmptyCommandHandler,
Printer,
MostSimilarCommandGetter,
DescriptionMessageGenerator,
)
from argenta.app.protocols import (DescriptionMessageGenerator, EmptyCommandHandler,
MostSimilarCommandGetter, NonStandardBehaviorHandler,
Printer)
from argenta.command import InputCommand
from argenta.response.entity import Response
class BehaviorHandlersFabric:
+9 -13
View File
@@ -1,30 +1,26 @@
__all__ = ["App"]
from typing import Never, TypeAlias
import difflib
from typing import Never, TypeAlias
from rich.console import Console
from argenta.app.autocompleter import AutoCompleter
from argenta.app.behavior_handlers.models import (
BehaviorHandlersFabric,
BehaviorHandlersSettersMixin,
)
from argenta.app.presentation.renderers import PlainRenderer, RichRenderer, Renderer
from argenta.app.behavior_handlers.models import (BehaviorHandlersFabric,
BehaviorHandlersSettersMixin)
from argenta.app.dividing_line.models import DynamicDividingLine, StaticDividingLine
from argenta.app.presentation.renderers import PlainRenderer, Renderer, RichRenderer
from argenta.app.presentation.viewers import Viewer
from argenta.app.protocols import Printer
from argenta.app.registered_routers.entity import RegisteredRouters
from argenta.command.exceptions import (
InputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException,
)
from argenta.router.exceptions import RepeatedAliasNameException, RepeatedTriggerNameException
from argenta.command.exceptions import (InputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException)
from argenta.command.models import Command, InputCommand
from argenta.response import Response
from argenta.router import Router
from argenta.router.exceptions import (RepeatedAliasNameException,
RepeatedTriggerNameException)
Matches: TypeAlias = list[str] | list[Never]
+1 -1
View File
@@ -1,4 +1,4 @@
from .renderers import Renderer, RichRenderer, PlainRenderer
from .renderers import PlainRenderer, Renderer, RichRenderer
from .viewers import Viewer
__all__ = ["Renderer", "RichRenderer", "PlainRenderer", "Viewer"]
+3 -4
View File
@@ -3,16 +3,15 @@ __all__ = ["Viewer"]
import re
from contextlib import redirect_stdout
from io import StringIO
from typing import Iterable, Callable, TypeAlias
from typing import Callable, Iterable, TypeAlias
from rich.text import Text
from argenta.app import StaticDividingLine, DynamicDividingLine
from argenta.app import DynamicDividingLine, StaticDividingLine
from argenta.app.presentation.renderers import Renderer
from argenta.app.protocols import Printer, DescriptionMessageGenerator
from argenta.app.protocols import DescriptionMessageGenerator, Printer
from argenta.app.registered_routers.entity import RegisteredRouters
AVAILABLE_DIVIDING_LINES: TypeAlias = StaticDividingLine | DynamicDividingLine | None
+2 -1
View File
@@ -1,7 +1,8 @@
from argenta.command.flag import Flag as Flag
from argenta.command.flag.models import Flags as Flags, InputFlags as InputFlags
from argenta.command.flag import InputFlag as InputFlag
from argenta.command.flag import PossibleValues as PossibleValues
from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags
from argenta.command.flag.models import Flags as Flags
from argenta.command.flag.models import InputFlags as InputFlags
from argenta.command.models import Command as Command
from argenta.command.models import InputCommand as InputCommand
+2 -1
View File
@@ -1,5 +1,6 @@
from argenta.command.flag.models import Flags as Flags, InputFlags as InputFlags
from argenta.command.flag.models import Flag as Flag
from argenta.command.flag.models import Flags as Flags
from argenta.command.flag.models import InputFlag as InputFlag
from argenta.command.flag.models import InputFlags as InputFlags
from argenta.command.flag.models import PossibleValues as PossibleValues
from argenta.command.flag.models import ValidationStatus as ValidationStatus
+1 -1
View File
@@ -2,7 +2,7 @@ __all__ = ["PossibleValues", "ValidationStatus", "Flag", "InputFlag", "InputFlag
from enum import Enum
from re import Pattern
from typing import Literal, override, TypeVar, Generic, Iterator, Any, Container
from typing import Any, Container, Generic, Iterator, Literal, TypeVar, override
PREFIX_TYPE = Literal["-", "--", "---"]
+4 -6
View File
@@ -1,14 +1,12 @@
__all__ = ["Command", "InputCommand"]
import shlex
from typing import Literal, Never, Self, cast, Iterable
from typing import Iterable, Literal, Never, Self, cast
from argenta.command.exceptions import (
EmptyInputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException,
)
from argenta.command import Flags, InputFlags
from argenta.command.exceptions import (EmptyInputCommandException,
RepeatedInputFlagsException,
UnprocessedInputFlagException)
from argenta.command.flag.models import Flag, InputFlag, ValidationStatus
ParseFlagsResult = tuple[InputFlags, str | None, str | None]