ka-uts-com 4.0.2.250519__py3-none-any.whl → 4.1.0.250525__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.
ka_uts_com/__version__.py CHANGED
@@ -1,10 +1,10 @@
1
1
  __title__ = 'ka_uts_com'
2
2
  __description__ = 'Communication and CLI Utilities.'
3
3
  __url__ = 'https://ka-ut-com.readthedocs.io/en/latest'
4
- __version__ = '4.0.2.250519'
4
+ __version__ = '4.1.0.250525'
5
5
  __build__ = 0x022200
6
6
  __author__ = 'Bernd Stroehle'
7
7
  __author_email__ = 'bernd.stroehle@gmail.com'
8
- __license__ = 'Apache-2.0'
8
+ __license__ = 'GPL-3.0-only WITH Classpath-Exception-2.0 OR BSD-3-Clause'
9
9
  __copyright__ = 'Copyright 2025 Bernd Stroehle'
10
10
  __cake__ = u'\u2728 \U0001f370 \u2728'
ka_uts_com/com.py CHANGED
@@ -52,15 +52,13 @@ class Com:
52
52
  """
53
53
  if cls.sw_init:
54
54
  return
55
+ cls.sw_init = True
55
56
  cls.cmd = kwargs.get('cmd')
56
- _cls_app = kwargs.get('cls_app')
57
- # cls.d_com_pacmod = PacMod.sh_d_pacmod(cls)
58
- # cls.d_app_pacmod = PacMod.sh_d_pacmod(_cls_app)
59
57
  cls.com_a_mod = cls.__module__.split(".")
60
58
  cls.com_pac = cls.com_a_mod[0]
59
+ _cls_app = kwargs.get('cls_app')
61
60
  cls.app_a_mod = _cls_app.__module__.split(".")
62
61
  cls.app_pac = cls.app_a_mod[0]
63
- cls.sw_init = True
64
62
  cls.tenant = kwargs.get('tenant')
65
63
  cls.ts = calendar.timegm(time.gmtime())
66
64
 
ka_uts_com/dec.py CHANGED
@@ -1,6 +1,8 @@
1
1
  """
2
2
  Decorators Module
3
3
  """
4
+ import os
5
+ import sys
4
6
  import numpy as np
5
7
  from datetime import datetime
6
8
  from ka_uts_uts.utils.fnc import Fnc
@@ -11,7 +13,7 @@ def timer(fnc):
11
13
  """
12
14
  Timer Decorator
