argenta 0.3.8__py3-none-any.whl → 0.3.9__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/entity.py CHANGED
@@ -1,3 +1,4 @@
1
+ from pprint import pprint
1
2
  from typing import Callable
2
3
  from inspect import getfullargspec
3
4
  import re
argenta/command/entity.py CHANGED
@@ -1,16 +1,15 @@
1
- from .params.flag.entity import Flag
2
- from .params.flag.flags_group.entity import FlagsGroup
1
+ from argenta.command.flag.entity import Flag
2
+ from argenta.command.flag.flags_group import FlagsGroup
3
3
  from .exceptions import (UnprocessedInputFlagException,
4
4
  RepeatedInputFlagsException,
5
5
  EmptyInputCommandException)
6
6
 
7
- from typing import Generic, TypeVar
7
+ from typing import Generic, TypeVar, cast, Literal
8
8
 
9
+ CommandType = TypeVar('CommandType')
9
10
 
10
- T = TypeVar('T')
11
11
 
12
-
13
- class Command(Generic[T]):
12
+ class Command(Generic[CommandType]):
14
13
  def __init__(self, trigger: str,
15
14
  description: str = None,
16
15
  flags: Flag | FlagsGroup = None):
@@ -57,7 +56,7 @@ class Command(Generic[T]):
57
56
  return self._input_flags
58
57
 
59
58
  @staticmethod
60
- def parse_input_command(raw_command: str) -> 'Command[T]':
59
+ def parse_input_command(raw_command: str) -> 'Command[CommandType]':
61
60
  if not raw_command:
62
61
  raise EmptyInputCommandException()
63
62
  list_of_tokens = raw_command.split()
@@ -67,7 +66,7 @@ class Command(Generic[T]):
67
66
  flags: FlagsGroup = FlagsGroup()
68
67
  current_flag_name = None
69
68
  current_flag_value = None
70
- for _ in list_of_tokens:
69
+ for k, _ in enumerate(list_of_tokens):
71
70
  if _.startswith('-'):
72
71
  flag_prefix_last_symbol_index = _.rfind('-')
73
72
  if current_flag_name or len(_) < 2 or len(_[:flag_prefix_last_symbol_index]) > 3:
@@ -79,12 +78,15 @@ class Command(Generic[T]):
79
78
  raise UnprocessedInputFlagException()
80
79
  else:
81
80
  current_flag_value = _
82
- if current_flag_name and 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
83
85
  flag_prefix_last_symbol_index = current_flag_name.rfind('-')
84
86
  flag_prefix = current_flag_name[:flag_prefix_last_symbol_index+1]
85
87
  flag_name = current_flag_name[flag_prefix_last_symbol_index+1:]
86
88
  input_flag = Flag(flag_name=flag_name,
87
- flag_prefix=flag_prefix)
89
+ flag_prefix=cast(Literal['-', '--', '---'], flag_prefix))
88
90
  input_flag.set_value(current_flag_value)
89
91
 
90
92
  all_flags = [x.get_string_entity() for x in flags.get_flags()]
@@ -1,4 +1,4 @@
1
- from .params.flag.entity import Flag
1
+ from argenta.command.flag.entity import Flag
2
2
 
3
3
 
4
4
  class UnprocessedInputFlagException(Exception):
