ka-uts-com 1.0.0.240823__py3-none-any.whl → 1.0.1.250131__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.
- build/lib/dist/ka_uts_com-1.0.1.250131-py3-none-any.whl +0 -0
- build/lib/dist/ka_uts_com-1.0.1.250131.tar.gz +0 -0
- build/lib/ka_uts_com/__version__.py +1 -1
- build/lib/ka_uts_com/base/app_.py +51 -0
- build/lib/ka_uts_com/base/cfg_.py +27 -0
- build/lib/ka_uts_com/base/exit_.py +37 -0
- build/lib/ka_uts_com/base/log_.py +115 -0
- build/lib/ka_uts_com/com.py +42 -192
- build/lib/ka_uts_com/data/{log.standard.yml → log.std.yml} +3 -3
- build/lib/ka_uts_com/data/{log.personal.yml → log.usr.yml} +34 -42
- build/lib/ka_uts_com/decorators/dec.py +13 -0
- build/lib/ka_uts_com/fnc.py +29 -24
- build/lib/ka_uts_com/ioc/jinja2_.py +42 -0
- build/lib/ka_uts_com/ioc/yaml_.py +30 -0
- build/lib/ka_uts_com/log.py +32 -20
- build/lib/ka_uts_com/timer.py +17 -24
- build/lib/ka_uts_com/utils/aoeqstmt.py +39 -0
- build/lib/ka_uts_com/{date.py → utils/date.py} +4 -4
- build/lib/ka_uts_com/utils/doeq.py +99 -0
- {ka_uts_com → build/lib/ka_uts_com/utils}/pacmod.py +30 -34
- build/lib/ka_uts_com/utils/py.typed +0 -0
- build/lib/ka_uts_com/{str.py → utils/str.py} +36 -39
- dist/ka_uts_com-1.0.1.250131-py3-none-any.whl +0 -0
- dist/ka_uts_com-1.0.1.250131.tar.gz +0 -0
- ka_uts_com/__version__.py +1 -1
- ka_uts_com/base/app_.py +51 -0
- ka_uts_com/base/cfg_.py +27 -0
- ka_uts_com/base/exit_.py +37 -0
- ka_uts_com/base/log_.py +115 -0
- ka_uts_com/com.py +42 -192
- ka_uts_com/data/{log.standard.yml → log.std.yml} +3 -3
- ka_uts_com/data/{log.personal.yml → log.usr.yml} +34 -42
- ka_uts_com/decorators/dec.py +13 -0
- ka_uts_com/fnc.py +29 -24
- ka_uts_com/ioc/jinja2_.py +42 -0
- ka_uts_com/ioc/yaml_.py +30 -0
- ka_uts_com/log.py +32 -20
- ka_uts_com/timer.py +17 -24
- ka_uts_com/utils/aoeqstmt.py +39 -0
- ka_uts_com/{date.py → utils/date.py} +4 -4
- ka_uts_com/utils/doeq.py +99 -0
- {build/lib/ka_uts_com → ka_uts_com/utils}/pacmod.py +30 -34
- ka_uts_com/utils/py.typed +0 -0
- ka_uts_com/{str.py → utils/str.py} +36 -39
- ka_uts_com-1.0.1.250131.dist-info/METADATA +1628 -0
- ka_uts_com-1.0.1.250131.dist-info/RECORD +55 -0
- {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-1.0.1.250131.dist-info}/WHEEL +1 -1
- build/lib/dist/ka_uts_com-1.0.0.240823-py3-none-any.whl +0 -0
- build/lib/dist/ka_uts_com-1.0.0.240823.tar.gz +0 -0
- build/lib/ka_uts_com/aeq.py +0 -87
- build/lib/ka_uts_com/argv.py +0 -49
- build/lib/ka_uts_com/ioc.py +0 -57
- dist/ka_uts_com-1.0.0.240823-py3-none-any.whl +0 -0
- dist/ka_uts_com-1.0.0.240823.tar.gz +0 -0
- ka_uts_com/aeq.py +0 -87
- ka_uts_com/argv.py +0 -49
- ka_uts_com/ioc.py +0 -57
- ka_uts_com-1.0.0.240823.dist-info/METADATA +0 -943
- ka_uts_com-1.0.0.240823.dist-info/RECORD +0 -41
- {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-1.0.1.250131.dist-info/licenses}/LICENSE.txt +0 -0
- {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-1.0.1.250131.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
build/lib/dist/ka_uts_com-1.0.1.250131-py3-none-any.whl,sha256=HbU_VxsHnutBElXqhutWdTuTXQPhuvTk7XoVBqdsafQ,169550
|
2
|
+
build/lib/dist/ka_uts_com-1.0.1.250131.tar.gz,sha256=eMn-3MXTSIyG1NdZGgKFR-oYYIwrLKGlc1O_5Q4y1DE,327036
|
3
|
+
build/lib/ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
+
build/lib/ka_uts_com/__version__.py,sha256=csJCYYhUSlZBa4BsYrpw7cA3KBP3ZvqWkTNBoNEg_0w,365
|
5
|
+
build/lib/ka_uts_com/com.py,sha256=NWlaqnilS8R0hiX1KH7gZGMwwvqHxPaxKLz131ogVqY,1714
|
6
|
+
build/lib/ka_uts_com/fnc.py,sha256=QmCWbmkB8Q8kAxubsqbWOonOBIaL07Y3Y7oXvEqg8Q4,1030
|
7
|
+
build/lib/ka_uts_com/log.py,sha256=cThIY1yCaGkCDNInl80N80XH2-J3D0XlNBTMA0FlCFE,2191
|
8
|
+
build/lib/ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
build/lib/ka_uts_com/timer.py,sha256=v3p8wxROIEZqpIwg4gr-nPVCTGioCrQOBuP1uBpRBYI,1816
|
10
|
+
build/lib/ka_uts_com/base/app_.py,sha256=miRGNATjXW-yq1jugCv6CjBsALNAga9kekn3r68sf0o,1215
|
11
|
+
build/lib/ka_uts_com/base/cfg_.py,sha256=wF8t2sfYwzyJ1Nbn7ZfzdXD5Uj1X_IVFoMRvl5xNZSQ,531
|
12
|
+
build/lib/ka_uts_com/base/exit_.py,sha256=2HXS-5BN5Q5EZx7S2Nar5voHHJZ3GlYfv--wnC3rT-A,792
|
13
|
+
build/lib/ka_uts_com/base/log_.py,sha256=taty8yzkPg0e5wB-h-RbQ9qTa5m5V81O_sPrQHRY1tE,3418
|
14
|
+
build/lib/ka_uts_com/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
+
build/lib/ka_uts_com/data/log.std.yml,sha256=C3A9pWLjzTMiyhdjBcvQc7_IyY6DlQUA1lVYgLmQPRo,2317
|
16
|
+
build/lib/ka_uts_com/data/log.usr.yml,sha256=OfMzIBgzS5UiOfpoPMzuxwcsAXE1rOvRzjINH4GiJfg,2358
|
17
|
+
build/lib/ka_uts_com/decorators/dec.py,sha256=NHerkpjOYpJXz2CIh9HlN3_YCyLv-SbyQL4ldyGUSpM,217
|
18
|
+
build/lib/ka_uts_com/ioc/jinja2_.py,sha256=Q9_suhZERjYrZY_lDd2kYq63N_fItgj18vMTdp7c55Q,1112
|
19
|
+
build/lib/ka_uts_com/ioc/yaml_.py,sha256=2JEsnhEuKZJVGMq0bwOIlVOcfd1yBmvA47QRdCy8HjI,801
|
20
|
+
build/lib/ka_uts_com/utils/aoeqstmt.py,sha256=Z8zmwkYoE2D2cEHbMCbdxTAp16ATKQjufYet7RfLWB4,1044
|
21
|
+
build/lib/ka_uts_com/utils/date.py,sha256=5K_wxf5uVEDc7oNR7KKAwVK-iFfSq2jgovZeRE8Yw-s,305
|
22
|
+
build/lib/ka_uts_com/utils/doeq.py,sha256=0957rhRDG8nrOyYjsMvvfvIXkM3UjZJ_SoL6CycC-SE,3197
|
23
|
+
build/lib/ka_uts_com/utils/pacmod.py,sha256=HCjwSEICkITQUUyACBZFy9Ou8jlt8LvqetAzv912ua8,3156
|
24
|
+
build/lib/ka_uts_com/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
build/lib/ka_uts_com/utils/str.py,sha256=cRixfOSTJqypiANn1wM0uQlmIbLsfNM4hatiPCQ_HIM,7145
|
26
|
+
dist/ka_uts_com-1.0.1.250131-py3-none-any.whl,sha256=HbU_VxsHnutBElXqhutWdTuTXQPhuvTk7XoVBqdsafQ,169550
|
27
|
+
dist/ka_uts_com-1.0.1.250131.tar.gz,sha256=eMn-3MXTSIyG1NdZGgKFR-oYYIwrLKGlc1O_5Q4y1DE,327036
|
28
|
+
ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
ka_uts_com/__version__.py,sha256=csJCYYhUSlZBa4BsYrpw7cA3KBP3ZvqWkTNBoNEg_0w,365
|
30
|
+
ka_uts_com/com.py,sha256=NWlaqnilS8R0hiX1KH7gZGMwwvqHxPaxKLz131ogVqY,1714
|
31
|
+
ka_uts_com/fnc.py,sha256=QmCWbmkB8Q8kAxubsqbWOonOBIaL07Y3Y7oXvEqg8Q4,1030
|
32
|
+
ka_uts_com/log.py,sha256=cThIY1yCaGkCDNInl80N80XH2-J3D0XlNBTMA0FlCFE,2191
|
33
|
+
ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
+
ka_uts_com/timer.py,sha256=v3p8wxROIEZqpIwg4gr-nPVCTGioCrQOBuP1uBpRBYI,1816
|
35
|
+
ka_uts_com/base/app_.py,sha256=miRGNATjXW-yq1jugCv6CjBsALNAga9kekn3r68sf0o,1215
|
36
|
+
ka_uts_com/base/cfg_.py,sha256=wF8t2sfYwzyJ1Nbn7ZfzdXD5Uj1X_IVFoMRvl5xNZSQ,531
|
37
|
+
ka_uts_com/base/exit_.py,sha256=2HXS-5BN5Q5EZx7S2Nar5voHHJZ3GlYfv--wnC3rT-A,792
|
38
|
+
ka_uts_com/base/log_.py,sha256=taty8yzkPg0e5wB-h-RbQ9qTa5m5V81O_sPrQHRY1tE,3418
|
39
|
+
ka_uts_com/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
+
ka_uts_com/data/log.std.yml,sha256=C3A9pWLjzTMiyhdjBcvQc7_IyY6DlQUA1lVYgLmQPRo,2317
|
41
|
+
ka_uts_com/data/log.usr.yml,sha256=OfMzIBgzS5UiOfpoPMzuxwcsAXE1rOvRzjINH4GiJfg,2358
|
42
|
+
ka_uts_com/decorators/dec.py,sha256=NHerkpjOYpJXz2CIh9HlN3_YCyLv-SbyQL4ldyGUSpM,217
|
43
|
+
ka_uts_com/ioc/jinja2_.py,sha256=Q9_suhZERjYrZY_lDd2kYq63N_fItgj18vMTdp7c55Q,1112
|
44
|
+
ka_uts_com/ioc/yaml_.py,sha256=2JEsnhEuKZJVGMq0bwOIlVOcfd1yBmvA47QRdCy8HjI,801
|
45
|
+
ka_uts_com/utils/aoeqstmt.py,sha256=Z8zmwkYoE2D2cEHbMCbdxTAp16ATKQjufYet7RfLWB4,1044
|
46
|
+
ka_uts_com/utils/date.py,sha256=5K_wxf5uVEDc7oNR7KKAwVK-iFfSq2jgovZeRE8Yw-s,305
|
47
|
+
ka_uts_com/utils/doeq.py,sha256=0957rhRDG8nrOyYjsMvvfvIXkM3UjZJ_SoL6CycC-SE,3197
|
48
|
+
ka_uts_com/utils/pacmod.py,sha256=HCjwSEICkITQUUyACBZFy9Ou8jlt8LvqetAzv912ua8,3156
|
49
|
+
ka_uts_com/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
+
ka_uts_com/utils/str.py,sha256=cRixfOSTJqypiANn1wM0uQlmIbLsfNM4hatiPCQ_HIM,7145
|
51
|
+
ka_uts_com-1.0.1.250131.dist-info/licenses/LICENSE.txt,sha256=TnAjPFN1i37iKUA7KiLKV6zJlCkNaDfdmKTKU5AApQs,857
|
52
|
+
ka_uts_com-1.0.1.250131.dist-info/METADATA,sha256=g5FEQpoMWQIUBXeFuLH7prqXTm5q8IqnWPNqw_xWvi0,52811
|
53
|
+
ka_uts_com-1.0.1.250131.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
54
|
+
ka_uts_com-1.0.1.250131.dist-info/top_level.txt,sha256=CviWgXDn1mYmGlBxZ3G7sMNqv9KOOwYzbDpZsu5RYv4,27
|
55
|
+
ka_uts_com-1.0.1.250131.dist-info/RECORD,,
|
Binary file
|
Binary file
|
build/lib/ka_uts_com/aeq.py
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
# import orjson
|
4
|
-
# import traceback
|
5
|
-
|
6
|
-
from ka_uts_com.date import Date
|
7
|
-
from ka_uts_com.str import Str
|
8
|
-
|
9
|
-
from typing import Any, Dict, List
|
10
|
-
|
11
|
-
TN_Date = None | Any
|
12
|
-
|
13
|
-
T_Arr = List[Any]
|
14
|
-
T_Dic = Dict[Any, Any]
|
15
|
-
|
16
|
-
TN_Arr = None | T_Arr
|
17
|
-
TN_Dic = None | T_Dic
|
18
|
-
TN_Str = None | str
|
19
|
-
|
20
|
-
|
21
|
-
class Aeq:
|
22
|
-
""" Dictionary of Equates
|
23
|
-
"""
|
24
|
-
@classmethod
|
25
|
-
def sh_value(cls, key: str, value: Any, d_valid_parms: TN_Dic) -> Any:
|
26
|
-
|
27
|
-
# print(f"key = {key}, type(key) = {type(key)}")
|
28
|
-
# print(f"value = {value}, type(value) = {type(value)}")
|
29
|
-
if not d_valid_parms:
|
30
|
-
return value
|
31
|
-
_type: TN_Str = d_valid_parms.get(key)
|
32
|
-
# print(f"_type = {_type}")
|
33
|
-
if not _type:
|
34
|
-
return value
|
35
|
-
if isinstance(_type, str):
|
36
|
-
match _type:
|
37
|
-
case 'int':
|
38
|
-
value = int(value)
|
39
|
-
case 'bool':
|
40
|
-
value = Str.sh_boolean(value)
|
41
|
-
case 'dict':
|
42
|
-
value = Str.sh_dic(value)
|
43
|
-
case 'list':
|
44
|
-
value = Str.sh_arr(value)
|
45
|
-
case '%Y-%m-%d':
|
46
|
-
value = Date.sh(value, _type)
|
47
|
-
case '_':
|
48
|
-
match _type[0]:
|
49
|
-
case '[', '{':
|
50
|
-
_obj = Str.sh_dic(_type)
|
51
|
-
if value not in _obj:
|
52
|
-
msg = (f"parameter={key} value={value} is invalid; "
|
53
|
-
f"valid values are={_obj}")
|
54
|
-
raise Exception(msg)
|
55
|
-
|
56
|
-
# print(f"value = {value}, type(value) = {type(value)}")
|
57
|
-
return value
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def sh_d_eq(cls, a_s_eq: T_Arr, d_valid_parms: TN_Dic) -> T_Dic:
|
61
|
-
|
62
|
-
d_eq = {}
|
63
|
-
_d_valid_parms = d_valid_parms
|
64
|
-
for s_eq in a_s_eq[1:]:
|
65
|
-
a_eq = s_eq.split('=')
|
66
|
-
if len(a_eq) == 1:
|
67
|
-
key = 'cmd'
|
68
|
-
value = a_eq[0]
|
69
|
-
if _d_valid_parms is not None:
|
70
|
-
if value in _d_valid_parms:
|
71
|
-
_d_valid_parms = _d_valid_parms[value]
|
72
|
-
else:
|
73
|
-
_valid_commands = list(_d_valid_parms.keys())
|
74
|
-
msg = (f"Wrong command: {value}; "
|
75
|
-
f"valid commands are: {_valid_commands}")
|
76
|
-
else:
|
77
|
-
key = a_eq[0]
|
78
|
-
value = a_eq[1]
|
79
|
-
|
80
|
-
if _d_valid_parms is not None:
|
81
|
-
if key not in _d_valid_parms:
|
82
|
-
msg = (f"Wrong parameter: {key}; "
|
83
|
-
f"valid parameters are: {_d_valid_parms}")
|
84
|
-
raise Exception(msg)
|
85
|
-
value = cls.sh_value(key, value, _d_valid_parms)
|
86
|
-
d_eq[key] = value
|
87
|
-
return d_eq
|
build/lib/ka_uts_com/argv.py
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
from ka_uts_com.pacmod import Pacmod
|
4
|
-
from ka_uts_com.aeq import Aeq
|
5
|
-
|
6
|
-
from typing import Any, Callable, Dict, List
|
7
|
-
|
8
|
-
T_Arr = List[Any]
|
9
|
-
T_Dic = Dict[Any, Any]
|
10
|
-
|
11
|
-
TN_Arr = None | T_Arr
|
12
|
-
TN_Dic = None | T_Dic
|
13
|
-
|
14
|
-
|
15
|
-
class Argv:
|
16
|
-
""" Manage Commandline Arguments
|
17
|
-
"""
|
18
|
-
@staticmethod
|
19
|
-
def set_by_pacmod(d_eq: T_Dic, root_cls) -> None:
|
20
|
-
""" set current pacmod dictionary
|
21
|
-
"""
|
22
|
-
tenant = d_eq.get('tenant')
|
23
|
-
d_eq['pacmod_curr'] = Pacmod.sh_d_pacmod(root_cls, tenant)
|
24
|
-
|
25
|
-
@staticmethod
|
26
|
-
def set_by_prof(d_eq: T_Dic, sh_prof: Callable | Any) -> None:
|
27
|
-
""" set current pacmod dictionary
|
28
|
-
"""
|
29
|
-
if callable(sh_prof):
|
30
|
-
d_eq['sh_prof'] = sh_prof()
|
31
|
-
else:
|
32
|
-
d_eq['sh_prof'] = sh_prof
|
33
|
-
|
34
|
-
@classmethod
|
35
|
-
def sh(cls, a_s_eq: T_Arr, **kwargs) -> T_Dic:
|
36
|
-
""" show equates dictionary
|
37
|
-
"""
|
38
|
-
# print(f"DoEq sh kwargs = {kwargs}")
|
39
|
-
root_cls = kwargs.get('root_cls')
|
40
|
-
d_valid_parms: TN_Dic = kwargs.get('d_parms')
|
41
|
-
# print(f"DoEq sh d_valid_parms = {d_valid_parms}")
|
42
|
-
|
43
|
-
d_eq = Aeq.sh_d_eq(a_s_eq, d_valid_parms)
|
44
|
-
|
45
|
-
cls.set_by_pacmod(d_eq, root_cls)
|
46
|
-
_sh_prof = kwargs.get('sh_prof')
|
47
|
-
cls.set_by_prof(d_eq, _sh_prof)
|
48
|
-
|
49
|
-
return d_eq
|
build/lib/ka_uts_com/ioc.py
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
import jinja2
|
4
|
-
import os
|
5
|
-
import yaml
|
6
|
-
|
7
|
-
from typing import Any, Dict
|
8
|
-
|
9
|
-
T_Dic = Dict[Any, Any]
|
10
|
-
|
11
|
-
TN_Any = None | Any
|
12
|
-
|
13
|
-
|
14
|
-
class Yaml:
|
15
|
-
|
16
|
-
""" Manage Object to Yaml file affilitation
|
17
|
-
"""
|
18
|
-
@staticmethod
|
19
|
-
def load_with_safeloader(string: str) -> None | Any:
|
20
|
-
_obj = yaml.load(string, Loader=yaml.SafeLoader)
|
21
|
-
return _obj
|
22
|
-
|
23
|
-
@staticmethod
|
24
|
-
def read(path: str) -> TN_Any:
|
25
|
-
with open(path) as fd:
|
26
|
-
# The Loader parameter handles the conversion from YAML
|
27
|
-
# scalar values to Python object format
|
28
|
-
_obj = yaml.load(fd, Loader=yaml.SafeLoader)
|
29
|
-
return _obj
|
30
|
-
return None
|
31
|
-
|
32
|
-
|
33
|
-
class Jinja2:
|
34
|
-
""" Manage Object to Json file affilitation
|
35
|
-
"""
|
36
|
-
@staticmethod
|
37
|
-
def read_template(
|
38
|
-
path: str) -> Any:
|
39
|
-
dir, file = os.path.split(path)
|
40
|
-
env = jinja2.Environment(loader=jinja2.FileSystemLoader(dir))
|
41
|
-
return env.get_template(file)
|
42
|
-
|
43
|
-
@classmethod
|
44
|
-
def read(
|
45
|
-
cls, path: str, **kwargs):
|
46
|
-
try:
|
47
|
-
# read jinja template from file
|
48
|
-
template = cls.read_template(path)
|
49
|
-
|
50
|
-
# render template as yaml string
|
51
|
-
template_rendered = template.render(**kwargs)
|
52
|
-
|
53
|
-
# parse yaml string as dictionary
|
54
|
-
dic = Yaml.load_with_safeloader(template_rendered)
|
55
|
-
return dic
|
56
|
-
except Exception:
|
57
|
-
raise
|
Binary file
|
Binary file
|
ka_uts_com/aeq.py
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
# import orjson
|
4
|
-
# import traceback
|
5
|
-
|
6
|
-
from ka_uts_com.date import Date
|
7
|
-
from ka_uts_com.str import Str
|
8
|
-
|
9
|
-
from typing import Any, Dict, List
|
10
|
-
|
11
|
-
TN_Date = None | Any
|
12
|
-
|
13
|
-
T_Arr = List[Any]
|
14
|
-
T_Dic = Dict[Any, Any]
|
15
|
-
|
16
|
-
TN_Arr = None | T_Arr
|
17
|
-
TN_Dic = None | T_Dic
|
18
|
-
TN_Str = None | str
|
19
|
-
|
20
|
-
|
21
|
-
class Aeq:
|
22
|
-
""" Dictionary of Equates
|
23
|
-
"""
|
24
|
-
@classmethod
|
25
|
-
def sh_value(cls, key: str, value: Any, d_valid_parms: TN_Dic) -> Any:
|
26
|
-
|
27
|
-
# print(f"key = {key}, type(key) = {type(key)}")
|
28
|
-
# print(f"value = {value}, type(value) = {type(value)}")
|
29
|
-
if not d_valid_parms:
|
30
|
-
return value
|
31
|
-
_type: TN_Str = d_valid_parms.get(key)
|
32
|
-
# print(f"_type = {_type}")
|
33
|
-
if not _type:
|
34
|
-
return value
|
35
|
-
if isinstance(_type, str):
|
36
|
-
match _type:
|
37
|
-
case 'int':
|
38
|
-
value = int(value)
|
39
|
-
case 'bool':
|
40
|
-
value = Str.sh_boolean(value)
|
41
|
-
case 'dict':
|
42
|
-
value = Str.sh_dic(value)
|
43
|
-
case 'list':
|
44
|
-
value = Str.sh_arr(value)
|
45
|
-
case '%Y-%m-%d':
|
46
|
-
value = Date.sh(value, _type)
|
47
|
-
case '_':
|
48
|
-
match _type[0]:
|
49
|
-
case '[', '{':
|
50
|
-
_obj = Str.sh_dic(_type)
|
51
|
-
if value not in _obj:
|
52
|
-
msg = (f"parameter={key} value={value} is invalid; "
|
53
|
-
f"valid values are={_obj}")
|
54
|
-
raise Exception(msg)
|
55
|
-
|
56
|
-
# print(f"value = {value}, type(value) = {type(value)}")
|
57
|
-
return value
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def sh_d_eq(cls, a_s_eq: T_Arr, d_valid_parms: TN_Dic) -> T_Dic:
|
61
|
-
|
62
|
-
d_eq = {}
|
63
|
-
_d_valid_parms = d_valid_parms
|
64
|
-
for s_eq in a_s_eq[1:]:
|
65
|
-
a_eq = s_eq.split('=')
|
66
|
-
if len(a_eq) == 1:
|
67
|
-
key = 'cmd'
|
68
|
-
value = a_eq[0]
|
69
|
-
if _d_valid_parms is not None:
|
70
|
-
if value in _d_valid_parms:
|
71
|
-
_d_valid_parms = _d_valid_parms[value]
|
72
|
-
else:
|
73
|
-
_valid_commands = list(_d_valid_parms.keys())
|
74
|
-
msg = (f"Wrong command: {value}; "
|
75
|
-
f"valid commands are: {_valid_commands}")
|
76
|
-
else:
|
77
|
-
key = a_eq[0]
|
78
|
-
value = a_eq[1]
|
79
|
-
|
80
|
-
if _d_valid_parms is not None:
|
81
|
-
if key not in _d_valid_parms:
|
82
|
-
msg = (f"Wrong parameter: {key}; "
|
83
|
-
f"valid parameters are: {_d_valid_parms}")
|
84
|
-
raise Exception(msg)
|
85
|
-
value = cls.sh_value(key, value, _d_valid_parms)
|
86
|
-
d_eq[key] = value
|
87
|
-
return d_eq
|
ka_uts_com/argv.py
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
from ka_uts_com.pacmod import Pacmod
|
4
|
-
from ka_uts_com.aeq import Aeq
|
5
|
-
|
6
|
-
from typing import Any, Callable, Dict, List
|
7
|
-
|
8
|
-
T_Arr = List[Any]
|
9
|
-
T_Dic = Dict[Any, Any]
|
10
|
-
|
11
|
-
TN_Arr = None | T_Arr
|
12
|
-
TN_Dic = None | T_Dic
|
13
|
-
|
14
|
-
|
15
|
-
class Argv:
|
16
|
-
""" Manage Commandline Arguments
|
17
|
-
"""
|
18
|
-
@staticmethod
|
19
|
-
def set_by_pacmod(d_eq: T_Dic, root_cls) -> None:
|
20
|
-
""" set current pacmod dictionary
|
21
|
-
"""
|
22
|
-
tenant = d_eq.get('tenant')
|
23
|
-
d_eq['pacmod_curr'] = Pacmod.sh_d_pacmod(root_cls, tenant)
|
24
|
-
|
25
|
-
@staticmethod
|
26
|
-
def set_by_prof(d_eq: T_Dic, sh_prof: Callable | Any) -> None:
|
27
|
-
""" set current pacmod dictionary
|
28
|
-
"""
|
29
|
-
if callable(sh_prof):
|
30
|
-
d_eq['sh_prof'] = sh_prof()
|
31
|
-
else:
|
32
|
-
d_eq['sh_prof'] = sh_prof
|
33
|
-
|
34
|
-
@classmethod
|
35
|
-
def sh(cls, a_s_eq: T_Arr, **kwargs) -> T_Dic:
|
36
|
-
""" show equates dictionary
|
37
|
-
"""
|
38
|
-
# print(f"DoEq sh kwargs = {kwargs}")
|
39
|
-
root_cls = kwargs.get('root_cls')
|
40
|
-
d_valid_parms: TN_Dic = kwargs.get('d_parms')
|
41
|
-
# print(f"DoEq sh d_valid_parms = {d_valid_parms}")
|
42
|
-
|
43
|
-
d_eq = Aeq.sh_d_eq(a_s_eq, d_valid_parms)
|
44
|
-
|
45
|
-
cls.set_by_pacmod(d_eq, root_cls)
|
46
|
-
_sh_prof = kwargs.get('sh_prof')
|
47
|
-
cls.set_by_prof(d_eq, _sh_prof)
|
48
|
-
|
49
|
-
return d_eq
|
ka_uts_com/ioc.py
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# coding=utf-8
|
2
|
-
|
3
|
-
import jinja2
|
4
|
-
import os
|
5
|
-
import yaml
|
6
|
-
|
7
|
-
from typing import Any, Dict
|
8
|
-
|
9
|
-
T_Dic = Dict[Any, Any]
|
10
|
-
|
11
|
-
TN_Any = None | Any
|
12
|
-
|
13
|
-
|
14
|
-
class Yaml:
|
15
|
-
|
16
|
-
""" Manage Object to Yaml file affilitation
|
17
|
-
"""
|
18
|
-
@staticmethod
|
19
|
-
def load_with_safeloader(string: str) -> None | Any:
|
20
|
-
_obj = yaml.load(string, Loader=yaml.SafeLoader)
|
21
|
-
return _obj
|
22
|
-
|
23
|
-
@staticmethod
|
24
|
-
def read(path: str) -> TN_Any:
|
25
|
-
with open(path) as fd:
|
26
|
-
# The Loader parameter handles the conversion from YAML
|
27
|
-
# scalar values to Python object format
|
28
|
-
_obj = yaml.load(fd, Loader=yaml.SafeLoader)
|
29
|
-
return _obj
|
30
|
-
return None
|
31
|
-
|
32
|
-
|
33
|
-
class Jinja2:
|
34
|
-
""" Manage Object to Json file affilitation
|
35
|
-
"""
|
36
|
-
@staticmethod
|
37
|
-
def read_template(
|
38
|
-
path: str) -> Any:
|
39
|
-
dir, file = os.path.split(path)
|
40
|
-
env = jinja2.Environment(loader=jinja2.FileSystemLoader(dir))
|
41
|
-
return env.get_template(file)
|
42
|
-
|
43
|
-
@classmethod
|
44
|
-
def read(
|
45
|
-
cls, path: str, **kwargs):
|
46
|
-
try:
|
47
|
-
# read jinja template from file
|
48
|
-
template = cls.read_template(path)
|
49
|
-
|
50
|
-
# render template as yaml string
|
51
|
-
template_rendered = template.render(**kwargs)
|
52
|
-
|
53
|
-
# parse yaml string as dictionary
|
54
|
-
dic = Yaml.load_with_safeloader(template_rendered)
|
55
|
-
return dic
|
56
|
-
except Exception:
|
57
|
-
raise
|