ka_uts_dic

Overview

Dictionary Management

Installation

Package ka_uts_dic can be installed from PyPI or Anaconda.

To install with pip:

$ python -m pip install ka_uts_dic

To install with conda:

$ conda install -c conda-forge ka_uts_dic

Package logging

(c.f.: Appendix: Package Logging)

Package files

Classification

The Package ka_uts_uts consist of the following file types (c.f.: Appendix):

  1. Special files: (c.f.: Appendix: Special python package files)
  2. Dunder modules: (c.f.: Appendix: Special python package modules)
  3. Modules
    1. Modules for Management of Dictionary
      1. dic.py
    2. Modules for Management of Dictionary of arrays
      1. doaod.py
      2. doa.py
    3. Modules for Management of Dictionary of callables
      1. doc.py
    4. Modules for Management of Dictionary of dataframes
      1. dopddf.py
      2. dopldf.py
    5. Modules for Management of Dictionary of dictionaries
      1. dodoa.py
      2. dodoa.py
      3. dodod.py
      4. dodows.py
      5. dod.py
    6. Modules for Management of Dictionary of objects
      1. doo.py

Modules for Management of Dictionary

Dictionary-Modules
Name Description
dic.py Management of Dictionary

Module: dic.py

dic.py Classes

The Module dic.py contains the followinga static classes:

Name Description
Dic Management of Dictionary

dic.py Class: Dic

The static Class Dic is used to manage a Dictionary; The Methods of Class Dic could be classified into the following method types:

  1. Miscellenous Methods
  2. Set Methods
  3. Get / Show Methods
  4. Split Methods
  5. Yield Methods

Dic: Miscellenous Methods

Dic: Miscellenous Methods
Name Description
add_counter_to_values Apply the function "add_counter_with key" to the last key of the key list and the Dictionary localized by that key.
add_counter_to_value Initialize the unintialized counter with 1 and add it to the Dictionary value of the key.
append_to_values Apply the function "append with key" to the last key of the key list amd the Dictionary localized by that key.
append_to_value Initialize the unintialized counter with 1 and add it to the Dictionary value of the key.
change_keys_by_keyfilter Change the keys of the Dictionary by the values of the keyfilter Dictionary with the same keys.
copy Copy the value for keys from source to target dictionary.
extend_values Appply the function "extend_by_key" to the last key of the key list and the dictionary localized by that key.
extend_value Add the item with the key as element to the dictionary if the key is undefined in the dictionary. Extend the element value with the value if both supports the extend function.
increment_values Appply the function "increment_by_key" to the last key of the key list and the Dictionary localized by that key.
increment_value Increment the value of the key if it is defined in the Dictionary, otherwise assign the item to the key
is_not Return False if the key is defined in the Dictionary and the key value if not empty, othewise returm True.
locate Return the value of the key reached by looping thru the nested Dictionary with the keys from the key list until the value is None or the last key is reached.
locate_last_value Apply the locate function for the key list which contains all items except the last one.
lstrip_keys Remove the first string found in the Dictionary keys.
merge Merge two Dictionaries.
new create a new dictionary from keys and values.
normalize_value Replace every Dictionary value by the first list element of the value if it is a list with only one element.
nvl Return the Dictionary if it is not None otherwise return the empty Dictionary "{}".
rename_key_using_kwargs Rename old Dictionary key with new one get from kwargs.
replace_string_in_keys Replace old string contained in keys with new one.
rename_key Rename old Dictionary key with new one.
round_values Round values selected by keys,
to_aod Convert dictionary to array of dictionaries.

Dic: Get/Show Methods

Dic: Get/Show Methods
Name Description
get Type-dependent extended flattening of array elements
get_yn_value Type-dependent extended flattening of array elements
sh_dic Type-dependent extended flattening of array elements
sh_d_filter Type-dependent extended flattening of array elements
sh_d_index_d_values Type-dependent extended flattening of array elements
sh_d_vals_d_cols Type-dependent extended flattening of array elements
sh_prefixed Type-dependent extended flattening of array elements
sh_keys Type-dependent extended flattening of array elements
show_sorted_keys Type-dependent extended flattening of array elements
sh_value Show value of dictionary element selected by keys
sh_values Convert the dictionary into an array by using a key filter. The array elements are the values of all dictionary elements where the key is the given single key or where the key is contained in the key list.
sh_value2keys Convert the dictionary to a new dictionary by using the values as new keys and all keys mapped to the same value as new value.