@@ -0,0 +1,18 @@
1
+ from argenta.command.flag import Flag
2
+ import re
3
+
4
+
5
+ help_flag = Flag(flag_name='help', possible_flag_values=False)
6
+ short_help_flag = Flag(flag_name='h', flag_prefix='-', possible_flag_values=False)
7
+
8
+ info_flag = Flag(flag_name='info', possible_flag_values=False)
9
+ short_info_flag = Flag(flag_name='i', flag_prefix='-', possible_flag_values=False)
10
+
11
+ all_flag = Flag(flag_name='all', possible_flag_values=False)
12
+ short_all_flag = Flag(flag_name='a', flag_prefix='-', possible_flag_values=False)
13
+
14
+ host_flag = Flag(flag_name='host', possible_flag_values=re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'))
15
+ short_host_flag = Flag(flag_name='h', flag_prefix='-', possible_flag_values=re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'))
16
+
17
+ port_flag = Flag(flag_name='port', possible_flag_values=re.compile(r'^\d{1,5}$'))
18
+ short_port_flag = Flag(flag_name='p', flag_prefix='-', possible_flag_values=re.compile(r'^\d{1,5}$'))
@@ -4,12 +4,10 @@ from typing import Literal, Pattern
4
4
  class Flag:
5
5
  def __init__(self, flag_name: str,
6
6
  flag_prefix: Literal['-', '--', '---'] = '--',
7
- ignore_flag_value_register: bool = False,
8
- possible_flag_values: list[str] | Pattern[str] = False):
7
+ possible_flag_values: list[str] | Pattern[str] | False = True):
9
8
  self._flag_name = flag_name
10
9
  self._flag_prefix = flag_prefix
11
10
  self.possible_flag_values = possible_flag_values
12
- self.ignore_flag_value_register = ignore_flag_value_register
13
11
 
14
12
  self._flag_value = None
15
13
 
@@ -29,23 +27,23 @@ class Flag:
29
27
  def set_value(self, value):
30
28
  self._flag_value = value
31
29
 
32
- def validate_input_flag_value(self, input_flag_value: str):
33
- if isinstance(self.possible_flag_values, Pattern):
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):
34
37
  is_valid = bool(self.possible_flag_values.match(input_flag_value))
35
38
  if bool(is_valid):
36
39
  return True
37
40
  else:
38
41
  return False
39
42
 
40
- if isinstance(self.possible_flag_values, list):
41
- if self.ignore_flag_value_register:
42
- if input_flag_value.lower() in [x.lower() for x in self.possible_flag_values]:
43
- return True
44
- else:
45
- return False
43
+ elif isinstance(self.possible_flag_values, list):
44
+ if input_flag_value in self.possible_flag_values:
45
+ return True
46
46
  else:
47
- if input_flag_value in self.possible_flag_values:
48
- return True
49
- else:
50
- return False
51
- return True
47
+ return False
48
+ else:
49
+ return True
@@ -0,0 +1 @@
1
+ from .entity import FlagsGroup
@@ -1,8 +1,8 @@
1
- from argenta.command.params.flag.entity import Flag
1
+ from argenta.command.flag.entity import Flag
2
2
 
3
3
 
4
4
  class FlagsGroup:
5
- def __init__(self, flags: list[Flag] = None):
5
+ def __init__(self, *flags: Flag):
6
6
  self._flags: list[Flag] = [] if not flags else flags
7
7
 
8
8
  def get_flags(self) -> list[Flag]:
argenta/router/entity.py CHANGED
@@ -2,8 +2,8 @@ from typing import Callable, Any
2
2
  from inspect import getfullargspec
3
3
 
4
4
  from ..command.entity import Command
