mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
impl di in handlers with support custom provider
This commit is contained in:
+15
-4
@@ -4,15 +4,26 @@ from argenta import App, Orchestrator
|
||||
from argenta.app import PredefinedMessages, DynamicDividingLine, AutoCompleter
|
||||
from argenta.orchestrator import ArgParser
|
||||
from argenta.orchestrator.argparser import BooleanArgument, ValueArgument
|
||||
from dishka import Provider, provide, Scope # type: ignore
|
||||
|
||||
|
||||
arg_parser: ArgParser = ArgParser(processed_args=[BooleanArgument(name="repeat", is_deprecated=True),
|
||||
ValueArgument(name="required", is_required=True)])
|
||||
class temProvider(Provider):
|
||||
@provide(scope=Scope.APP)
|
||||
def get_apace(self) -> int:
|
||||
return 1234
|
||||
|
||||
arg_parser: ArgParser = ArgParser(
|
||||
processed_args=[
|
||||
BooleanArgument(name="repeat", is_deprecated=True),
|
||||
ValueArgument(name="required", is_required=True),
|
||||
]
|
||||
)
|
||||
app: App = App(
|
||||
dividing_line=DynamicDividingLine(),
|
||||
autocompleter=AutoCompleter(),
|
||||
)
|
||||
orchestrator: Orchestrator = Orchestrator()
|
||||
orchestrator: Orchestrator = Orchestrator(arg_parser, custom_providers=[temProvider()])
|
||||
|
||||
|
||||
def main():
|
||||
app.include_router(work_router)
|
||||
@@ -20,7 +31,7 @@ def main():
|
||||
app.add_message_on_startup(PredefinedMessages.USAGE)
|
||||
app.add_message_on_startup(PredefinedMessages.AUTOCOMPLETE)
|
||||
app.add_message_on_startup(PredefinedMessages.HELP)
|
||||
|
||||
|
||||
orchestrator.start_polling(app)
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
from argenta.command import Command, PredefinedFlags, Flags, Flag, PossibleValues
|
||||
from argenta.orchestrator.argparser.entity import ArgSpace
|
||||
from argenta.response import Response
|
||||
from argenta import Router
|
||||
from argenta.di import FromDishka
|
||||
|
||||
|
||||
work_router: Router = Router(title="Work points:")
|
||||
work_router: Router = Router(title="Work points:", disable_redirect_stdout=True)
|
||||
|
||||
flag = Flag('csdv', possible_values=PossibleValues.NEITHER)
|
||||
flag = Flag("csdv", possible_values=PossibleValues.NEITHER)
|
||||
|
||||
|
||||
@work_router.command(
|
||||
Command("get",
|
||||
Command(
|
||||
"get",
|
||||
description="Get Help",
|
||||
aliases=["help", "Get_help"],
|
||||
flags=Flags([PredefinedFlags.PORT, PredefinedFlags.HOST])
|
||||
flags=Flags([PredefinedFlags.PORT, PredefinedFlags.HOST]),
|
||||
)
|
||||
)
|
||||
def command_help(response: Response):
|
||||
@@ -21,6 +24,5 @@ def command_help(response: Response):
|
||||
|
||||
|
||||
@work_router.command("run")
|
||||
def command_start_solving(response: Response):
|
||||
print(response.status)
|
||||
print(response.input_flags.flags)
|
||||
def command_start_solving(response: Response, argspace: FromDishka[int]):
|
||||
print(argspace)
|
||||
|
||||
Reference in New Issue
Block a user