now command aliases auto added to autocomlete history for their use

This commit is contained in:
2025-04-10 19:23:57 +03:00
parent e2dd7e4aea
commit 5bfdde4bd9
3 changed files with 41 additions and 18 deletions
+7
View File
@@ -122,10 +122,16 @@ class AppNonStandardHandlers(AppPrinters):
for router_entity in self._registered_routers: for router_entity in self._registered_routers:
for command_handler in router_entity.get_command_handlers(): for command_handler in router_entity.get_command_handlers():
handled_command_trigger = command_handler.get_handled_command().get_trigger() handled_command_trigger = command_handler.get_handled_command().get_trigger()
handled_command_aliases = command_handler.get_handled_command().get_aliases()
if handled_command_trigger.lower() == command.get_trigger().lower() and self._ignore_command_register: if handled_command_trigger.lower() == command.get_trigger().lower() and self._ignore_command_register:
return False return False
elif handled_command_trigger == command.get_trigger(): elif handled_command_trigger == command.get_trigger():
return False return False
elif handled_command_aliases:
if command.get_trigger().lower() in [x.lower() for x in handled_command_aliases] and self._ignore_command_register:
return False
elif command.get_trigger() in handled_command_trigger:
return False
if isinstance(self._dividing_line, StaticDividingLine): if isinstance(self._dividing_line, StaticDividingLine):
self._print_func(self._dividing_line.get_full_line()) self._print_func(self._dividing_line.get_full_line())
self._unknown_command_handler(command) self._unknown_command_handler(command)
@@ -188,6 +194,7 @@ class AppSetups(AppValidators, AppPrinters):
all_triggers: list[str] = [] all_triggers: list[str] = []
for router_entity in self._registered_routers: for router_entity in self._registered_routers:
all_triggers.extend(router_entity.get_triggers()) all_triggers.extend(router_entity.get_triggers())
all_triggers.extend(router_entity.get_aliases())
self._autocompleter.initial_setup(all_triggers) self._autocompleter.initial_setup(all_triggers)
self._print_func(self._initial_message) self._print_func(self._initial_message)
+31 -15
View File
@@ -54,21 +54,29 @@ class Router:
for command_handler in self._command_handlers: for command_handler in self._command_handlers:
handle_command = command_handler.get_handled_command() handle_command = command_handler.get_handled_command()
if input_command_name.lower() == handle_command.get_trigger().lower(): if input_command_name.lower() == handle_command.get_trigger().lower():
if handle_command.get_registered_flags().get_flags(): self._validate_input_command(input_command_flags, command_handler)
if input_command_flags.get_flags(): elif handle_command.get_aliases():
if self._validate_input_flags(handle_command, input_command_flags): if input_command_name.lower() in handle_command.get_aliases():
command_handler.handling(input_command_flags) self._validate_input_command(input_command_flags, command_handler)
return
else:
command_handler.handling(input_command_flags) def _validate_input_command(self, input_command_flags: InputFlags, command_handler: CommandHandler):
return handle_command = command_handler.get_handled_command()
else: if handle_command.get_registered_flags().get_flags():
if input_command_flags.get_flags(): if input_command_flags.get_flags():
self._not_valid_flag_handler(input_command_flags[0]) if self._validate_input_flags(handle_command, input_command_flags):
return command_handler.handling(input_command_flags)
else: return
command_handler.handling() else:
return command_handler.handling(input_command_flags)
return
else:
if input_command_flags.get_flags():
self._not_valid_flag_handler(input_command_flags[0])
return
else:
command_handler.handling()
return
def _validate_input_flags(self, handle_command: Command, input_flags: InputFlags): def _validate_input_flags(self, handle_command: Command, input_flags: InputFlags):
@@ -117,6 +125,14 @@ class Router:
return all_triggers return all_triggers
def get_aliases(self):
all_aliases: list[str] = []
for command_handler in self._command_handlers:
if command_handler.get_handled_command().get_aliases():
all_aliases.extend(command_handler.get_handled_command().get_aliases())
return all_aliases
def get_command_handlers(self) -> CommandHandlers: def get_command_handlers(self) -> CommandHandlers:
return self._command_handlers return self._command_handlers
+3 -3
View File
@@ -14,14 +14,14 @@ settings_router: Router = Router()
console = Console() console = Console()
@work_router.command(Command('get', 'Get Help')) @work_router.command(Command('get', 'Get Help', aliases=['help', 'get_help']))
def command_help(): def command_help():
help_command() help_command()
@work_router.command(Command('start', 'Start Solving', Flags(PredeterminedFlags.HOST, PredeterminedFlags.PORT))) @work_router.command(Command('start', 'Start Solving', Flags(PredeterminedFlags.HOST, PredeterminedFlags.PORT), aliases=['starting']))
def command_start_solving(args: InputFlags): def command_start_solving(args: InputFlags):
print(args.get_flag('test')) print(args.get_flag('host'))
@settings_router.command(Command('update', 'Update WordMath')) @settings_router.command(Command('update', 'Update WordMath'))