Dic: Set Methods

Dic: Set Methods
Name Description
set_kv_not_none Set the given Dictionary key to the given value if both are not None.
set_by_keys Locate the values in a nested dictionary for the suceeding keys of a key array and replace the last value with the given value
set_by_key_pair Replace value of source key by value of target key.
set_if_none Locate the values in a nested dictionary for the suceeding keys of a key array and assign the given value to the last key if that key does not exist in the dictionary.
set_by_div Replace the source key value by the division of the values of two target keys if the they are of type float and the divisor is not 0 otherwise assign None.
set_first_tgt_with_src_using_d_src2tgt Replace value of first dictionary target key found in the source to target dictionary by the source value found in the dictionary.
set_first_tgt_with_src_using_d_tgt2src Replace value of first dictionary target key found in the target to source dictionary by the source value found in the dictionary.
set_format_value Replace the dictionary values by the formatted values using the format string.
set_multiply_with_factor Replace the dictionary values by the original value multiplied with the factor.
set_tgt_with_src Replace source dictionary values by target dictionary values.
set_tgt_with_src_using_doaod_tgt2src Loop through the target to source dictionaries of the values of the dictionary of the arrays of target to source dictionaries until the return value of the function "set_nonempty_tgt_with_src_using_d_tgt2src" is defined.
set_nonempty_tgt_with_src_using_d_tgt2src Exceute the function "set_tgt_with_src_using_d_tgt2src" if all dictionary values for the keys provided by the values of the target to source dictionary are defined.
set_first_tgt_with_src_using_d_tgt2src Replace value of first dictionary target key found in the target to source dictionary by the source value found in the dictionary if
set_tgt_with_src_using_d_src2tgt  
set_tgt_with_src_using_d_tgt2src  

Dic: Split Methods

Dic Split Methods
Name Description
split_by_value_endwith Split the dictionary into a tuple of dictionaries using the the condition "the element value ends with the given value". The first tuple element is the dictionary of all dictionary elements whose value ends with the given value; the second one is the dictionary of the other elements.
split_by_value Split the dictionary into a tuple of dictionaries using the given value. The first tuple element is the dictionary of all elements whose value is equal to the given value; the second one is the dictionary of the other elements.
split_by_value_is_int Split the dictionary into a tuple of dictionaries using the condition "the element value is of type integer". The first tuple element is the dictionary of all elements whose value is of type integer; the second one is the dictionary of the other elements.

Dic: Yield Methods

Dic: Yield Methods
Name Description
yield_values_with_keyfilter Yield the values of all elements which are selected by the given key filter.

Modules for Management of Dictionary of Dictionaries

Modules for Management of Dictionary of Dictionaries
Name Description
dod.py Management of Dictionary of Dictionaries.
d2v.py Management of 2-dimensional Dictionary of Dictionaries. A 2 dimensional Dictionary of Dictionaries contains dictionaries of Dictionaries as values.
d3v.py Management of 3-dimensional Dictionary of Dictionaries. A 3 dimensional Dictionary of Dictionaries contains Dictionaries of Dictionaries of Dictionaries as values.

Modules for Management of Dictionary of Arrays

Modules for Dictionaries of Arrays
Name Description
doaod.py Management of Dictionary of Arrays of Dictionaries.
doa.py Management of Dictionary of Arrays.

Module: doaod.py

doaod.py Classes

The Module doaod.py contains the static class DoAoD:

Class: DoAoD

The static Class DoAoD is used to manage Dictionary of Arrays of Dictionaries; it contains the subsequent methods.

DoAoD Methods