5
- from ..command.params.flag.entity import Flag
6
- from ..command.params.flag.flags_group.entity import FlagsGroup
5
+ from argenta.command.flag.entity import Flag
6
+ from argenta.command.flag.flags_group import FlagsGroup
7
7
  from ..router.exceptions import (RepeatedCommandException,
8
8
  RepeatedFlagNameException,
9
9
  TooManyTransferredArgsException,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: argenta
3
- Version: 0.3.8
3
+ Version: 0.3.9
4
4
  Summary: python library for creating custom shells
5
5
  License: MIT
6
6
  Author: kolo
@@ -71,7 +71,7 @@ if __name__ == '__main__':
71
71
  import re
72
72
  from argenta.router import Router
73
73
  from argenta.command import Command
74
- from argenta.command.params.flag import FlagsGroup, Flag
74
+ from argenta.command.flag import FlagsGroup, Flag
75
75
 
76
76
  router = Router()
77
77
 
@@ -0,0 +1,19 @@
1
+ argenta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ argenta/app/__init__.py,sha256=NoKJpO5inI4bEtptNj7BZtNpGQidCNoFSw2-JoK6P98,25
3
+ argenta/app/entity.py,sha256=HJbfstW9iYbteXYCfV2urZ8UoppypICmQKsPYtlWQts,11535
4
+ argenta/app/exceptions.py,sha256=ruI_MwJQtBLrnWxJbKlSRE50c5FjnZ9qXJma34kPZhk,1253
5
+ argenta/command/__init__.py,sha256=yRSj5CtLjxwjKiokUGdSmuBZPOF_qheRyG0NW1pv7vo,27
6
+ argenta/command/entity.py,sha256=jYDcI-i-Bk3muAbckX0bSrODiGHvPSuVYKjxJGt4mlI,4467
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=7zJKh6sUgzHtqBEUuLnS-UOZ3K2XIh98axgb8P1VWZQ,929
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=TDIUiILXkizB1Q78vbRhDR4aqQnygC9B_tqz0RYGXy0,992
13
+ argenta/router/__init__.py,sha256=vIU2o3JJ7misRm9mUzUQw5HdverdMDfvHNzkWuYFRBY,26
14
+ argenta/router/entity.py,sha256=OJA-INvFnxhkBrj4PkUf59BOHBAFtbk8-uFqT_CbkWc,5093
15
+ argenta/router/exceptions.py,sha256=NseEKrhwvG-H5_qdN-hzq83eJ98jku-PzHspz4CG9PM,796
16
+ argenta-0.3.9.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
17
+ argenta-0.3.9.dist-info/METADATA,sha256=9UtIT_hojZPvLxZB_ap-VUsnA9yMOooT9Nz8-_v_Si4,18129
18
+ argenta-0.3.9.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
19
+ argenta-0.3.9.dist-info/RECORD,,
File without changes
File without changes
@@ -1,19 +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=f1UV8g92ZhyXeeTHvZYKNqPw0xCRUljYgXDg1qsaZa4,11508
4
- argenta/app/exceptions.py,sha256=ruI_MwJQtBLrnWxJbKlSRE50c5FjnZ9qXJma34kPZhk,1253
5
- argenta/command/__init__.py,sha256=yRSj5CtLjxwjKiokUGdSmuBZPOF_qheRyG0NW1pv7vo,27
6
- argenta/command/entity.py,sha256=tssojZMXUdI7o5LKxf9a07LT1VOyMk2gwL_zCj2Bljg,4230
7
- argenta/command/exceptions.py,sha256=ZCDnAmEvJRoOMpX02778YEQg3QCtDczRzu_fdkqKxus,547
8
- argenta/command/params/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- argenta/command/params/flag/__init__.py,sha256=y6rJLdag5qxONg1CzcP7gi6rCeix9UsG1AVANX3fnJs,68
10
- argenta/command/params/flag/entity.py,sha256=wqCLVCDUqvuPVQQyz2mOeslH6Xha0nwiKUqD1CCBpns,1737
11
- argenta/command/params/flag/flags_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- argenta/command/params/flag/flags_group/entity.py,sha256=qcVbRkfWblR53a1N0C8tpZ8UOH5aNlQmkyxRfCrrwMo,1011
13
- argenta/router/__init__.py,sha256=vIU2o3JJ7misRm9mUzUQw5HdverdMDfvHNzkWuYFRBY,26
14
- argenta/router/entity.py,sha256=aS1djCzqjowygEZQea2pA2lTnwYOq2uD7vd__k7t_kE,5102
15
- argenta/router/exceptions.py,sha256=NseEKrhwvG-H5_qdN-hzq83eJ98jku-PzHspz4CG9PM,796
16
- argenta-0.3.8.dist-info/LICENSE,sha256=zmqoGh2n5rReBv4s8wPxF_gZEZDgauJYSPMuPczgOiU,1082
17
- argenta-0.3.8.dist-info/METADATA,sha256=ZsoSvI7THi1gXxWdGZyrwqGc9G605IIZgUZghJdHmjg,18136
18
- argenta-0.3.8.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
19
- argenta-0.3.8.dist-info/RECORD,,
File without changes