13
15
  """
14
- def wrapper(*args, **kwargs):
16
+ def dec_timer(*args, **kwargs):
15
17
  start = datetime.now()
16
18
  fnc(*args, **kwargs)
17
19
  _fnc_name = Fnc.sh_fnc_name(fnc)
@@ -19,5 +21,31 @@ def timer(fnc):
19
21
  elapse_time = end.timestamp() - start.timestamp()
20
22
  np_elapse_time = np.format_float_positional(elapse_time, trim='k')
21
23
  msg = f"{_fnc_name} elapse time [sec] = {np_elapse_time}"
22
- Log.info(msg, stacklevel=2)
23
- return wrapper
24
+ # Log.info(msg, stacklevel=2)
25
+ Log.info(msg)
26
+ return dec_timer
27
+
28
+
29
+ def handle_exception(exc_type, exc_value, exc_traceback):
30
+ if issubclass(exc_type, KeyboardInterrupt):
31
+ sys.__excepthook__(exc_type, exc_value, exc_traceback)
32
+ return
33
+ Log.critical(exc_value, exc_info=(exc_type, exc_value, exc_traceback))
34
+
35
+
36
+ def handle_error(fnc):
37
+ """
38
+ Error Decorator
39
+ """
40
+ def dec_handle_error(*args, **kwargs):
41
+ try:
42
+ fnc(*args, **kwargs)
43
+ os._exit(0)
44
+ except Exception:
45
+ exc_type, exc_value, exc_traceback = sys.exc_info()
46
+ if issubclass(exc_type, KeyboardInterrupt):
47
+ sys.__excepthook__(exc_type, exc_value, exc_traceback)
48
+ else:
49
+ Log.critical(exc_value, exc_info=(exc_type, exc_value, exc_traceback))
50
+ os._exit(99)
51
+ return dec_handle_error
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ka_uts_com
3
- Version: 4.0.2.250519
3
+ Version: 4.1.0.250525
4
4
  Summary: Communication and CLI Utilities
5
5
  Author: Bernd Stroehle
6
6
  Author-email: bernd.stroehle@gmail.com
@@ -21,9 +21,9 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
21
  Requires-Python: >=3.10
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE.txt
24
- Requires-Dist: ka_uts_arr>=4.0.1.250513
25
- Requires-Dist: ka_uts_log>=4.0.1.250513
26
- Requires-Dist: ka_uts_uts>=4.0.2.250518
24
+ Requires-Dist: ka_uts_arr>=4.1.0.250525
25
+ Requires-Dist: ka_uts_log>=4.1.0.250525
26
+ Requires-Dist: ka_uts_uts>=4.1.0.250525
27
27
  Requires-Dist: numpy>=2.2.6
28
28
  Dynamic: license-file
29
29
 
@@ -31,6 +31,7 @@ Dynamic: license-file
31
31
  ka_uts_com
32
32
  ##########
33
33
 
34
+ ********
34
35
  Overview
35
36
  ********
36
37
 
@@ -40,6 +41,7 @@ Overview
40
41
 
41
42
  .. end short_desc
42
43
 
44
+ ************
43
45
  Installation
44
46
  ************
45
47
 
@@ -61,11 +63,13 @@ To install with ``conda``:
61
63
 
62
64
  .. end installation
63
65
 
66
+ ***************
64
67
  Package logging
65
68
  ***************
66
69
 
67
70
  (c.f.: **Appendix**: `Package Logging`)
68
71
 
72
+ *************
69
73
  Package files
70
74
  *************
71
75
 
@@ -98,6 +102,7 @@ The Package ``ka_uts_com`` consist of the following file types (c.f.: **Appendix
98
102
  #. *cfg.py*
99
103
  #. *exit.py*
100
104
 
105
+ ****************
101
106
  Decorator Module
102
107
  ****************
103
108
 
@@ -113,19 +118,33 @@ Overview
113
118
  |dec.py|Decorator module|
114
119
  +------+----------------+
115
120
 
116
- Decorstor module: dec.py
121
+ Decorator module: dec.py
117
122
  ========================
118
123
 
119
- The Decorator Module ``dec.py`` contains the single decorator function ``timer``.
124
+ Decorator functions of modul: dec
125
+ ---------------------------------
126
+
127
+ The Decorator Module ``dec.py`` contains the follwing decorator functions.
128
+
129
+ .. Decorator-functions-of-module-dec-label:
130
+ .. table:: *Decorator functions of module dec*
120
131
 
121
- dec.py Method: timer
122
- --------------------
132
+ +------------+-----------------+
133
+ |Name |Description |
134
+ +============+=================+
135
+ |timer |Timer |
136
+ +------------+-----------------+
137
+ |handle_error|Handle exceptions|
138
+ +------------+-----------------+
139
+
140
+ Decorator functions: timer of modul: dec
141
+ ----------------------------------------
123
142
 
124
143
  Parameter
125
144
  ^^^^^^^^^
126
145
 
127
- ..dec.py-Method-timer-Parameter-label:
128
- .. table:: *dec.py Method timer: Parameter*
146
+ .. Parameter-of-decorator-function-timer-label:
147
+ .. table:: *Parameter of decorator function timer*
129
148
 
130
149
  +----+----------+-----------+
131
150
  |Name|Type |Description|
@@ -133,6 +152,7 @@ Parameter
133
152
  |fnc |TyCallable|function |
134
153
  +----+----------+-----------+
135
154
 
155
+ ********************
136
156
  Communication Module
137
157
  ********************
138
158
 
@@ -194,8 +214,8 @@ Com: Variables
194
214
  |Exit |TyAny |None |Exit class |
195
215
  +------------+-----------+-------+---------------------------------------+
196
216
 
197
- Com: Methods
198
- ^^^^^^^^^^^^
217
+ Methods of class: Com
218
+ ^^^^^^^^^^^^^^^^^^^^^
199
219
 
200
220
  .. Com-Methods-label:
201
221
  .. table:: *Com Methods*
@@ -246,6 +266,7 @@ Parameter
246
266
  |\*args |list |arguments array |
247
267
  +--------+-----+--------------------+
248
268
 
269
+ ************
249
270
  Timer Module
250
271
  ************
251
272
 
@@ -384,6 +405,7 @@ Parameter
384
405
  |sep |TyStr|Separator |
385
406
  +--------+-----+-------------+
386
407
 
408
+ ************
387
409
  Base Modules
388
410
  ************
389
411
 
@@ -648,23 +670,32 @@ Return Value
648
670
  |cls |class|Current class|
649
671
  +----+-----+-------------+
650
672
 
673
+ ########
651
674
  Appendix
652
- ********
675
+ ########
653
676
 
677
+ ***************
654
678
  Package Logging
655
- ===============
679
+ ***************
656
680
 
657
681
  Description
658
- -----------
682
+ ===========
659
683
 
660
684
  The Standard or user specifig logging is carried out by the log.py module of the logging
661
- package ka_uts_log using the configuration files **ka_std_log.yml** or **ka_usr_log.yml**
662
- in the configuration directory **cfg** of the logging package **ka_uts_log**.
663
- The Logging configuration of the logging package could be overriden by yaml files with
664
- the same names in the configuration directory **cfg** of the application packages.
685
+ package **ka_uts_log** using the standard- or user-configuration files in the logging
686
+ package configuration directory:
687
+
688
+ * **<logging package directory>/cfg/ka_std_log.yml**,
689
+ * **<logging package directory>/cfg/ka_usr_log.yml**.
690
+
691
+ The Logging configuration of the logging package could be overriden by yaml files with the
692
+ same names in the application package- or application data-configuration directories:
693
+
694
+ * **<application package directory>/cfg**
695
+ * **<application data directory>/cfg**.
665
696
 
666
697
  Log message types
667
- -----------------
698
+ =================
668
699
 
669
700
  Logging defines log file path names for the following log message types: .
670
701
 
@@ -674,34 +705,8 @@ Logging defines log file path names for the following log message types: .
674
705
  #. *error*
675
706
  #. *critical*
676
707
 
677
- Application parameter for logging
678
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
679
-
680
- .. Application-parameter-used-in-log-naming-label:
681
- .. table:: *Application parameter used in log naming*
682
-
683
- +-----------------+---------------------------+----------+------------+
684
- |Name |Decription |Values |Example |
685
- +=================+===========================+==========+============+
686
- |dir_dat |Application data directory | |/otev/data |
687
- +-----------------+---------------------------+----------+------------+
688
- |tenant |Application tenant name | |UMH |
689
- +-----------------+---------------------------+----------+------------+
690
- |package |Application package name | |otev_xls_srr|
691
- +-----------------+---------------------------+----------+------------+
692
- |cmd |Application command | |evupreg |
693
- +-----------------+---------------------------+----------+------------+
694
- |pid |Process ID | |æevupreg |
695
- +-----------------+---------------------------+----------+------------+
696
- |log_ts_type |Timestamp type used in |ts, |ts |
697
- | |logging files|ts, dt |dt | |
698
- +-----------------+---------------------------+----------+------------+
699
- |log_sw_single_dir|Enable single log directory|True, |True |
700
- | |or multiple log directories|False | |
701
- +-----------------+---------------------------+----------+------------+
702
-
703
- Log type and Log directories
704
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
708
+ Log types and Log directories
709
+ -----------------------------
705
710
 
706
711
  Single or multiple Application log directories can be used for each message type:
707
712
 
@@ -724,11 +729,37 @@ Single or multiple Application log directories can be used for each message type
724
729
  |critical|crts |crts |logs |
725
730
  +--------+-----+--------+------+
726
731
 
732
+ Application parameter for logging
733
+ ---------------------------------
734
+
735
+ .. Application-parameter-used-in-log-naming-label:
736
+ .. table:: *Application parameter used in log naming*
737
+
738
+ +-----------------+---------------------------+------+------------+
739
+ |Name |Decription |Values|Example |
740
+ +=================+===========================+======+============+
741
+ |dir_dat |Application data directory | |/otev/data |
742
+ +-----------------+---------------------------+------+------------+
743
+ |tenant |Application tenant name | |UMH |
744
+ +-----------------+---------------------------+------+------------+
745
+ |package |Application package name | |otev_xls_srr|
746
+ +-----------------+---------------------------+------+------------+
747
+ |cmd |Application command | |evupreg |
748
+ +-----------------+---------------------------+------+------------+
749
+ |pid |Process ID | |681025 |
750
+ +-----------------+---------------------------+------+------------+
751
+ |log_ts_type |Timestamp type used in |ts, |ts |
752
+ | |logging files|ts, dt |dt' | |
753
+ +-----------------+---------------------------+------+------------+
754
+ |log_sw_single_dir|Enable single log directory|True, |True |
755
+ | |or multiple log directories|False | |
756
+ +-----------------+---------------------------+------+------------+
757
+
727
758
  Log files naming
728
- ^^^^^^^^^^^^^^^^
759
+ ----------------
729
760
 
730
761
  Naming Conventions
731
- """"""""""""""""""
762
+ ^^^^^^^^^^^^^^^^^^
732
763
 
733
764
  .. Naming-conventions-for-logging-file-paths-label:
734
765
  .. table:: *Naming conventions for logging file paths*
@@ -748,7 +779,7 @@ Naming Conventions
748
779
  +--------+-------------------------------------------------------+-------------------------+
749
780
 
750
781
  Naming Examples
751
- """""""""""""""
782
+ ^^^^^^^^^^^^^^^
752
783
 