DoAoD Methods
Name Description
dic_value_is_empty Check if all keys of the given Dictionary of Arrays of Dictionaries are found in any Dictionary of the Array of Dictionaries and the value for the key is not empty.
sh_aod_unique Convert Dictionary of Array of Dictionaries to unique Array of Dictionaries.
sh_aod Convert Dictionary of Array of Dictionaries to Array of Dictionaries.
sh_unique Convert Dictionary of Array of Dictionaries to Dictionaries of unique Array of Dictionaries.
union_by_keys Convert filtered Dictionary of Arrays of Dictionaries by keys to an Array of distinct Dictionaries
union Convert Dictionary of Arrays of Dictionaries to an Array of distinct Dictionaries

Module: doa.py

doa.py Classes

The Module doa.py contains the static classes DoA:

Class: DoA

The static Class DoA is used to manage Arrays used for the flattening of dictionaries; it contains the subsequent methods.

DoA: Methods

DoA Methods
Name Description
apply  
append  
append_by_key  
append_unique  
extend  
set  
sh_d_pddf  
sh_union  

Modules for the Management of Dictionary of Dictionaries *************^^^^***********************+++++++*****

Modules for the Management of Dictionary of Dictionaries
Name Description
dodoa.py Management of Dictionary of Dictionaries of Arrays.
dodod.py Management of Dictionary of Dictionaries of Dictionaries.
dod.py Management of Dictionary of Dictionaries.

Module: doc.py

The Module fnc.py contains the static class Fnc with I/O Control methods for log files;

doc.py Class Fnc

The static Class Fnc contains the subsequent methods

Fnc: Methods

Fnc Methods
Name Type Description
ex class Show and execute the function as the value of of the function-dictionary for the given key.
identity static Identity function for any objects
sh static Show(get) the function as the value of the function-dictionary for the given key.

Fnc Method: ex

Parameter
Fnc Method ex: Parameter
Name Type Description
cls class current class
doc TnDoC Dictionary of Callables
key TnDoc key
args_kwargs TnArrDoc arguments or keyword arguments
Return Value
Fnc Method ex: Return Value
Name Type Description
  TyCallable Value of Function for argument args_kwargs

Fnc Method: identity

Parameter
Fnc Method identity: Parameter
Name Type Description
obj TyAny object
Return Value
Fnc Method identity: Parameter
Name Type Description
obj TyAny object

Fnc Method: sh

Parameter
Fnc Method sh: Parameter
Name Type Description
cls class current class
doc TnDoC Dictionary of Callables
key TnDoc key
Return Value
Fnc Method sh: REturn Value
Name Type Description
fnc TyCallable Function

Module: pacmod.py

The Utility module pacmod.py contains a single static class PacMod.

pacmod.py Class: PacMmd

PacMod Methods

PacMod Methods
Name Description
sh_d_pacmod create and show (return) pacmod dictionary
sh_path_cfg_yaml show pacmod file path of the yaml file <pacmod module>.yaml in the data directory of the current module of the current package
sh_path_keys_yaml show pacmod file path type for the yaml file keys.yml in the data directory of the current module of the current pacḱage
sh_pacmod_type show pacmod type directory path
sh_file_path show pacmod file path
sh_pattern show pacmod file path pattern
sh_path_cfg_log show file path of log configuration file
sh_d_pacmod show pacmod dictionary

PacMod Method: sh_d_pacmod

Parameter
Parameter of method sh_d_pacmod
Name Type Description
root_cls class root class
tenant Any  

Method: sh_path_cfg_yaml

Parameter
Parameter of method sh_path_cfg_yaml
Name Type Description
pacmod TyDic  

Method: sh_path_cfg_yaml

Parameter
Name Type Description
pacmod TyDic  
type_ Tystr  

Method: sh_path_cfg_yaml

Parameter
Parameter of method sh_path_cfg_yaml
Name Type Description
pacmod TyDic  
type_ str  

Method: sh_path_cfg_yaml

Parameter
Parameter of method sh_path_cfg_yaml
Name Type Description
cls class current class
pacmod TyDic  
type_ TyStr  
suffix TyStr  
pid TyStr  
ts TyAny  
**kwargs TyAny keyword arguments

Method: sh_path_cfg_yaml

Parameter
Parameter of method sh_path_cfg_yaml
Name Type Description
pacmod TyDic  
     
