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/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
-
@@ -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]
@@ -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,,