753
784
  .. Naming-examples-for-logging-file-paths-label:
754
785
  .. table:: *Naming examples for logging file paths*
@@ -767,46 +798,41 @@ Naming Examples
767
798
  |critical|/data/otev/umh/RUN/otev_xls_srr/evupreg/logs|crts_1737118199_9470.log|
768
799
  +--------+--------------------------------------------+------------------------+
769
800
 
801
+ ******************
770
802
  Python Terminology
771
- ==================
772
-
773
- Python packages
774
- ---------------
775
-
776
- .. Python packages-label:
777
- .. table:: *Python packages*
778
-
779
- +-----------+-----------------------------------------------------------------+
780
- |Name |Definition |
781
- +===========+==========+======================================================+
782
- |Python |Python packages are directories that contains the special module |
783
- |package |``__init__.py`` and other modules, packages files or directories.|
784
- +-----------+-----------------------------------------------------------------+
785
- |Python |Python sub-packages are python packages which are contained in |
786
- |sub-package|another pyhon package. |
787
- +-----------+-----------------------------------------------------------------+
788
-
789
- Python package Sub-directories
790
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
791
-
792
- .. Python package-Sub-directories-label:
793
- .. table:: *Python packages Sub-directories*
794
-
795
- +----------------------+-------------------------------+
796
- |Name |Definition |
797
- +======================+==========+====================+
798
- |Python package |Sub-directories are directories|
799
- |sub-directory |contained in python packages. |
800
- +----------------------+-------------------------------+
801
- |Special Python package|Python package sub-directories |
802
- |sub-directory |with a special meaning. |
803
- +----------------------+-------------------------------+
804
-
805
- Special python package Sub-directories
806
- """"""""""""""""""""""""""""""""""""""
807
-
808
- .. Special-python-package-Sub-directories-label:
809
- .. table:: *Special python Sub-directories*
803
+ ******************
804
+
805
+ Python Packages
806
+ ===============
807
+
808
+ Overview
809
+ --------
810
+
811
+ .. Python Packages-Overview-label:
812
+ .. table:: *Python Packages Overview*
813
+
814
+ +---------------------+-----------------------------------------------------------------+
815
+ |Name |Definition |
816
+ +=====================+=================================================================+
817
+ |Python package |Python packages are directories that contains the special module |
818
+ | |``__init__.py`` and other modules, packages files or directories.|
819
+ +---------------------+-----------------------------------------------------------------+
820
+ |Python sub-package |Python sub-packages are python packages which are contained in |
821
+ | |another pyhon package. |
822
+ +---------------------+-----------------------------------------------------------------+
823
+ |Python package |directory contained in a python package. |
824
+ |sub-directory | |
825
+ +---------------------+-----------------------------------------------------------------+
826
+ |Python package |Python package sub-directories with a special meaning like data |
827
+ |special sub-directory|or cfg |
828
+ +---------------------+-----------------------------------------------------------------+
829
+
830
+
831
+ Examples
832
+ --------
833
+
834
+ .. Python-Package-sub-directory-Examples-label:
835
+ .. table:: *Python Package sub-directory-Examples*
810
836
 
