argenta 0.4.1__py3-none-any.whl → 0.4.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- argenta/app/__init__.py +3 -1
- argenta/app/defaults.py +8 -0
- argenta/app/exceptions.py +0 -10
- argenta/app/models.py +214 -0
- argenta/app/registered_routers/__init__.py +0 -0
- argenta/app/registered_routers/entity.py +21 -0
- argenta/command/__init__.py +3 -1
- argenta/command/exceptions.py +10 -6
- argenta/command/flag/__init__.py +4 -2
- argenta/command/flag/defaults.py +12 -12
- argenta/command/flag/models.py +140 -0
- argenta/command/models.py +106 -0
- argenta/router/__init__.py +3 -0
- argenta/router/command_handler/__init__.py +0 -0
- argenta/router/command_handler/entity.py +21 -0
- argenta/router/command_handlers/__init__.py +0 -0
- argenta/router/command_handlers/entity.py +21 -0
- argenta/router/entity.py +47 -49
- argenta/router/exceptions.py +1 -6
- {argenta-0.4.1.dist-info → argenta-0.4.6.dist-info}/METADATA +19 -15
- argenta-0.4.6.dist-info/RECORD +25 -0
- argenta/app/entity.py +0 -282
- argenta/command/entity.py +0 -110
- argenta/command/flag/entity.py +0 -49
- argenta/command/flag/flags_group/__init__.py +0 -1
- argenta/command/flag/flags_group/entity.py +0 -35
- argenta-0.4.1.dist-info/RECORD +0 -20
- {argenta-0.4.1.dist-info → argenta-0.4.6.dist-info}/LICENSE +0 -0
- {argenta-0.4.1.dist-info → argenta-0.4.6.dist-info}/WHEEL +0 -0
argenta/command/entity.py
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
from argenta.command.flag.entity import Flag
|
2
|
-
from argenta.command.flag.flags_group import FlagsGroup
|
3
|
-
from .exceptions import (UnprocessedInputFlagException,
|
4
|
-
RepeatedInputFlagsException,
|
5
|
-
EmptyInputCommandException)
|
6
|
-
|
7
|
-
from typing import Generic, TypeVar, cast, Literal
|
8
|
-
|
9
|
-
|
10
|
-
CommandType = TypeVar('CommandType')
|
11
|
-
|
12
|
-
|
13
|
-
class Command(Generic[CommandType]):
|
14
|
-
def __init__(self, trigger: str,
|
15
|
-
description: str = None,
|
16
|
-
flags: Flag | FlagsGroup = None):
|
17
|
-
self._trigger = trigger
|
18
|
-
self._description = f'description for "{self._trigger}" command' if not description else description
|
19
|
-
self._registered_flags: FlagsGroup | None = flags if isinstance(flags, FlagsGroup) else FlagsGroup(flags) if isinstance(flags, Flag) else flags
|
20
|
-
self._input_flags: FlagsGroup | None = None
|
21
|
-
|
22
|
-
|
23
|
-
def get_trigger(self) -> str:
|
24
|
-
return self._trigger
|
25
|
-
|
26
|
-
|
27
|
-
def get_description(self) -> str:
|
28
|
-
return self._description
|
29
|
-
|
30
|
-
|
31
|
-
def get_registered_flags(self) -> FlagsGroup | None:
|
32
|
-
return self._registered_flags
|
33
|
-
|
34
|
-
|
35
|
-
def validate_input_flag(self, flag: Flag):
|
36
|
-
registered_flags: FlagsGroup | None = self.get_registered_flags()
|
37
|
-
if registered_flags:
|
38
|
-
if isinstance(registered_flags, Flag):
|
39
|
-
if registered_flags.get_string_entity() == flag.get_string_entity():
|
40
|
-
is_valid = registered_flags.validate_input_flag_value(flag.get_value())
|
41
|
-
if is_valid:
|
42
|
-
return True
|
43
|
-
else:
|
44
|
-
for registered_flag in registered_flags:
|
45
|
-
if registered_flag.get_string_entity() == flag.get_string_entity():
|
46
|
-
is_valid = registered_flag.validate_input_flag_value(flag.get_value())
|
47
|
-
if is_valid:
|
48
|
-
return True
|
49
|
-
return False
|
50
|
-
|
51
|
-
|
52
|
-
def _set_input_flags(self, input_flags: FlagsGroup):
|
53
|
-
self._input_flags = input_flags
|
54
|
-
|
55
|
-
def get_input_flags(self) -> FlagsGroup:
|
56
|
-
return self._input_flags
|
57
|
-
|
58
|
-
@staticmethod
|
59
|
-
def parse_input_command(raw_command: str) -> CommandType:
|
60
|
-
if not raw_command:
|
61
|
-
raise EmptyInputCommandException()
|
62
|
-
list_of_tokens = raw_command.split()
|
63
|
-
command = list_of_tokens[0]
|
64
|
-
list_of_tokens.pop(0)
|
65
|
-
|
66
|
-
flags: FlagsGroup = FlagsGroup()
|
67
|
-
current_flag_name = None
|
68
|
-
current_flag_value = None
|
69
|
-
for k, _ in enumerate(list_of_tokens):
|
70
|
-
if _.startswith('-'):
|
71
|
-
flag_prefix_last_symbol_index = _.rfind('-')
|
72
|
-
if current_flag_name or len(_) < 2 or len(_[:flag_prefix_last_symbol_index]) > 3:
|
73
|
-
raise UnprocessedInputFlagException()
|
74
|
-
else:
|
75
|
-
current_flag_name = _
|
76
|
-
else:
|
77
|
-
if not current_flag_name:
|
78
|
-
raise UnprocessedInputFlagException()
|
79
|
-
else:
|
80
|
-
current_flag_value = _
|
81
|
-
if current_flag_name:
|
82
|
-
if not len(list_of_tokens) == k+1:
|
83
|
-
if not list_of_tokens[k+1].startswith('-'):
|
84
|
-
continue
|
85
|
-
flag_prefix_last_symbol_index = current_flag_name.rfind('-')
|
86
|
-
flag_prefix = current_flag_name[:flag_prefix_last_symbol_index+1]
|
87
|
-
flag_name = current_flag_name[flag_prefix_last_symbol_index+1:]
|
88
|
-
input_flag = Flag(flag_name=flag_name,
|
89
|
-
flag_prefix=cast(Literal['-', '--', '---'], flag_prefix))
|
90
|
-
input_flag.set_value(current_flag_value)
|
91
|
-
|
92
|
-
all_flags = [x.get_string_entity() for x in flags.get_flags()]
|
93
|
-
if input_flag.get_string_entity() not in all_flags:
|
94
|
-
flags.add_flag(input_flag)
|
95
|
-
else:
|
96
|
-
raise RepeatedInputFlagsException(input_flag)
|
97
|
-
|
98
|
-
current_flag_name = None
|
99
|
-
current_flag_value = None
|
100
|
-
if any([current_flag_name, current_flag_value]):
|
101
|
-
raise UnprocessedInputFlagException()
|
102
|
-
if len(flags.get_flags()) == 0:
|
103
|
-
return Command(trigger=command)
|
104
|
-
else:
|
105
|
-
input_command = Command(trigger=command)
|
106
|
-
input_command._set_input_flags(flags)
|
107
|
-
return input_command
|
108
|
-
|
109
|
-
|
110
|
-
|
argenta/command/flag/entity.py
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
from typing import Literal, Pattern
|
2
|
-
|
3
|
-
|
4
|
-
class Flag:
|
5
|
-
def __init__(self, flag_name: str,
|
6
|
-
flag_prefix: Literal['-', '--', '---'] = '--',
|
7
|
-
possible_flag_values: list[str] | Pattern[str] | False = True):
|
8
|
-
self._flag_name = flag_name
|
9
|
-
self._flag_prefix = flag_prefix
|
10
|
-
self.possible_flag_values = possible_flag_values
|
11
|
-
|
12
|
-
self._flag_value = None
|
13
|
-
|
14
|
-
def get_string_entity(self):
|
15
|
-
string_entity: str = self._flag_prefix + self._flag_name
|
16
|
-
return string_entity
|
17
|
-
|
18
|
-
def get_flag_name(self):
|
19
|
-
return self._flag_name
|
20
|
-
|
21
|
-
def get_flag_prefix(self):
|
22
|
-
return self._flag_prefix
|
23
|
-
|
24
|
-
def get_value(self):
|
25
|
-
return self._flag_value
|
26
|
-
|
27
|
-
def set_value(self, value):
|
28
|
-
self._flag_value = value
|
29
|
-
|
30
|
-
def validate_input_flag_value(self, input_flag_value: str | None):
|
31
|
-
if self.possible_flag_values is False:
|
32
|
-
if input_flag_value is None:
|
33
|
-
return True
|
34
|
-
else:
|
35
|
-
return False
|
36
|
-
elif isinstance(self.possible_flag_values, Pattern):
|
37
|
-
is_valid = bool(self.possible_flag_values.match(input_flag_value))
|
38
|
-
if bool(is_valid):
|
39
|
-
return True
|
40
|
-
else:
|
41
|
-
return False
|
42
|
-
|
43
|
-
elif isinstance(self.possible_flag_values, list):
|
44
|
-
if input_flag_value in self.possible_flag_values:
|
45
|
-
return True
|
46
|
-
else:
|
47
|
-
return False
|
48
|
-
else:
|
49
|
-
return True
|
@@ -1 +0,0 @@
|
|
1
|
-
from .entity import FlagsGroup
|
@@ -1,35 +0,0 @@
|
|
1
|
-
from argenta.command.flag import Flag
|
2
|
-
|
3
|
-
|
4
|
-
class FlagsGroup:
|
5
|
-
def __init__(self, *flags: Flag):
|
6
|
-
self._flags: list[Flag] = [] if not flags else flags
|
7
|
-
|
8
|
-
def get_flags(self) -> list[Flag]:
|
9
|
-
return self._flags
|
10
|
-
|
11
|
-
def add_flag(self, flag: Flag):
|
12
|
-
self._flags.append(flag)
|
13
|
-
|
14
|
-
def add_flags(self, flags: list[Flag]):
|
15
|
-
self._flags.extend(flags)
|
16
|
-
|
17
|
-
def unparse_to_dict(self):
|
18
|
-
result_dict: dict[str, dict] = {}
|
19
|
-
for flag in self._flags:
|
20
|
-
result_dict[flag.get_flag_name()] = {
|
21
|
-
'name': flag.get_flag_name(),
|
22
|
-
'string_entity': flag.get_string_entity(),
|
23
|
-
'prefix': flag.get_flag_prefix(),
|
24
|
-
'value': flag.get_value()
|
25
|
-
}
|
26
|
-
return result_dict
|
27
|
-
|
28
|
-
def __iter__(self):
|
29
|
-
return iter(self._flags)
|
30
|
-
|
31
|
-
def __next__(self):
|
32
|
-
return next(iter(self))
|
33
|
-
|
34
|
-
def __getitem__(self, item):
|
35
|
-
return self._flags[item]
|
argenta-0.4.1.dist-info/RECORD
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
argenta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
argenta/app/__init__.py,sha256=NoKJpO5inI4bEtptNj7BZtNpGQidCNoFSw2-JoK6P98,25
|
3
|
-
argenta/app/entity.py,sha256=9vRk66GQD-3kC--alv21gM_rqyA9ZzKfzXy0jVD6cO0,12506
|
4
|
-
argenta/app/exceptions.py,sha256=ruI_MwJQtBLrnWxJbKlSRE50c5FjnZ9qXJma34kPZhk,1253
|
5
|
-
argenta/command/__init__.py,sha256=yRSj5CtLjxwjKiokUGdSmuBZPOF_qheRyG0NW1pv7vo,27
|
6
|
-
argenta/command/entity.py,sha256=uICQk5zaD_IG52q2IpFTDiGkTK0G6guPR6Eb9Y-3n0E,4454
|
7
|
-
argenta/command/exceptions.py,sha256=ZhJS_ThdmTgGnZqhSfCfkT_VcfkHTiAU7hAgrme6gQY,555
|
8
|
-
argenta/command/flag/__init__.py,sha256=y6rJLdag5qxONg1CzcP7gi6rCeix9UsG1AVANX3fnJs,68
|
9
|
-
argenta/command/flag/defaults.py,sha256=FjmqepLflYhp2yQcH2bCLi8nip9Bihb5d_HInuEWD4I,1037
|
10
|
-
argenta/command/flag/entity.py,sha256=osMAh-PVP_1MhRhe4Zf1NmJu5NJWAyY6oOKT9mtZnWw,1542
|
11
|
-
argenta/command/flag/flags_group/__init__.py,sha256=f1q3albNnoQYrY56Exb75oh62miTdxD0ALo5aBWW9_g,30
|
12
|
-
argenta/command/flag/flags_group/entity.py,sha256=NcyKjC_N-8d4xARkVCLSK8-PoPrKjSlIbR4SHSa7_us,985
|
13
|
-
argenta/router/__init__.py,sha256=vIU2o3JJ7misRm9mUzUQw5HdverdMDfvHNzkWuYFRBY,26
|
14
|
-
argenta/router/defaults.py,sha256=huftOg1HMjrT_R2SHHOL4eJ5uZHspNEYBSg-mCq9xhU,126
|
15
|
-
argenta/router/entity.py,sha256=w4_LO3jVbQPMu8GHjSW6q-_AdQ_IPQkGJHjYaCVXw-Q,5195
|
16
|
-
argenta/router/exceptions.py,sha256=NseEKrhwvG-H5_qdN-hzq83eJ98jku-PzHspz4CG9PM,796
|
17
|
-
argenta-0.4.1.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
|
18
|
-
argenta-0.4.1.dist-info/METADATA,sha256=r7hxvBwmXnaa3GDn3x3bvUlIode_EGFW1E2iCB6wkZY,18187
|
19
|
-
argenta-0.4.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
20
|
-
argenta-0.4.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|