ka-uts-com 1.0.0.240823__py3-none-any.whl → 2.0.0.250407__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.
Files changed (59) hide show
  1. build/lib/ka_uts_com/__version__.py +1 -1
  2. build/lib/ka_uts_com/base/app_.py +50 -0
  3. build/lib/ka_uts_com/base/cfg_.py +35 -0
  4. build/lib/ka_uts_com/base/exit_.py +37 -0
  5. build/lib/ka_uts_com/base/log_.py +131 -0
  6. build/lib/ka_uts_com/com.py +91 -192
  7. build/lib/ka_uts_com/data/log.std.yml +107 -0
  8. build/lib/ka_uts_com/data/{log.standard.yml → log.usr.yml} +47 -27
  9. build/lib/ka_uts_com/decorators/dec.py +13 -0
  10. build/lib/ka_uts_com/fnc.py +29 -24
  11. build/lib/ka_uts_com/ioc/jinja2_.py +42 -0
  12. build/lib/ka_uts_com/ioc/yaml_.py +30 -0
  13. build/lib/ka_uts_com/log.py +48 -25
  14. build/lib/ka_uts_com/timer.py +24 -27
  15. build/lib/ka_uts_com/utils/aoeqstmt.py +37 -0
  16. build/lib/ka_uts_com/{date.py → utils/date.py} +4 -4
  17. build/lib/ka_uts_com/utils/doeq.py +99 -0
  18. build/lib/ka_uts_com/utils/pacmod.py +123 -0
  19. build/lib/ka_uts_com/{str.py → utils/str.py} +36 -39
  20. ka_uts_com/__version__.py +1 -1
  21. ka_uts_com/base/app_.py +50 -0
  22. ka_uts_com/base/cfg_.py +35 -0
  23. ka_uts_com/base/exit_.py +37 -0
  24. ka_uts_com/base/log_.py +131 -0
  25. ka_uts_com/com.py +91 -192
  26. ka_uts_com/data/log.std.yml +107 -0
  27. ka_uts_com/data/{log.standard.yml → log.usr.yml} +47 -27
  28. ka_uts_com/decorators/dec.py +13 -0
  29. ka_uts_com/fnc.py +29 -24
  30. ka_uts_com/ioc/jinja2_.py +42 -0
  31. ka_uts_com/ioc/yaml_.py +30 -0
  32. ka_uts_com/log.py +48 -25
  33. ka_uts_com/timer.py +24 -27
  34. ka_uts_com/utils/aoeqstmt.py +37 -0
  35. ka_uts_com/{date.py → utils/date.py} +4 -4
  36. ka_uts_com/utils/doeq.py +99 -0
  37. ka_uts_com/utils/pacmod.py +123 -0
  38. ka_uts_com/{str.py → utils/str.py} +36 -39
  39. ka_uts_com-2.0.0.250407.dist-info/METADATA +1611 -0
  40. ka_uts_com-2.0.0.250407.dist-info/RECORD +49 -0
  41. {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-2.0.0.250407.dist-info}/WHEEL +1 -1
  42. {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-2.0.0.250407.dist-info/licenses}/LICENSE.txt +1 -2
  43. build/lib/dist/ka_uts_com-1.0.0.240823-py3-none-any.whl +0 -0
  44. build/lib/dist/ka_uts_com-1.0.0.240823.tar.gz +0 -0
  45. build/lib/ka_uts_com/aeq.py +0 -87
  46. build/lib/ka_uts_com/argv.py +0 -49
  47. build/lib/ka_uts_com/data/log.personal.yml +0 -93
  48. build/lib/ka_uts_com/ioc.py +0 -57
  49. build/lib/ka_uts_com/pacmod.py +0 -111
  50. dist/ka_uts_com-1.0.0.240823-py3-none-any.whl +0 -0
  51. dist/ka_uts_com-1.0.0.240823.tar.gz +0 -0
  52. ka_uts_com/aeq.py +0 -87
  53. ka_uts_com/argv.py +0 -49
  54. ka_uts_com/data/log.personal.yml +0 -93
  55. ka_uts_com/ioc.py +0 -57
  56. ka_uts_com/pacmod.py +0 -111
  57. ka_uts_com-1.0.0.240823.dist-info/METADATA +0 -943
  58. ka_uts_com-1.0.0.240823.dist-info/RECORD +0 -41
  59. {ka_uts_com-1.0.0.240823.dist-info → ka_uts_com-2.0.0.250407.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,49 @@
1
+ build/lib/ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ build/lib/ka_uts_com/__version__.py,sha256=iBOg_i7289E25xdyGMI0XxvTWLmFgGE0dhd5bqIX5mo,365
3
+ build/lib/ka_uts_com/com.py,sha256=8eLff9ox4eT-fGx9UeHGjW_2NsF9UBZSKLzXeBgD9s4,3244
4
+ build/lib/ka_uts_com/fnc.py,sha256=QmCWbmkB8Q8kAxubsqbWOonOBIaL07Y3Y7oXvEqg8Q4,1030
5
+ build/lib/ka_uts_com/log.py,sha256=FuTyeKsmXMz5FWtHLwkrJ8gIAii8UpUoORyAgeZ1IWI,2523
6
+ build/lib/ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ build/lib/ka_uts_com/timer.py,sha256=6_4886XnygWhE0nc23DW9S5a4X9b9kACL5zI1PKdTXg,2153
8
+ build/lib/ka_uts_com/base/app_.py,sha256=GyDOAKKavKNTNh9iZvney20JYVcfp3EElTRpRaTp0tg,1144
9
+ build/lib/ka_uts_com/base/cfg_.py,sha256=TNZjLuR6VNFzQmbkKOG6oVeVf9qW8DpJ5CxLdWLkEtM,702
10
+ build/lib/ka_uts_com/base/exit_.py,sha256=2HXS-5BN5Q5EZx7S2Nar5voHHJZ3GlYfv--wnC3rT-A,792
11
+ build/lib/ka_uts_com/base/log_.py,sha256=Vhxn-3fx5M1pQMw4IFv2bU2xYP7ajlZeSmm2gRjlxAo,4378
12
+ build/lib/ka_uts_com/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ build/lib/ka_uts_com/data/log.std.yml,sha256=KJk-CtLjTW3sC0H0lPo-srY04AA7GAoXNfi4HvcTNk0,3019
14
+ build/lib/ka_uts_com/data/log.usr.yml,sha256=sfCYo8u06xQ5F4xQH5VGHNrEfj7081lJ-9I-VYIT0Ck,3011
15
+ build/lib/ka_uts_com/decorators/dec.py,sha256=NHerkpjOYpJXz2CIh9HlN3_YCyLv-SbyQL4ldyGUSpM,217
16
+ build/lib/ka_uts_com/ioc/jinja2_.py,sha256=Q9_suhZERjYrZY_lDd2kYq63N_fItgj18vMTdp7c55Q,1112
17
+ build/lib/ka_uts_com/ioc/yaml_.py,sha256=2JEsnhEuKZJVGMq0bwOIlVOcfd1yBmvA47QRdCy8HjI,801
18
+ build/lib/ka_uts_com/utils/aoeqstmt.py,sha256=AkaEGUjQzAjSaJGaJmdq_cs-rUXjUVTCRXBhpWYJgmE,955
19
+ build/lib/ka_uts_com/utils/date.py,sha256=5K_wxf5uVEDc7oNR7KKAwVK-iFfSq2jgovZeRE8Yw-s,305
20
+ build/lib/ka_uts_com/utils/doeq.py,sha256=2cZjPDOhrgcJmLvCwcAcHr4XWaxvcorPx6LVF-xZ6Yk,3203
21
+ build/lib/ka_uts_com/utils/pacmod.py,sha256=pAxXfom-w4p-CrGSWjpdhKOc9mH3YKMB26hkQreNanI,3884
22
+ build/lib/ka_uts_com/utils/str.py,sha256=cRixfOSTJqypiANn1wM0uQlmIbLsfNM4hatiPCQ_HIM,7145
23
+ ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ ka_uts_com/__version__.py,sha256=iBOg_i7289E25xdyGMI0XxvTWLmFgGE0dhd5bqIX5mo,365
25
+ ka_uts_com/com.py,sha256=8eLff9ox4eT-fGx9UeHGjW_2NsF9UBZSKLzXeBgD9s4,3244
26
+ ka_uts_com/fnc.py,sha256=QmCWbmkB8Q8kAxubsqbWOonOBIaL07Y3Y7oXvEqg8Q4,1030
27
+ ka_uts_com/log.py,sha256=FuTyeKsmXMz5FWtHLwkrJ8gIAii8UpUoORyAgeZ1IWI,2523
28
+ ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ ka_uts_com/timer.py,sha256=6_4886XnygWhE0nc23DW9S5a4X9b9kACL5zI1PKdTXg,2153
30
+ ka_uts_com/base/app_.py,sha256=GyDOAKKavKNTNh9iZvney20JYVcfp3EElTRpRaTp0tg,1144
31
+ ka_uts_com/base/cfg_.py,sha256=TNZjLuR6VNFzQmbkKOG6oVeVf9qW8DpJ5CxLdWLkEtM,702
32
+ ka_uts_com/base/exit_.py,sha256=2HXS-5BN5Q5EZx7S2Nar5voHHJZ3GlYfv--wnC3rT-A,792
33
+ ka_uts_com/base/log_.py,sha256=Vhxn-3fx5M1pQMw4IFv2bU2xYP7ajlZeSmm2gRjlxAo,4378
34
+ ka_uts_com/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ ka_uts_com/data/log.std.yml,sha256=KJk-CtLjTW3sC0H0lPo-srY04AA7GAoXNfi4HvcTNk0,3019
36
+ ka_uts_com/data/log.usr.yml,sha256=sfCYo8u06xQ5F4xQH5VGHNrEfj7081lJ-9I-VYIT0Ck,3011
37
+ ka_uts_com/decorators/dec.py,sha256=NHerkpjOYpJXz2CIh9HlN3_YCyLv-SbyQL4ldyGUSpM,217
38
+ ka_uts_com/ioc/jinja2_.py,sha256=Q9_suhZERjYrZY_lDd2kYq63N_fItgj18vMTdp7c55Q,1112
39
+ ka_uts_com/ioc/yaml_.py,sha256=2JEsnhEuKZJVGMq0bwOIlVOcfd1yBmvA47QRdCy8HjI,801
40
+ ka_uts_com/utils/aoeqstmt.py,sha256=AkaEGUjQzAjSaJGaJmdq_cs-rUXjUVTCRXBhpWYJgmE,955
41
+ ka_uts_com/utils/date.py,sha256=5K_wxf5uVEDc7oNR7KKAwVK-iFfSq2jgovZeRE8Yw-s,305
42
+ ka_uts_com/utils/doeq.py,sha256=2cZjPDOhrgcJmLvCwcAcHr4XWaxvcorPx6LVF-xZ6Yk,3203
43
+ ka_uts_com/utils/pacmod.py,sha256=pAxXfom-w4p-CrGSWjpdhKOc9mH3YKMB26hkQreNanI,3884
44
+ ka_uts_com/utils/str.py,sha256=cRixfOSTJqypiANn1wM0uQlmIbLsfNM4hatiPCQ_HIM,7145
45
+ ka_uts_com-2.0.0.250407.dist-info/licenses/LICENSE.txt,sha256=BiT3QGI_2iRbdvgS3HDig57lnXJVk60Pj4xM9eeCczI,814
46
+ ka_uts_com-2.0.0.250407.dist-info/METADATA,sha256=0p-3BM_P9q8cuOVYOxf2eKdkzAuyiChcRK_ho0qAcqg,52070
47
+ ka_uts_com-2.0.0.250407.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
48
+ ka_uts_com-2.0.0.250407.dist-info/top_level.txt,sha256=CviWgXDn1mYmGlBxZ3G7sMNqv9KOOwYzbDpZsu5RYv4,27
49
+ ka_uts_com-2.0.0.250407.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2022 Kosakya, GmbH. All rights reserved.
2
+ # Copyright (c) 2025 Kosakya, GmbH. All rights reserved.
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
5
5
  # it under the terms of the GNU General Public License as published by
@@ -16,4 +16,3 @@
16
16
  #
17
17
  # Person: Role: Email:
18
18
  # Bernd Stroehle Author bernd.stroehle@gmail.com
19
- # Maintainer
@@ -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
@@ -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
@@ -1,93 +0,0 @@
1
- version: 1
2
-
3
- disable_existing_loggers: False
4
-
5
- root:
6
- level: DEBUG
7
- handlers:
8
- - debug_console
9
- - debug_file
10
-
11
- loggers:
12
-
13
- # main logger
14
- main:
15
- level: 'NOTSET'
16
- handlers:
17
- - debug_console
18
- - debug_file
19
- - info_file
20
- - error_file
21
-
22
- # person logger
23
- person:
24
- level: NOTSET
25
- handlers:
26
- - debug_console
27
- - debug_file
28
- - info_file
29
- - error_file
30
-
31
- handlers:
32
-
33
- debug_console:
34
- class: 'logging.StreamHandler'
35
- level: DEBUG
36
- formatter: debug
37
- stream: 'ext://sys.stderr'
38
-
39
- debug_file:
40
- class: 'logging.FileHandler'
41
- level: DEBUG
42
- formatter: error
43
- filename: 'debug.log'
44
- mode: 'a'
45
-
46
- # info_rotating_file_handler:
47
- # class: 'logging.handlers.RotatingFileHandler'
48
- # level: INFO
49
- # formatter: info
50
- # filename: 'info.rotating.log'
51
- # mode: 'a'
52
- # maxBytes: 1048576 # 1MB
53
- # backupCount: 10
54
- # encoding: utf8
55
-
56
- info_file:
57
- class: 'logging.FileHandler'
58
- level: INFO
59
- formatter: info
60
- filename: 'info.log'
61
- mode: 'a'
62
-
63
- error_file:
64
- class: 'logging.FileHandler'
65
- level: ERROR
66
- formatter: error
67
- filename: 'error.log'
68
- mode: 'a'
69
-
70
- critical_mail:
71
- class: 'logging.handlers.SMTPHandler'
72
- level: CRITICAL
73
- formatter: critical
74
- mailhost : localhost
75
- fromaddr: 'monitoring@domain.com'
76
- toaddrs:
77
- - 'dev@domain.com'
78
- - 'qa@domain.com'
79
- subject: 'Critical error with application name'
80
-
81
- formatters:
82
-
83
- info:
84
- format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
85
- debug:
86
- format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
87
- datefmt: '%Y-%m-%d %H:%M:%S'
88
- error:
89
- format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
90
- datefmt: '%Y-%m-%d %H:%M:%S'
91
- critical:
92
- format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
93
- datefmt: '%Y-%m-%d %H:%M:%S'
@@ -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
@@ -1,111 +0,0 @@
1
- # coding=utf-8
2
-
3
- from os import path as os_path
4
- import pkg_resources
5
-
6
- from typing import Any, Dict, List
7
-
8
- T_Arr = List[Any]
9
- T_Dic = Dict[Any, Any]
10
-
11
- TN_Dic = None | T_Dic
12
-
13
-
14
- class Pacmod:
15
- """ Package Module Management
16
- """
17
- def sh_d_pacmod(root_cls, tenant: Any) -> T_Dic:
18
- """ Show Pacmod Dictionary
19
- """
20
- a_pacmod: T_Arr = root_cls.__module__.split(".")
21
- package = a_pacmod[0]
22
- module = a_pacmod[1]
23
- d_pacmod: T_Dic = {}
24
- d_pacmod['tenant'] = tenant
25
- d_pacmod['package'] = package
26
- d_pacmod['module'] = module
27
- return d_pacmod
28
-
29
- # class Cfg:
30
- # """ Configuration Sub Class of Package Module Class
31
- # """
32
- @staticmethod
33
- def sh_path_cfg_yaml(pacmod: T_Dic) -> str:
34
- """ show directory
35
- """
36
- package = pacmod['package']
37
- module = pacmod['module']
38
-
39
- dir: str = f"{package}.data"
40
-
41
- # print(f"dir = {dir}")
42
- # print(f"package = {package}")
43
- # print(f"module = {module}")
44
-
45
- path = pkg_resources.resource_filename(dir, f"{module}.yml")
46
- return path
47
-
48
- @staticmethod
49
- def sh_path_keys_yaml(
50
- pacmod: Any, filename: str = 'keys.yml') -> str:
51
- """ show directory
52
- """
53
- package = pacmod['package']
54
- dir = f"{package}.data"
55
- path = pkg_resources.resource_filename(dir, filename)
56
- return path
57
-
58
- @staticmethod
59
- def sh_pacmod_type(pacmod: Dict, type_: str) -> str:
60
- """ show Data File Path
61
- """
62
- package = pacmod['package']
63
- module = pacmod['module']
64
- return f"/data/{package}/{module}/{type_}"
65
-
66
- @classmethod
67
- def sh_file_path(
68
- cls, pacmod: T_Dic, type_: str, suffix: str,
69
- pid: Any, ts: Any, **kwargs) -> str:
70
- """ show type specific path
71
- """
72
- filename = kwargs.get('filename')
73
- if filename is not None:
74
- filename_ = filename
75
- else:
76
- filename_ = type_
77
-
78
- sw_run_pid_ts = kwargs.get('sw_run_pid_ts', True)
79
- if sw_run_pid_ts is None:
80
- sw_run_pid_ts = True
81
-
82
- # _dir: str = cls.Data.Dir.sh(pacmod, type)
83
- _dir: str = cls.sh_pacmod_type(pacmod, type_)
84
- if sw_run_pid_ts:
85
- # pid = str(Com.pid)
86
- # ts = str(Com.ts_start)
87
- file_path = os_path.join(
88
- _dir, f"{filename_}_{pid}_{ts}.{suffix}")
89
- else:
90
- file_path = os_path.join(_dir, f"{filename_}.{suffix}")
91
- return file_path
92
-
93
- @classmethod
94
- def sh_pattern(
95
- cls, pacmod: T_Dic, type_: str, suffix: str, **kwargs) -> str:
96
- """ show type specific path
97
- """
98
- filename = kwargs.get('filename')
99
- _dir: str = cls.sh_pacmod_type(pacmod, type_)
100
- path = os_path.join(_dir, f"{filename}*.{suffix}")
101
- return path
102
-
103
- @staticmethod
104
- def sh_path_cfg_log(pacmod: TN_Dic = None, filename: str = 'log.yml'):
105
- """ show directory
106
- """
107
- if pacmod is None:
108
- pacmod = {'package': 'ka_uts_com', 'module': 'com'}
109
- return pkg_resources.resource_filename(
110
- f"{pacmod['package']}.data", filename
111
- )
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