type_ TyStr  
suffix TyStr  
**kwargs TyAny keyword arguments

Method: sh_path_cfg_yaml

Parameter
Parameter of method sh_path_cfg_yaml
Name Type Description
pacmod TnDic  
     
filename TyStr  

Method: sh_d_pacmod

Parameter
Parameter of method sh_d_pacmod
Name Type Description
cls class current class
**kwargs TyAny keyword arguments

Module: dodoa.py

Classes

The Module dodoa.py contains the static class DoDoA:

Class: DoDoA

The static Class DoDoA is used to manage Dictionary of Dictionaries of Arrays; it contains the subsequent methods.

Methods

Methods of class DoDoA
Name Description
append  
sh_union  

Module: dodod.py

Classes

The Module dodod.py contains the static Class DoDoD:

Class: DoDoD

The static Class DoDoD is used to manage Dictionary of Dictionaries of Dictionaries; it contains the subsequent methods.

Methods

Methods of class DoDoD
Name Description
set  
yield_values  

Module: dod.py

Classes

The Module dod.py contains the static Class DoD:

Class: DoD

The static Class DoD is used to manage Dictionary of Dictionaries; it contains the subsequent methods.

Methods

DoD Methods
Name Description
nvl Return the Dictionary of Dictionaries if it is not None otherwise return the empty Dictionary "{}".
replace_keys Recurse through the Dictionary while building a new one with new keys and old values; the old keys are translated to new ones by the keys Dictionary.
yield_values  

Module: dodows.py

Classes

The Module dodows.py contains the static Class DoDoWs:

Class: DoDoWs

The static Class DoDoWs is used to manage Dictionary of Dictionaries of Worksheets; it contains the subsequent methods.

Methods

Methods of class DoDoWs
Name Description
write_workbook Write a workbook using a Dictionary of Dictionaries of worksheets.

Modules for Management of Dictionariy of Ojects

The Module Type Modules for Nabagement of Dictionary of Objects contains the following Modules:

Management Modules for Dictionaries of Ojects
Name Description
doo.py Management of Dictionary of Objects.

Module: doo.py

The Module doo.py contains the static Classes DoO.

Class: DoO

The static Class DoO is used to manage Dictionary of Objects; it contains the subsequent methods.

Methods

Methods of class DoO
Name Description
replace_keys Replace the keys of the given Dictionary by the values found in the given keys Dictionary if the values are not Dictionaries; otherwise the function is called with these values.

Modules for Dictionaries of Dataframes

Modules

The Module Type Modules for Dictionaries of Dataframes contains the following Modules:

Management Modules for Dictionary of Dataframes
Name Description
dopddf.py Management of Dictionary of Panda Dataframes.
dopldf.py Management of Dictionary of Polars Dataframes.

Module: dopddf.py

The Module dopddf.py contains only the static Class DoPdDf.

Class: DoPdDf

The static Class DoPdDf is used to manage Dictionaries of Panda Dataframes; it contains the subsequent methods.

Methods

Methodsc of class DoPdDf
Name Description
set_ix_drop_key_filter Apply Function set_ix_drop_col_filter to all Panda Dataframe values of given Dictionary.
to_doaod Replace NaN values of Panda Dataframe values of given Dictionary and convert them to Array of Dictionaries.

Module: dopldf.py

The Module dopldf.py contains only the static Class DoPlDf:

Class: DoPlDf

The static Class DoPlDf is used to manage Dictionary of Polars Dataframes; it contains the subsequent Methods.

Methods

Methods of class DoPlDf
Name Description
to_doaod Replace NaN values of Polars Dataframe values of given Dictionary and convert them to Array of Dictionaries.

Appendix

Package Logging

Description

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.

Log message types

Logging defines log file path names for the following log message types: .

  1. debug
  2. info
  3. warning
  4. error
  5. critical

Application parameter for logging

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

Log type and Log directories

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

Log files naming

Naming Conventions
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
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 Terminology

Python packages

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 package Sub-directories

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 package Sub-directories
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

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
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
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

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

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.

Table of Contents

Table of Content