ka_uts_arr

Overview

Utilities to manage Arrays

Installation

Package ka_uts_array can be installed from PyPI or Anaconda.

To install with pip:

$ python -m pip install ka_uts_arr

To install with conda:

$ conda install -c conda-forge ka_uts_arr

Package logging

(c.f.: Appendix: Package Logging)

Package files

Classification

The Files of Package ka_uts_arr could be classified into the follwing file types (c.f.: Appendix: Python Terminology):

  1. Special files
    1. py.typed
  2. Special modules
    1. __init__.py
    2. __version__.py
  3. Modules
    1. Modules for dictionaries
      1. dic.py
    2. Modules for dictionaries of arrays
      1. doaod.py
      2. doa.py
    3. Modules for dictionaries of callables
      1. doc.py*
    4. Modules for dictionaries of dataframes
      1. dopddf.py

Package Modules

Overview

The Modules of Package ka_uts_arr could be classified into the follwing module types:

  1. Modules for arrays
  2. Modules for arrays of arrays
  3. Modules for arrays of basic objects

Modules for arrays

The Module type Modules for arrays contains only the module arr.py.

Module: arr.py

The Module arr.py contains only the static class Arr.

Class: Arr

The Class Arr contains the following methods:

Arr Methods
Arr methods
Name Short description
append Append item to the array
append_unique Append item to the array if the item is not in the array.
apply_function Apply function with the keyword arguments to all non empty array elements.
apply_replace Replace source by target to all array elements.
apply_str Apply function str to all non empty array elements.
encode Join array elements with blank separator and encode result string.
ex_intersection Intersection of first array with second array.
extend Extend first array with second array.
get_key_value Get next array item value without line feed for the given index or the given default value if the item value is identical to the given value without line feeds.
get_item Extend array of dicts. with non empty dict.
get_text Extend array of dicts. with non empty dict.
get_text_spli Extend array of dicts. with non empty dict.
intersection Extend array of dicts. with non empty dict.
is_empty Extend array of dicts. with non empty dict.
is_not_empty Extend array of dicts. with non empty dict.
join_not_none Extend array of dicts. with non empty dict.
length Extend array of dicts. with non empty dict.
merge Extend array of dicts. with non empty dict.
sh_dic_from_keys_values Extend array of dicts. with non empty dict.
sh_dic_zip Join elements of array of dicts.
sh_item Show True if an element exists in the array
sh_item_if Show True if an element exists in the array
sh_item_lower Show True if an element exists in the array
sh_item_str Show True if an element exists in the array
sh_item0 Deduplicate array of dicts.
sh_item0_if Deduplicate array of dicts.
sh_subarray Deduplicate array of dicts.
to_dic Show arr. of arrays created from arr. of dict. by using any key- and all value-arrays
yield_items Convert array of dictionaries to array of arrays controlled by key- and value-switch.

Modules for array of arrays

The Module type Modules for array of arrays contains only the module aoa.py.

Module: aoa.py

The Module aoa.py contains only the static class AoA.

aoa.py Class: AoA

The static Class AoA contains the subsequent methods.

AoA Methods
AoA Methods
Name Short description
concatinate Concatinate all arrays of array of arrays
csv_writerows Write array of arrays to csv file
nvl Replace empty array of arrays
to_aod Convert array of arrays to array of dictionaries using an array of keys
to_arr_from_2cols Convert array of arrays to array using a 2-dimensional index array
to_doa_from_2cols Convert array of arrays to dictionary of arrays using a 2-dimensionl index array
to_dic_from_2cols Convert array of arrays to dictionary by using a 2-dimensional index array
AoA Method: concatinate
Description

Concatinate all arrays of array of arrays.

Parameter
Parameter of: AoA Method: concatinate
Name Type Default Description
aoa TyAoA   Array of arrays
Return Value
Return Value of: AoA Method: concatinate
Name Type Description
arr_new TyArr new array
AoA Method: csv_writerows
Description

Write Array of Arrays to Csv file defined by the path string using the function "writerows" of module "csv".

Parameter
Parameter of: AoA Method: csv_writerows
Name Type Description
aoa TyAoA Array of arrays
path TyPath Path string
kwargs TyDic Keyword aruments
Return Value
Return Value of: AoA Method: csv_writerows
Name Type Description
  None  