811
837
  +-------+------------------------------------------+
812
838
  |Name |Description |
@@ -821,10 +847,13 @@ Special python package Sub-directories
821
847
  +-------+------------------------------------------+
822
848
 
823
849
  Python package files
824
- ^^^^^^^^^^^^^^^^^^^^
850
+ ====================
851
+
852
+ Overview
853
+ --------
825
854
 
826
- .. Python-package-files-label:
827
- .. table:: *Python package files*
855
+ .. Python-package-files-overview-label:
856
+ .. table:: *Python package overview files*
828
857
 
829
858
  +--------------+---------------------------------------------------------+
830
859
  |Name |Definition |
@@ -842,48 +871,41 @@ Python package files
842
871
  |package module|names and functionality. |
843
872
  +--------------+---------------------------------------------------------+
844
873
 
845
- Special python package files
846
- """"""""""""""""""""""""""""
847
-
848
- .. Special-python-package-files-label:
849
- .. table:: *Special python package files*
850
-
851
- +--------+--------+---------------------------------------------------------------+
852
- |Name |Type |Description |
853
- +========+========+===============================================================+
854
- |py.typed|Type |The ``py.typed`` file is a marker file used in Python packages |
855
- | |checking|to indicate that the package supports type checking. This is a |
856
- | |marker |part of the PEP 561 standard, which provides a standardized way|
857
- | |file |to package and distribute type information in Python. |
858
- +--------+--------+---------------------------------------------------------------+
874
+ Examples
875
+ --------
859
876
 
860
- Special python package modules
861
- """"""""""""""""""""""""""""""
862
-
863
- .. Special-Python-package-modules-label:
864
- .. table:: *Special Python package modules*
877
+ .. Python-package-files-examples-label:
878
+ .. table:: *Python package examples files*
865
879
 
866
880
  +--------------+-----------+-----------------------------------------------------------------+
867
881
  |Name |Type |Description |
868
882
  +==============+===========+=================================================================+
883
+ |py.typed |Type |The ``py.typed`` file is a marker file used in Python packages to|
884
+ | |checking |indicate that the package supports type checking. This is a part |
885
+ | |marker |of the PEP 561 standard, which provides a standardized way to |
886
+ | |file |package and distribute type information in Python. |
887
+ +--------------+-----------+-----------------------------------------------------------------+
869
888
  |__init__.py |Package |The dunder (double underscore) module ``__init__.py`` is used to |
870
889
  | |directory |execute initialisation code or mark the directory it contains as |
871
890
  | |marker |a package. The Module enforces explicit imports and thus clear |
872
891
  | |file |namespace use and call them with the dot notation. |
873
892
  +--------------+-----------+-----------------------------------------------------------------+
874
893
  |__main__.py |entry point|The dunder module ``__main__.py`` serves as an entry point for |
875
- | |for the |the package. The module is executed when the package is called by|
876
- | |package |the interpreter with the command **python -m <package name>**. |
894
+ | |for the |the package. The module is executed when the package is called |
895
+ | |package |by the interpreter with the command **python -m <package name>**.|
877
896
  +--------------+-----------+-----------------------------------------------------------------+
878
897
  |__version__.py|Version |The dunder module ``__version__.py`` consist of assignment |
879
898
  | |file |statements used in Versioning. |
880
899
  +--------------+-----------+-----------------------------------------------------------------+
881
900
 
882
- Python elements
883
- ---------------
901
+ Python methods
902
+ ==============
903
+
904
+ Overview
905
+ --------
884
906
 
885
- .. Python elements-label:
886
- .. table:: *Python elements*
907
+ .. Python-methods-overview-label:
908
+ .. table:: *Python methods overview*
887
909
 
888
910
  +---------------------+--------------------------------------------------------+
889
911
  |Name |Description |
@@ -897,11 +919,11 @@ Python elements
897
919
  |Python class method |Python methods defined in python classes |
898
920
  +---------------------+--------------------------------------------------------+
899
921
 
900
- Special python methods
901
- ^^^^^^^^^^^^^^^^^^^^^^
922
+ Examples
923
+ --------
902
924
 
903
- .. Special-python-methods-label:
904
- .. table:: *Special python methods*
925
+ .. Python-methods-examples-label:
926
+ .. table:: *Python methods examples*
905
927
 
906
928
  +--------+------------+----------------------------------------------------------+
907
929
  |Name |Type |Description |
@@ -911,7 +933,8 @@ Special python methods
911
933
  | |method |defined and initalized in the method. |
912
934
  +--------+------------+----------------------------------------------------------+
913
935
 
936
+ #################
914
937
  Table of Contents
915
- =================
938
+ #################
916
939
 
917
940
  .. contents:: **Table of Content**
@@ -0,0 +1,11 @@
1
+ ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ ka_uts_com/__version__.py,sha256=9XmDK3D7ksJO1AEWTUVSAp5jvMxxLH3bQc-IYu3biVQ,420
3
+ ka_uts_com/com.py,sha256=zTyWPFuxopUEfrhwn9736hzln6NDas0J3YuCV6YA64c,1816
4
+ ka_uts_com/dec.py,sha256=sfvykrzESPHRbLLjfRpaNfz07gEB8dIMRdZC-doAjgk,1478
5
+ ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ ka_uts_com/timer.py,sha256=qVKanfNBnsU3B6C-Y5mjHWnS056GiYlRmFwEnX6BAU0,2546
7
+ ka_uts_com-4.1.0.250525.dist-info/licenses/LICENSE.txt,sha256=BiT3QGI_2iRbdvgS3HDig57lnXJVk60Pj4xM9eeCczI,814
8
+ ka_uts_com-4.1.0.250525.dist-info/METADATA,sha256=GnIiNuUQM4hWvQTiU-Z1ObXKVTKAZ2RvdsIi3sV73_A,32921
9
+ ka_uts_com-4.1.0.250525.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
10
+ ka_uts_com-4.1.0.250525.dist-info/top_level.txt,sha256=cWCIrm1g6Jn-FbCQuB3wBrrNH1YwqVlc6mE0jV6vg74,21
11
+ ka_uts_com-4.1.0.250525.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,11 +0,0 @@
1
- ka_uts_com/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ka_uts_com/__version__.py,sha256=MnTyIshnEK9ysvQxq9S1sZHBeW0zVhmCMoy3sMtMSsM,373
3
- ka_uts_com/com.py,sha256=adNYxZIhPXLRLNyvJ772ZZRy70n2yKXPbrO5kFM3Bzk,1927
4
- ka_uts_com/dec.py,sha256=1qxjJI2Rem7ZyETP1z20SsYPSYQw0XHUAHa_JbachBE,615
5
- ka_uts_com/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- ka_uts_com/timer.py,sha256=qVKanfNBnsU3B6C-Y5mjHWnS056GiYlRmFwEnX6BAU0,2546
7
- ka_uts_com-4.0.2.250519.dist-info/licenses/LICENSE.txt,sha256=BiT3QGI_2iRbdvgS3HDig57lnXJVk60Pj4xM9eeCczI,814
8
- ka_uts_com-4.0.2.250519.dist-info/METADATA,sha256=nbt1ho98PUT5FQvo6JsfRQpOBggrA_TC6GWBRUV4P2M,32599
9
- ka_uts_com-4.0.2.250519.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
10
- ka_uts_com-4.0.2.250519.dist-info/top_level.txt,sha256=cWCIrm1g6Jn-FbCQuB3wBrrNH1YwqVlc6mE0jV6vg74,21
11
- ka_uts_com-4.0.2.250519.dist-info/RECORD,,