ka-uts-com 1.0.1.250131__py3-none-any.whl → 2.1.0.250408__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-2.0.0.250407-py3-none-any.whl +0 -0
- build/lib/dist/ka_uts_com-2.0.0.250407.tar.gz +0 -0
- build/lib/ka_uts_com/__version__.py +1 -1
- build/lib/ka_uts_com/base/app_.py +10 -11
- build/lib/ka_uts_com/base/cfg_.py +14 -5
- build/lib/ka_uts_com/base/log_.py +66 -50
- build/lib/ka_uts_com/com.py +54 -11
- build/lib/ka_uts_com/data/log.std.yml +47 -26
- build/lib/ka_uts_com/data/log.usr.yml +46 -25
- build/lib/ka_uts_com/ioc/jinja2_.py +1 -1
- build/lib/ka_uts_com/ioc/yaml_.py +2 -1
- build/lib/ka_uts_com/log.py +23 -12
- build/lib/ka_uts_com/timer.py +10 -6
- build/lib/ka_uts_com/utils/aoeqstmt.py +0 -2
- build/lib/ka_uts_com/utils/doeq.py +7 -7
- build/lib/ka_uts_com/utils/pac.py +35 -0
- build/lib/ka_uts_com/utils/pacmod.py +74 -72
- dist/ka_uts_com-2.0.0.250407-py3-none-any.whl +0 -0
- dist/ka_uts_com-2.0.0.250407.tar.gz +0 -0
- ka_uts_com/__version__.py +1 -1
- ka_uts_com/base/app_.py +10 -11
- ka_uts_com/base/cfg_.py +14 -5
- ka_uts_com/base/log_.py +66 -50
- ka_uts_com/com.py +54 -11
- ka_uts_com/data/log.std.yml +47 -26
- ka_uts_com/data/log.usr.yml +46 -25
- ka_uts_com/ioc/jinja2_.py +1 -1
- ka_uts_com/ioc/yaml_.py +2 -1
- ka_uts_com/log.py +23 -12
- ka_uts_com/timer.py +10 -6
- ka_uts_com/utils/aoeqstmt.py +0 -2
- ka_uts_com/utils/doeq.py +7 -7
- ka_uts_com/utils/pac.py +35 -0
- ka_uts_com/utils/pacmod.py +74 -72
- {ka_uts_com-1.0.1.250131.dist-info → ka_uts_com-2.1.0.250408.dist-info}/METADATA +389 -406
- ka_uts_com-2.1.0.250408.dist-info/RECORD +55 -0
- {ka_uts_com-1.0.1.250131.dist-info → ka_uts_com-2.1.0.250408.dist-info}/licenses/LICENSE.txt +1 -2
- 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/utils/py.typed +0 -0
- 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/utils/py.typed +0 -0
- ka_uts_com-1.0.1.250131.dist-info/RECORD +0 -55
- {ka_uts_com-1.0.1.250131.dist-info → ka_uts_com-2.1.0.250408.dist-info}/WHEEL +0 -0
- {ka_uts_com-1.0.1.250131.dist-info → ka_uts_com-2.1.0.250408.dist-info}/top_level.txt +0 -0
ka_uts_com/com.py
CHANGED
@@ -10,6 +10,8 @@ from logging import Logger
|
|
10
10
|
from datetime import datetime
|
11
11
|
|
12
12
|
from ka_uts_com.utils.aoeqstmt import AoEqStmt
|
13
|
+
from ka_uts_com.utils.pac import Pac
|
14
|
+
from ka_uts_com.utils.pacmod import PacMod
|
13
15
|
from ka_uts_com.base.app_ import App_
|
14
16
|
from ka_uts_com.base.cfg_ import Cfg_
|
15
17
|
from ka_uts_com.base.exit_ import Exit_
|
@@ -28,15 +30,23 @@ TnArr = None | TyArr
|
|
28
30
|
TnDic = None | TyDic
|
29
31
|
TnTimeStamp = None | TyTimeStamp
|
30
32
|
TnDateTime = None | TyDateTime
|
33
|
+
TnStr = None | str
|
31
34
|
|
32
35
|
|
33
36
|
class Com:
|
34
37
|
"""Communication Class
|
35
38
|
"""
|
36
39
|
sw_init: bool = False
|
37
|
-
|
40
|
+
dir_dat: TnStr = None
|
41
|
+
tenant: TnStr = None
|
42
|
+
log_type: TnStr = None
|
43
|
+
cmd: TnStr = None
|
44
|
+
d_com_pacmod: TyDic = {}
|
45
|
+
d_app_pacmod: TyDic = {}
|
46
|
+
path_bin = None
|
47
|
+
path_log_cfg = None
|
48
|
+
|
38
49
|
pid = None
|
39
|
-
d_pacmod: TyDic = {}
|
40
50
|
|
41
51
|
ts: TnTimeStamp
|
42
52
|
ts_start: TnDateTime = None
|
@@ -44,29 +54,62 @@ class Com:
|
|
44
54
|
ts_etime: TnDateTime = None
|
45
55
|
d_timer: TyDic = {}
|
46
56
|
|
47
|
-
|
57
|
+
cfg: TnDic = None
|
58
|
+
Log = logging.getLogger('dummy_logger')
|
48
59
|
App: Any = None
|
49
60
|
Exit: Any = None
|
50
61
|
|
51
62
|
@classmethod
|
52
|
-
def init(cls,
|
63
|
+
def init(cls, app_cls, kwargs: TyDic):
|
53
64
|
""" set log and application (module) configuration
|
54
65
|
"""
|
55
66
|
if cls.sw_init:
|
56
67
|
return
|
57
68
|
cls.sw_init = True
|
58
|
-
cls.
|
69
|
+
cls.dir_dat = kwargs.get('dir_dat', '/data')
|
70
|
+
cls.tenant = kwargs.get('tenant')
|
71
|
+
cls.log_type = kwargs.get('log_type', 'std')
|
72
|
+
cls.cmd = kwargs.get('cmd')
|
73
|
+
cls.d_com_pacmod = PacMod.sh_d_pacmod(cls)
|
74
|
+
cls.d_app_pacmod = PacMod.sh_d_pacmod(app_cls)
|
59
75
|
cls.ts = calendar.timegm(time.gmtime())
|
60
76
|
cls.pid = os.getpid()
|
61
77
|
|
78
|
+
cls.path_bin = cls.sh_path_bin()
|
79
|
+
cls.path_log_cfg = cls.sh_path_log_cfg()
|
80
|
+
|
62
81
|
cls.Log = Log_.sh(cls, **kwargs)
|
63
|
-
cls.cfg = Cfg_.sh(cls
|
64
|
-
cls.App = App_.sh(cls
|
82
|
+
cls.cfg = Cfg_.sh(cls, **kwargs)
|
83
|
+
cls.App = App_.sh(cls, **kwargs)
|
65
84
|
cls.Exit = Exit_.sh(**kwargs)
|
66
85
|
|
67
86
|
@classmethod
|
68
|
-
def sh_kwargs(cls,
|
69
|
-
_kwargs: TyDic = AoEqStmt.sh_d_eq(
|
70
|
-
|
71
|
-
cls
|
87
|
+
def sh_kwargs(cls, app_cls, d_parms, *args) -> TyDic:
|
88
|
+
_kwargs: TyDic = AoEqStmt.sh_d_eq(*args, d_parms=d_parms)
|
89
|
+
cls.init(app_cls, _kwargs)
|
90
|
+
_kwargs['com'] = cls
|
72
91
|
return _kwargs
|
92
|
+
|
93
|
+
@classmethod
|
94
|
+
def sh_path_bin(cls) -> Any:
|
95
|
+
""" show directory
|
96
|
+
"""
|
97
|
+
package = cls.d_app_pacmod['package']
|
98
|
+
path = "bin"
|
99
|
+
return Pac.sh_path_by_package(package, path)
|
100
|
+
|
101
|
+
@classmethod
|
102
|
+
def sh_path_log_cfg(cls) -> Any:
|
103
|
+
""" show directory
|
104
|
+
"""
|
105
|
+
_packages = [cls.d_app_pacmod['package'], cls.d_com_pacmod['package']]
|
106
|
+
_path = f"data/log.{cls.log_type}.yml"
|
107
|
+
return Pac.sh_path_by_packages(_packages, _path)
|
108
|
+
|
109
|
+
@classmethod
|
110
|
+
def sh_path_cfg(cls) -> Any:
|
111
|
+
""" show directory
|
112
|
+
"""
|
113
|
+
package = cls.d_app_pacmod['package']
|
114
|
+
path = 'data/cfg.yml'
|
115
|
+
return Pac.sh_path_by_package(package, path)
|
ka_uts_com/data/log.std.yml
CHANGED
@@ -10,25 +10,27 @@ disable_existing_loggers: False
|
|
10
10
|
|
11
11
|
loggers:
|
12
12
|
|
13
|
-
#
|
14
|
-
|
13
|
+
# standard logger
|
14
|
+
std:
|
15
15
|
# level: NOTSET
|
16
16
|
level: DEBUG
|
17
17
|
handlers:
|
18
|
-
-
|
19
|
-
-
|
20
|
-
-
|
21
|
-
-
|
18
|
+
- std_debug_console
|
19
|
+
- std_error_file
|
20
|
+
- std_warning_file
|
21
|
+
- std_debug_file
|
22
|
+
- std_info_file
|
23
|
+
- std_log_file
|
22
24
|
|
23
25
|
handlers:
|
24
26
|
|
25
|
-
|
27
|
+
std_debug_console:
|
26
28
|
class: 'logging.StreamHandler'
|
27
29
|
level: DEBUG
|
28
|
-
formatter:
|
30
|
+
formatter: std_debug
|
29
31
|
stream: 'ext://sys.stderr'
|
30
32
|
|
31
|
-
#
|
33
|
+
# std_info_rotating_file_handler:
|
32
34
|
# class: 'logging.handlers.RotatingFileHandler'
|
33
35
|
# level: INFO
|
34
36
|
# formatter: info
|
@@ -38,31 +40,45 @@ handlers:
|
|
38
40
|
# backupCount: 10
|
39
41
|
# encoding: utf8
|
40
42
|
|
41
|
-
|
43
|
+
std_error_file:
|
44
|
+
class: 'logging.FileHandler'
|
45
|
+
level: ERROR
|
46
|
+
formatter: std_error
|
47
|
+
filename: '{{dir_run_errs}}/errs_{{pid}}_{{ts}}.log'
|
48
|
+
mode: 'a'
|
49
|
+
|
50
|
+
std_warning_file:
|
51
|
+
class: 'logging.FileHandler'
|
52
|
+
level: WARNING
|
53
|
+
formatter: std_warning
|
54
|
+
filename: '{{dir_run_wrns}}/wrns_{{pid}}_{{ts}}.log'
|
55
|
+
mode: 'a'
|
56
|
+
|
57
|
+
std_debug_file:
|
42
58
|
class: 'logging.FileHandler'
|
43
59
|
level: DEBUG
|
44
|
-
formatter:
|
45
|
-
filename: '{{
|
60
|
+
formatter: std_debug
|
61
|
+
filename: '{{dir_run_debs}}/debs_{{pid}}_{{ts}}.log'
|
46
62
|
mode: 'a'
|
47
63
|
|
48
|
-
|
64
|
+
std_info_file:
|
49
65
|
class: 'logging.FileHandler'
|
50
66
|
level: INFO
|
51
|
-
formatter:
|
52
|
-
filename: '{{
|
67
|
+
formatter: std_info
|
68
|
+
filename: '{{dir_run_infs}}/infs_{{pid}}_{{ts}}.log'
|
53
69
|
mode: 'a'
|
54
70
|
|
55
|
-
|
71
|
+
std_log_file:
|
56
72
|
class: 'logging.FileHandler'
|
57
|
-
level:
|
58
|
-
formatter:
|
59
|
-
filename: '{{
|
73
|
+
level: INFO
|
74
|
+
formatter: std_log
|
75
|
+
filename: '{{dir_run_logs}}/logs_{{pid}}_{{ts}}.log'
|
60
76
|
mode: 'a'
|
61
77
|
|
62
|
-
|
78
|
+
std_critical_mail:
|
63
79
|
class: 'logging.handlers.SMTPHandler'
|
64
80
|
level: CRITICAL
|
65
|
-
formatter:
|
81
|
+
formatter: std_critical
|
66
82
|
mailhost : localhost
|
67
83
|
fromaddr: 'monitoring@domain.com'
|
68
84
|
toaddrs:
|
@@ -73,14 +89,19 @@ handlers:
|
|
73
89
|
|
74
90
|
formatters:
|
75
91
|
|
76
|
-
|
77
|
-
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
78
|
-
main_debug:
|
92
|
+
std_warning:
|
79
93
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
80
94
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
81
|
-
|
95
|
+
std_error:
|
82
96
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
83
97
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
84
|
-
|
98
|
+
std_debug:
|
99
|
+
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
100
|
+
datefmt: '%Y-%m-%d %H:%M:%S'
|
101
|
+
std_info:
|
102
|
+
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
103
|
+
std_log:
|
104
|
+
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
105
|
+
std_critical:
|
85
106
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
86
107
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
ka_uts_com/data/log.usr.yml
CHANGED
@@ -9,22 +9,24 @@ disable_existing_loggers: False
|
|
9
9
|
|
10
10
|
loggers:
|
11
11
|
|
12
|
-
#
|
13
|
-
|
12
|
+
# user logger
|
13
|
+
usr:
|
14
14
|
# level: NOTSET
|
15
15
|
level: DEBUG
|
16
16
|
handlers:
|
17
|
-
-
|
18
|
-
-
|
19
|
-
-
|
20
|
-
-
|
17
|
+
- usr_debug_console
|
18
|
+
- usr_error_file
|
19
|
+
- usr_warning_file
|
20
|
+
- usr_debug_file
|
21
|
+
- usr_info_file
|
22
|
+
- usr_log_file
|
21
23
|
|
22
24
|
handlers:
|
23
25
|
|
24
|
-
|
26
|
+
usr_debug_console:
|
25
27
|
class: 'logging.StreamHandler'
|
26
28
|
level: DEBUG
|
27
|
-
formatter:
|
29
|
+
formatter: usr_debug
|
28
30
|
stream: 'ext://sys.stderr'
|
29
31
|
|
30
32
|
# person_info_rotating_file_handler:
|
@@ -37,31 +39,45 @@ handlers:
|
|
37
39
|
# backupCount: 10
|
38
40
|
# encoding: utf8
|
39
41
|
|
40
|
-
|
42
|
+
usr_error_file:
|
43
|
+
class: 'logging.FileHandler'
|
44
|
+
level: ERROR
|
45
|
+
formatter: usr_error
|
46
|
+
filename: '{{dir_run_errs}}/errs_{{pid}}_{{ts}}.log'
|
47
|
+
mode: 'a'
|
48
|
+
|
49
|
+
usr_warning_file:
|
50
|
+
class: 'logging.FileHandler'
|
51
|
+
level: ERROR
|
52
|
+
formatter: usr_warning
|
53
|
+
filename: '{{dir_run_wrns}}/wrns_{{pid}}_{{ts}}.log'
|
54
|
+
mode: 'a'
|
55
|
+
|
56
|
+
usr_debug_file:
|
41
57
|
class: 'logging.FileHandler'
|
42
58
|
level: DEBUG
|
43
|
-
formatter:
|
44
|
-
filename: '{{
|
59
|
+
formatter: usr_debug
|
60
|
+
filename: '{{dir_run_debs}}/debs_{{pid}}_{{ts}}.log'
|
45
61
|
mode: 'a'
|
46
62
|
|
47
|
-
|
63
|
+
usr_info_file:
|
48
64
|
class: 'logging.FileHandler'
|
49
65
|
level: INFO
|
50
|
-
formatter:
|
51
|
-
filename: '{{
|
66
|
+
formatter: usr_info
|
67
|
+
filename: '{{dir_run_infs}}/infs_{{pid}}_{{ts}}.log'
|
52
68
|
mode: 'a'
|
53
69
|
|
54
|
-
|
70
|
+
usr_log_file:
|
55
71
|
class: 'logging.FileHandler'
|
56
|
-
level:
|
57
|
-
formatter:
|
58
|
-
filename: '{{
|
72
|
+
level: INFO
|
73
|
+
formatter: usr_log
|
74
|
+
filename: '{{dir_run_logs}}/logs_{{pid}}_{{ts}}.log'
|
59
75
|
mode: 'a'
|
60
76
|
|
61
|
-
|
77
|
+
usr_critical_mail:
|
62
78
|
class: 'logging.handlers.SMTPHandler'
|
63
79
|
level: CRITICAL
|
64
|
-
formatter:
|
80
|
+
formatter: usr_critical
|
65
81
|
mailhost : localhost
|
66
82
|
fromaddr: 'monitoring@domain.com'
|
67
83
|
toaddrs:
|
@@ -72,14 +88,19 @@ handlers:
|
|
72
88
|
|
73
89
|
formatters:
|
74
90
|
|
75
|
-
|
76
|
-
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
77
|
-
person_debug:
|
91
|
+
usr_errs:
|
78
92
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
79
93
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
80
|
-
|
94
|
+
usr_wrns:
|
81
95
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
82
96
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
83
|
-
|
97
|
+
usr_debs:
|
98
|
+
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
99
|
+
datefmt: '%Y-%m-%d %H:%M:%S'
|
100
|
+
usr_infs:
|
101
|
+
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
102
|
+
usr_logs:
|
103
|
+
format: '%(asctime)s-%(levelname)s-%(name)s::%(module)s|%(lineno)s:: %(message)s'
|
104
|
+
usr_critical:
|
84
105
|
format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
|
85
106
|
datefmt: '%Y-%m-%d %H:%M:%S'
|
ka_uts_com/ioc/jinja2_.py
CHANGED
ka_uts_com/ioc/yaml_.py
CHANGED
@@ -21,7 +21,8 @@ class Yaml_:
|
|
21
21
|
obj = yaml.load(fd, Loader=yaml.SafeLoader)
|
22
22
|
return obj
|
23
23
|
except FileNotFoundError:
|
24
|
-
log.error(f"No such file or directory: {path}")
|
24
|
+
log.error(f"No such file or directory: path='{path}'")
|
25
|
+
raise
|
25
26
|
except IOError:
|
26
27
|
# if Com.Log is not None:
|
27
28
|
# fnc_error = Com.Log.error
|
ka_uts_com/log.py
CHANGED
@@ -8,21 +8,25 @@ class Log:
|
|
8
8
|
"""
|
9
9
|
class Eq:
|
10
10
|
|
11
|
-
@classmethod
|
12
|
-
def debug(cls, key: Any, value: Any) -> None:
|
13
|
-
Log.debug(f"{key} = {value}", stacklevel=3)
|
14
|
-
|
15
11
|
@classmethod
|
16
12
|
def error(cls, key: Any, value: Any) -> None:
|
17
13
|
Log.error(f"{key} = {value}", stacklevel=3)
|
18
14
|
|
15
|
+
@classmethod
|
16
|
+
def warning(cls, key: Any, value: Any) -> None:
|
17
|
+
Log.warning(f"{key} = {value}", stacklevel=3)
|
18
|
+
|
19
19
|
@classmethod
|
20
20
|
def info(cls, key: Any, value: Any) -> None:
|
21
21
|
Log.info(f"{key} = {value}", stacklevel=3)
|
22
22
|
|
23
23
|
@classmethod
|
24
|
-
def
|
25
|
-
Log.
|
24
|
+
def log(cls, key: Any, value: Any) -> None:
|
25
|
+
Log.log(f"{key} = {value}", stacklevel=3)
|
26
|
+
|
27
|
+
@classmethod
|
28
|
+
def debug(cls, key: Any, value: Any) -> None:
|
29
|
+
Log.debug(f"{key} = {value}", stacklevel=3)
|
26
30
|
|
27
31
|
class Dic:
|
28
32
|
|
@@ -47,18 +51,18 @@ class Log:
|
|
47
51
|
Log.warning(f"{key} = {value}", stacklevel=3)
|
48
52
|
|
49
53
|
@staticmethod
|
50
|
-
def
|
54
|
+
def error(*args, **kwargs) -> None:
|
51
55
|
if kwargs is None:
|
52
56
|
kwargs = {}
|
53
57
|
kwargs['stacklevel'] = kwargs.get('stacklevel', 2)
|
54
|
-
Com.Log.
|
58
|
+
Com.Log.error(*args, **kwargs)
|
55
59
|
|
56
60
|
@staticmethod
|
57
|
-
def
|
61
|
+
def warning(*args, **kwargs) -> None:
|
58
62
|
if kwargs is None:
|
59
63
|
kwargs = {}
|
60
64
|
kwargs['stacklevel'] = kwargs.get('stacklevel', 2)
|
61
|
-
Com.Log.
|
65
|
+
Com.Log.warning(*args, **kwargs)
|
62
66
|
|
63
67
|
@staticmethod
|
64
68
|
def info(*args, **kwargs) -> None:
|
@@ -68,8 +72,15 @@ class Log:
|
|
68
72
|
Com.Log.info(*args, **kwargs)
|
69
73
|
|
70
74
|
@staticmethod
|
71
|
-
def
|
75
|
+
def log(*args, **kwargs) -> None:
|
72
76
|
if kwargs is None:
|
73
77
|
kwargs = {}
|
74
78
|
kwargs['stacklevel'] = kwargs.get('stacklevel', 2)
|
75
|
-
Com.Log.
|
79
|
+
Com.Log.log(*args, **kwargs)
|
80
|
+
|
81
|
+
@staticmethod
|
82
|
+
def debug(*args, **kwargs) -> None:
|
83
|
+
if kwargs is None:
|
84
|
+
kwargs = {}
|
85
|
+
kwargs['stacklevel'] = kwargs.get('stacklevel', 2)
|
86
|
+
Com.Log.debug(*args, **kwargs)
|
ka_uts_com/timer.py
CHANGED
@@ -26,8 +26,12 @@ class Timer:
|
|
26
26
|
""" Timer Management
|
27
27
|
"""
|
28
28
|
@staticmethod
|
29
|
-
def sh_task_id(d_pacmod: TyDic, class_id:
|
30
|
-
"""
|
29
|
+
def sh_task_id(d_pacmod: TyDic, class_id: TyAny, parms: TnAny, sep: TyStr) -> TyStr:
|
30
|
+
"""
|
31
|
+
Show task id, which is created by the concationation of the following items:
|
32
|
+
package, module, class_name and parms if they are defined; the items package
|
33
|
+
and module are get from the package-module directory; the item class_name is
|
34
|
+
the class_id if its a string, otherwise the attribute __qualname__ is used.
|
31
35
|
"""
|
32
36
|
package = d_pacmod.get('package')
|
33
37
|
module = d_pacmod.get('module')
|
@@ -48,16 +52,16 @@ class Timer:
|
|
48
52
|
|
49
53
|
@classmethod
|
50
54
|
def start(cls, class_id: TyAny, parms: TnAny = None, sep: TyStr = ".") -> None:
|
51
|
-
"""
|
55
|
+
""" Start Timer
|
52
56
|
"""
|
53
|
-
task_id = cls.sh_task_id(Com.
|
57
|
+
task_id = cls.sh_task_id(Com.d_app_pacmod, class_id, parms, sep)
|
54
58
|
Com.d_timer[task_id] = datetime.now()
|
55
59
|
|
56
60
|
@classmethod
|
57
61
|
def end(cls, class_id: TyAny, parms: TnAny = None, sep: TyStr = ".") -> None:
|
58
|
-
"""
|
62
|
+
""" End Timer
|
59
63
|
"""
|
60
|
-
task_id = cls.sh_task_id(Com.
|
64
|
+
task_id = cls.sh_task_id(Com.d_app_pacmod, class_id, parms, sep)
|
61
65
|
start = Com.d_timer.get(task_id)
|
62
66
|
end = datetime.now()
|
63
67
|
elapse_time_sec = Timestamp.sh_elapse_time_sec(end, start)
|
ka_uts_com/utils/aoeqstmt.py
CHANGED
@@ -29,11 +29,9 @@ class AoEqStmt:
|
|
29
29
|
def sh_d_eq(cls, a_eqstmt: TyArr, **kwargs) -> TyDic:
|
30
30
|
""" show equates dictionary
|
31
31
|
"""
|
32
|
-
root_cls = kwargs.get('root_cls')
|
33
32
|
d_parms: TnDic = kwargs.get('d_parms')
|
34
33
|
_sh_prof = kwargs.get('sh_prof')
|
35
34
|
d_eq: TyDic = cls.init_d_eq(a_eqstmt)
|
36
35
|
d_eq_new: TyDic = DoEq.verify(d_eq, d_parms)
|
37
|
-
DoEq._set_d_pacmod(d_eq_new, root_cls)
|
38
36
|
DoEq._set_sh_prof(d_eq_new, _sh_prof)
|
39
37
|
return d_eq_new
|
ka_uts_com/utils/doeq.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
from collections.abc import Callable
|
3
3
|
from typing import Any
|
4
4
|
|
5
|
-
from ka_uts_com.utils.pacmod import PacMod
|
5
|
+
# from ka_uts_com.utils.pacmod import PacMod
|
6
6
|
from ka_uts_com.utils.str import Str
|
7
7
|
from ka_uts_com.utils.date import Date
|
8
8
|
|
@@ -55,12 +55,12 @@ class DoEq:
|
|
55
55
|
# print(f"value = {value}, type(value) = {type(value)}")
|
56
56
|
return value
|
57
57
|
|
58
|
-
@staticmethod
|
59
|
-
def _set_d_pacmod(d_eq: TyDic, root_cls) -> None:
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
# @staticmethod
|
59
|
+
# def _set_d_pacmod(d_eq: TyDic, root_cls) -> None:
|
60
|
+
# """ set current pacmod dictionary
|
61
|
+
# """
|
62
|
+
# tenant = d_eq.get('tenant')
|
63
|
+
# d_eq['d_pacmod'] = PacMod.sh_d_pacmod(root_cls, tenant)
|
64
64
|
|
65
65
|
@staticmethod
|
66
66
|
def _set_sh_prof(d_eq: TyDic, sh_prof: TyCall | Any) -> None:
|
ka_uts_com/utils/pac.py
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
from typing import Any
|
3
|
+
|
4
|
+
import os
|
5
|
+
import importlib.resources as resources
|
6
|
+
|
7
|
+
TyArr = list[Any]
|
8
|
+
TyDic = dict[Any, Any]
|
9
|
+
TyPackage = str
|
10
|
+
TyPackages = list[str]
|
11
|
+
TyPath = str
|
12
|
+
|
13
|
+
|
14
|
+
class Pac:
|
15
|
+
|
16
|
+
@staticmethod
|
17
|
+
def sh_path_by_package(package: TyPackage, path: TyPath) -> Any:
|
18
|
+
""" show directory
|
19
|
+
"""
|
20
|
+
_path = str(resources.files(package).joinpath(path))
|
21
|
+
# if _path.is_file():
|
22
|
+
if _path is not None and _path != '':
|
23
|
+
if os.path.exists(_path):
|
24
|
+
return _path
|
25
|
+
return ''
|
26
|
+
|
27
|
+
@classmethod
|
28
|
+
def sh_path_by_packages(cls, packages: TyPackages, path: TyPath) -> Any:
|
29
|
+
""" show directory
|
30
|
+
"""
|
31
|
+
for _package in packages:
|
32
|
+
_path = cls.sh_path_by_package(_package, path)
|
33
|
+
if _path:
|
34
|
+
return _path
|
35
|
+
return ''
|