This commit is contained in:
2025-03-03 18:52:49 +03:00
parent 8fbf651223
commit 404758bd91
6 changed files with 48 additions and 19 deletions
+3 -3
View File
@@ -11,7 +11,7 @@ class Flag:
self.possible_flag_values = possible_flag_values
self.ignore_flag_value_register = ignore_flag_value_register
self._value = None
self._flag_value = None
def get_string_entity(self):
string_entity: str = self._flag_prefix + self._flag_name
@@ -24,10 +24,10 @@ class Flag:
return self._flag_prefix
def get_value(self):
return self._value
return self._flag_value
def set_value(self, value):
self._value = value
self._flag_value = value
def validate_input_flag_value(self, input_flag_value: str):
if isinstance(self.possible_flag_values, Pattern):
@@ -14,6 +14,17 @@ class FlagsGroup:
def add_flags(self, flags: list[Flag]):
self._flags.extend(flags)
def unparse_to_dict(self):
result_dict: dict[str, dict] = {}
for flag in self._flags:
result_dict[flag.get_flag_name()] = {
'name': flag.get_flag_name(),
'string_entity': flag.get_string_entity(),
'prefix': flag.get_flag_prefix(),
'value': flag.get_value()
}
return result_dict
def __iter__(self):
return iter(self._flags)
+3 -2
View File
@@ -49,6 +49,7 @@ class Router:
def input_command_handler(self, input_command: Command):
input_command_name: str = input_command.get_string_entity()
input_command_flags: FlagsGroup = input_command.get_input_flags()
input_command_flags_dict: dict = input_command_flags.unparse_to_dict()
for command_entity in self._command_entities:
if input_command_name.lower() == command_entity['command'].get_string_entity().lower():
if command_entity['command'].get_registered_flags():
@@ -58,9 +59,9 @@ class Router:
if not is_valid:
self._not_valid_flag_handler(flag)
return
return command_entity['handler_func'](input_command_flags)
return command_entity['handler_func'](input_command_flags_dict)
else:
return command_entity['handler_func'](FlagsGroup(None))
return command_entity['handler_func']({})
else:
if input_command_flags:
self._not_valid_flag_handler(input_command_flags[0])