AoA Method: nvl
Description

Return the empty array if the Array of Arrays is None.

Parameter
Parameter of: AoA Method nvl
Name Type Default Description
aoa TyAoA   Array of arrays
Return Value
Return Value of: AoA Method: nvl
Name Type Description
aoa_new TyAoA new Array of arrays
AoA Method: to_aod
Description

Convert array of arrays to array of Dictionaries.

Parameter
Parameter of: AoA Method: to_aod
Name Type Default Description
aoa TyAoA   Array of arrays
keys TyArr   Array of keys
Return Value
Return Value of: AoA Method: to_aod
Name Type Description
aod TyAoD array of dictionaries
AoA Method: to_arr_from_2cols
Description

Convert Array of Arrays to unique array with distinct elements by selecting 2 columns of each Array as elements of the new array using a 2-dimensional index-array.

Parameter
Parameter of: AoA Method: to_arr_from_2cols
Name Type Default Description
aoa TyAoA   Array of arrays
a_ix TyAoI   Array of integer
Return Value
Return Value of: AoA Method: to_arr_from_2cols
Name Type Description
arr TyArr Array
AoA Method: to_doa_from_2cols
Description

Convert array of arrays to dictionary of unique arrays (array with distinct elements)

  1. Select 2 columns of each array as key-, value-candidates of the new dictionary using a 2-dimensional index-array.
  2. If the new key exists then the new value extends the key value as unique array,
# otherwise
the new value is assigned as unique array to the key.
Parameter
Parameter of: AoA Method: to_doa_from_2cols
Name Type Default Description
aoa TyAoA   Array of arrays
a_ix TyAoI   Array of integer
Return Value
Return Value of: AoA Method: to_doa_from_2cols
Name Type Description
doa TyDoA Dictionry of arrays
AoA Method: to_dic_from_2cols
Description

Convert array of arrays to dictionary by selecting 2 columns of each array as key-, value-candidates of the new dictionary if the key is not none using a 2-dimensional index-array.

Parameter
Parameter of: AoA Method: to_dic_from_2cols
Name Type Default Description
aoa TyAoA   Array of arrays
a_ix TyAoI   Array of integer
Return Value
Return Value of: AoA Method: to_dic_from_2col*
Name Type Description
dic TyDic Dictionary

Modules for array of objects

Modules-for-array-of-dictionaries
Name Description
aoo.py Array of objects

Module: aoo.py

The Module aoo.py contains the single static class AoO;

aoo.py Class: AoO

Methods
AoO Methods
Name short Description
to_unique Concatinate array arrays
AoO Method: to_unique

Deduplicate array of objects

Parameter
Parameter of: AoO Method: to_unique
Name Type Description
aoo TyAoO Array of objects
Return Value
Return Value of: AoO Method: to_unique
Name Type Description
aoo_new TyAoO New array of objects

Module: aos.py

Classes

The Module aos.py contains the single static class AoS;

Class: AoS

AoS Methods
AoS Methods
Name short Description
nvl Replace empty array of strings
sh_a_date Convert array of strings to array of dates
to_lower Convert array of strings to array of lowered strings.
to_unique Deduplicate array of arrays
to_unique_lower Convert array of strings to deduplicted array of lowered strings.
to_unique_lower_invariant Convert array of arrays to array of arrays
Method: AoS.to_unique
Parameter
Parameter of: AoS Method: to_unique
Name Type Default Description
aoo TyAoO   array of objects
Return Value
Return Value of: AoS Method: to_unique
Name Type Description
aoo_new TyAoO new array of objects

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 standard- or user-configuration files in the logging package configuration directory:

  • <logging package directory>/cfg/ka_std_log.yml,
  • <logging package directory>/cfg/ka_usr_log.yml.

The Logging configuration of the logging package could be overriden by yaml files with the same names in the application package- or application data-configuration directories:

  • <application package directory>/cfg
  • <application data directory>/cfg.

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

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

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

Overview

Python Packages Overview
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-directory directory contained in a python package.
Python package special sub-directory Python package sub-directories with a special meaning like data or cfg

Examples

Python Package sub-directory-Examples
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

Overview

Python package overview 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.

Examples

Python package examples 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.
__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 methods

Overview

Python methods overview
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

Examples

Python methods examples
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