Communication Utilities
The package ka_uts_com can be installed from PyPI or Anaconda.
To install with pip:
$ python -m pip install ka_uts_com
To install with conda:
$ conda install -c conda-forge ka_uts_com
(c.f.: Appendix: Package Logging)
The Package ka_uts_com consist of the following file types (c.f.: Appendix):
Decorator Modules Name Decription dec.py Decorators module
Communication Modules Name Decription com.py Communication handling module timer.py Timer management module
The Communication Module com.py contains the single static class Com.
The static Class Com contains the subsequent variables and methods.
Com: Variables Name Type Default Description sw_init TyBool None Initialisation switch d_com_pacmod TyDic {} Communication package module dictionary d_app_pacmod TyDic {} Application package module dictionary Timestamp fields ts TnTimeStamp None Timestamp ts_start TnDateTime None start timestamp in date time format ts_end TnDateTime None end timestamp in date time format ts_etime TnDateTime None elapse Time d_timer TyDic False Timer dictionary Links to other Classes App TyAny False Application class cfg TyDic None Configuration dictionary Log TyLogger False Log class Exit TyAny False Exit class
Com Methods Name Description init Initialise static variables if they are not initialized sh_kwargs Show keyword arguments
..Com-Method-init-Parameter-label: .. table:: Com Method init: Parameter
Name Type Description cls class current class **kwargs TyAny keyword arguments
Com Method sh_kwargs: Parameter Name Type Description cls class current class root_cls class root lass d_parms TyDic parameter dictionary *args list arguments array
The Module timer.py contains the following classes
timer.py classes Name Type Description Timestamp static Timestamp class Timer static Timer class
Timer Methods Name Description sh_task_id Show task id start Start Timer end End Timer and Log Timer info message
Show task id, which is created by the concatination of the following items if they are defined: #. package, #. module, #. class_name, #. parms The items package and module are get from the package-module directory; The item class_name is the class_id if its a string, otherwise the attribute __qualname__ is used.
Timer Method sh_task_id: Parameter Name Type Description d_pacmod TyDic pacmod dictionary class_id TyAny Class Id parms TnAny Parameters sep TyStr Separator
Timer Method sh_task_id: Return Value Name Type Description TyStr Task Id
Timer Method start: Parameter Name Type Description cls class current class class_id TyAny Class Id parms TnAny Parameter sep TyStr Separator
Timer Method end: Parameter Name Type Description cls class current class class_id TyAny Class Id parms TnAny Parameter sep TyStr Separator
Base Modules Name Decription app_.py Application setup module cfg_.py Configuration setup module exit_.py Exit Manafement setup module
The Module app.py contains a single static class App_.
The static class App_ contains the subsequent static variables and methods
Appl_ tatic Variables Name Type Default Description sw_init TyBool False initialisation switch httpmod TyDic None http modus sw_replace_keys TnBool False replace keys switch keys TnArr None Keys array reqs TyDic None Requests dictionary app TyDic None Appliction dictionary
App_ Methods Name Type Description init class initialise static variables of class if they are not allready initialized sh class show (return) class
App_ Method: init Name Type Description cls class Current class **kwargs TyAny Keyword arguments
App_ Method: sh Name Type Description cls class Current class **kwargs TyAny Keyword arguments
App_ Method sh: Return Value Name Type Description log TyLogger Logger
The Base module cfg_.py contains a single static class Cfg_.
The static class Cfg_ contains the subsequent static variables and methods
Cfg_ Static Variables Name Type Default Description cfg TyDic None Configuration object
Cfg_ Methods Name Type Description sh class read pacmod yaml file into class variable cls.dic and return cls.cfg
Cfg_ Method sh: Parameter Name Type Description cls class Current class log TyLogger Logger d_pacmod TyDic pacmod dictionary
Cfg_ Method sh: Return Value Name Type Description cls.cfg TyDic
The Base module exit_.py contains a single static class Ext_.
The static Class Exit_ of Module exit_.py contains the subsequent static variables and methods.
Exit_ Variables Name Type Default Description sw_init TyBool False initialisation switch sw_critical TyBool False critical switch sw_stop TyBool False stop switch sw_interactive TyBool False interactive switch
Exit_ Methods Name Method Description init class initialise static variables of class if they are not allready initialized sh class show (return) class
Exit_ Method init: Parameter Name Type Description cls class Current class **kwargs TyAny Keyword arguments
Exit_ Method sh: Parameter Name Type Description cls class Current class **kwargs TyAny Keyword arguments
Exit_ Method sh: Return Value Name Type Description cls class Current class
The Standard or user specifig logging is carried out by the log.py module of the logging package ka_uts_log using the configuration files ka_std_log.yml or ka_usr_log.yml in the configuration directory cfg of the logging package ka_uts_log. The Logging configuration of the logging package could be overriden by yaml files with the same names in the configuration directory cfg of the application packages.
Logging defines log file path names for the following log message types: .
Application parameter used in log naming Name Decription Values Example dir_dat Application data directory /otev/data tenant Application tenant name UMH package Application package name otev_xls_srr cmd Application command evupreg pid Process ID æevupreg log_ts_type Timestamp type used in logging files|ts, dt ts, dt ts log_sw_single_dir Enable single log directory or multiple log directories True, False True
Single or multiple Application log directories can be used for each message type:
Log types and directoriesg Log type Log directory long short multiple single debug dbqs dbqs logs info infs infs logs warning wrns wrns logs error errs errs logs critical crts crts logs
Naming conventions for logging file paths Type Directory File debug /<dir_dat>/<tenant>/RUN/<package>/<cmd>/<Log directory> <Log type>_<ts>_<pid>.log info /<dir_dat>/<tenant>/RUN/<package>/<cmd>/<Log directory> <Log type>_<ts>_<pid>.log warning /<dir_dat>/<tenant>/RUN/<package>/<cmd>/<Log directory> <Log type>_<ts>_<pid>.log error /<dir_dat>/<tenant>/RUN/<package>/<cmd>/<Log directory> <Log type>_<ts>_<pid>.log critical /<dir_dat>/<tenant>/RUN/<package>/<cmd>/<Log directory> <Log type>_<ts>_<pid>.log
Naming examples for logging file paths Type Directory File debug /data/otev/umh/RUN/otev_xls_srr/evupreg/logs debs_1737118199_9470.log info /data/otev/umh/RUN/otev_xls_srr/evupreg/logs infs_1737118199_9470.log warning /data/otev/umh/RUN/otev_xls_srr/evupreg/logs wrns_1737118199_9470.log error /data/otev/umh/RUN/otev_xls_srr/evupreg/logs errs_1737118199_9470.log critical /data/otev/umh/RUN/otev_xls_srr/evupreg/logs crts_1737118199_9470.log
Python packages Name Definition Python package Python packages are directories that contains the special module __init__.py and other modules, packages files or directories. Python sub-package Python sub-packages are python packages which are contained in another pyhon package.
Python packages Sub-directories Name Definition Python package sub-directory Sub-directories are directories contained in python packages. Special Python package sub-directory Python package sub-directories with a special meaning.
Special python Sub-directories Name Description bin Directory for package scripts. cfg Directory for package configuration files. data Directory for package data files. service Directory for systemd service scripts.
Python package files Name Definition Python package files Files within a python package. Special python package files Package files which are not modules and used as python and used as python marker files like __init__.py. Python package module Files with suffix .py; they could be empty or contain python code; other modules can be imported into a module. Special python package module Modules like __init__.py or main.py with special names and functionality.
Special python package files Name Type Description py.typed Type checking marker file The py.typed file is a marker file used in Python packages to indicate that the package supports type checking. This is a part of the PEP 561 standard, which provides a standardized way to package and distribute type information in Python.
Special Python package modules Name Type Description __init__.py Package directory marker file The dunder (double underscore) module __init__.py is used to execute initialisation code or mark the directory it contains as a package. The Module enforces explicit imports and thus clear namespace use and call them with the dot notation. __main__.py entry point for the package The dunder module __main__.py serves as an entry point for the package. The module is executed when the package is called by the interpreter with the command python -m <package name>. __version__.py Version file The dunder module __version__.py consist of assignment statements used in Versioning.
Python elements Name Description Python method Python functions defined in python modules. Special python method Python functions with special names and functionalities. Python class Classes defined in python modules. Python class method Python methods defined in python classes
Special python methods Name Type Description __init__ class object constructor method The special method __init__ is called when an instance (object) of a class is created; instance attributes can be defined and initalized in the method.