ut_xls

Overview

Excel 'Utilities'

The package ut_xls ís a collection of interface modules to the following 'Python Excel Utilities'

  1. openpyxl
  2. pyexcelerate
  3. pandas dataframe excel functions
  4. polars dataframe excel functions

Installation

The package ut_xls can be installed from PyPI.

To install with pip:

$ python -m pip install ut_xls

Package files

lassification

The Package ut_xls consist of the following file types (c.f.: Appendix: Python Terminology):

  1. Special files:
    1. py.typed
  2. Special modules:
    1. __init__.py
    2. __version__.py
  3. Sub-packages
    1. op Modules for Excel files using Openpyxl
      1. Modules for Excel I/O control
        1. iocwb.py I/O Control Module for Excel Workbooks
        2. Modules for Excel Input control
          1. ioipathnmwb.py Input Module for Excel workbooks accessed with path name
          2. ioipathwb.py Input Module for Excel workbooks accessed with path
          3. ioipathws.py Input Module for Excel worksheets accessed with path
        3. Modules for Excel Output/Update control
          1. ioopathnmwb.py Output Module for Excel workbooks accessed with path name
          2. ioopathwb.py Output Module for Excel workbooks accessed with path
          3. ioupathwb.py Update Module for Excel workbooks accessed with path
      2. wb.py Module for Excel workbook processing
      3. ws.py Module for Excel worksheet processing
      4. rw.py Module for Excel worksheet row processing
    2. pd Modules for Excel files using pandas
      1. Excel I/O module
        1. ioipathnmwb.py
        2. ioipathwb.py
        3. ioopathwb.py
    3. pe Modules for Excel files using pyexcelerate
      1. Excel modules for dictionary of arrays
        1. doaos.py
        2. doaod.py
      2. Excel I/O modules
        1. iocwb.py
        2. ioopathnmwb.py
        3. ioopathwb.py
    4. pl Modules for Excel files using pyexcelerate
      1. ioipathwb.py

I/O Control Module for Excel Workbooks

Module: iocwb.py

The Module iocwb.py is used to control I/O for Excel Worksheets using the Openpyxl package; it contains the following static classes:

Static classes of module iocwb.py
Name Description
SheetNms Manage Excel worksheet Names.
Ws Manage Excel worksheets.

Class SheetNms

Methods
Methods of static class SheetNms
Name Description
sh_sheetnms Show Excel workheet names.
sh_sheetnm Show Excel workheet name.
Method: sh_sheetnms
Parameter of method sh_sheetnms
Name Type Description
cls class current class.
sheetnms TySheetnms Excel sheet names.
sheet TyAoSheet Excel array of Excel sheets.
Return value of method sh_sheetnms
Name Type Description
sheetnms TySheetnms Excel sheet names.

Class Ws

The class Ws contains:

  1. the static subclass Headers,
  2. static- or class-methods.
Subclass: Headers
Methods of static class Headers
Name Description
iter_column Iterate over Worksheet columns.
Methods
Methods of class Ws
Name Description
append_rows Ierate over workbook sheet names.
filter_rows Iterate over workbook sheets.
iter_sheet_lst  
sh_headers  
sh_aoa  
sh_id  
sh_chartsheet  
sh_worksheet  
to_aod_apply_fnc_to_value  
to_aod_apply_str_to_value  
to_rows  
to_row_values  
to_dic  
update_ws_cell_from_df_with_d_body  
update_ws_cell_with_d_head  

Input module for Excel workbooks accessed with path names

Module: ioipathnmwb.py

The Module ioipathnmwb.py is used to control Input processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IoiPathnmWb:

Methods

Methods of class IoiPathnmWb
Name Description
load Ierate over workbook sheet names.
read_wb_to_aod Iterate over workbook sheets.
read_wb_to_doaod Iterate over workbook sheets.
read_wb_to_aod_or_doaod Iterate over workbook sheets.
read_wb_to_aoa Iterate over workbook sheets.
sh_wb_adm Iterate over workbook sheets.
sh_wb_del Iterate over workbook sheets.
sh_wb_reg Iterate over workbook sheets.

Input module for Excel workbooks accessed with path

Module: ioipathwb.py

The Module ioipathwb.py is used to control Input processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IoiPathWb:

Methods

Methods of class IoiPathWb
Name Description
load Load Excel workbook accessed by path
read_wb_to_aod Read Excel workbook accessed by path into array of dictionaries.
read_wb_to_doaod Read Excel workbook accessed by path into dictionary of array of dictionaries.
read_wb_to_aod_or_doaod Read Excel workbook accessed by path into array of dictionaries or dictionary of array of dictionaries.
read_wb_to_aoa Read Excel workbook accessed by path into array of arrays. .
sh_wb_adm Show Excel workbook with admin sheet.
sh_wb_del Show Excel workbook with delete sheet.
sh_wb_reg Show Excel workbook with regular (admin or delete) sheets.

Input module for Excel workbooks accessed with path names

Module: ioipathws.py

The Module ioipathws.py is used to control Input processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IoiPathWs:

Methods

Methods of class IoiPathWs
Name Description
read_ws_to_dic Read Excel workbook accessed by path into dictionary.
read_ws_to_aod Read Excel workbook accessed by path into array of dictionaries.
read_ws_filter_rows Read Excel workbook accessed by path into array of dictionaries.
read_ws_to_aoa Read Excel workbook accessed by path int oarray of arrays.
read_sheetnames Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_doaoa Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_dowsop Read Excel workbook accessed by path int oarray of arrays.

Output module for Excel workbooks accessed with path names

Module: ioopathnmwb.py

The Module ioopathnmwb.py is used to control Output processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IooPathNmWb:

Methods

Methods of class IooPathNmbs
Name Description
read_ws_to_dic Read Excel workbook accessed by path into dictionary.
read_ws_to_aod Read Excel workbook accessed by path into array of dictionaries.
read_ws_filter_rows Read Excel workbook accessed by path into array of dictionaries.
read_ws_to_aoa Read Excel workbook accessed by path int oarray of arrays.
read_sheetnames Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_doaoa Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_dowsop Read Excel workbook accessed by path int oarray of arrays.

Output Module for Excel workbooks accessed with path

Module: ioopathwb.py

The Module ioopathwb.py is used to control Output processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IooPathWb:

Methods

Methods of class IooPathNmbs
Name Description
read_ws_to_dic Read Excel workbook accessed by path into dictionary.
read_ws_to_aod Read Excel workbook accessed by path into array of dictionaries.
read_ws_filter_rows Read Excel workbook accessed by path into array of dictionaries.
read_ws_to_aoa Read Excel workbook accessed by path int oarray of arrays.
read_sheetnames Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_doaoa Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_dowsop Read Excel workbook accessed by path int oarray of arrays.

Update Module for Excel workbooks accessed with path

Module: ioopathwb.py

The Module ioopathwb.py is used to control Output processing for Excel Worksheets refered by patn-names using the Openpyxl package; it contains the following static class IooPathWb:

Methods

Methods of class IooPathNmbs
Name Description
read_ws_to_dic Read Excel workbook accessed by path into dictionary.
read_ws_to_aod Read Excel workbook accessed by path into array of dictionaries.
read_ws_filter_rows Read Excel workbook accessed by path into array of dictionaries.
read_ws_to_aoa Read Excel workbook accessed by path int oarray of arrays.
read_sheetnames Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_doaoa Read Excel workbook accessed by path int oarray of arrays.
read_ws_to_dowsop Read Excel workbook accessed by path int oarray of arrays.

Modules for Excel worksheet row processing

Module: rw.py

The Module rw.py is used to manage Excel Worksheet rows using the Openpyxl package; it contains the following static class:

Static classes of module rw.py
Name Description
Rw Manage Excel worksheet rows

Class Rw

Methods
Methods of static class Rw
Name Description
iter_cell_value Iterate over cell values of Excel worksheet rows
Method: iter_cell_value
Parameter of method iter_cell_value
Name Type Description
cls class current class
row TyTupleCell Excel Worksheet rows
**kwargs TyAny Keyword arguments
Yield value of method iter_cell_value
Name Type Description
cell.value TyAny Excel Worksheet row cell value

Modules for Excel workbook processing

Module: wb.py

The Module wb.py is used to manage Excel Workbooks using the Openpyxl package; it contains the following static classes:

Static Classes of Input I/O Module ioipath.py
Name Description
DoAoA Manage workbooks from Dictionaries of Arrays.
DoAoA Manage workbooks from Dictionaries of dictionaries.
Wb Manage workbooks.

Class DoAoA

Methods
Methods of static class DoAoA
Name Description
create_wb Create Excel Workbook from Dictionary of array of arrays using the openpyxel package.
Method: create_wb
Parameter of method create_wb
Name Type Description
doaoa TyDoAoA Dictionary of array of dictionaries
Return value of method create_wb
Name Type Description
wb TyWb Excel Workbook of Openpyxl package

Class DoAoD

Methods
Methods of static class DoAoD
Name Description
create_wb Create Excel Workbook from Dictionary of array of dictionaries using the openpyxxel package.
Method: create_wb
Parameter of method create_wb
Name Type Description
doaoa TyDoAoA Dictionary of array of dictionaries
Return value of method create_wb
Name Type Description
wb TyWb Excel Workbook of Openpyxl package

Class Wb

Methods
Methods of static class Wb
Name Description
iter_sheet_names Ierate over workbook sheet names.
iter_sheet Iterate over workbook sheets.
sh_sheetnm  
sh_sheetnms  
sh_sheet_by_sheetnm  
sh_sheet  
sh_chartsheet_by_sheetnm  
sh_chartsheet  
sh_worksheet_by_sheetnm  
sh_worksheet  
to_aod  
to_doaod  
to_aod_or_doaod  
createupdate_wb_with_doaoa  
update_wb_with_aoa  
update_wb_with_aod  
update_wb_with_doaoa  
update_wb_with_dodf  

Modules for Excel worksheet processing

Module: ws.py

The Module ws.py is used to manage Excel Worksheets using the Openpyxl package; it contains the following static classes:

Static classes of module ws.py
Name Description
DoAoA Manage workbooks from Dictionaries of Arrays
DoAoA Manage workbooks from Dictionaries of dictionaries.
Wb Manage workbooks.

Appendix

Package Logging

Description

Logging use the module log.py of the logging package ut_log. The module supports two Logging types:

  1. Standard Logging (std) or
  2. User Logging (usr).

The Logging type can be defined by one of the values 'std' or 'usr' of the parameter log_type; 'std' is the default. The different Logging types are configured by one of the following configuration files:

  1. log.std.yml or
  2. log.usr.yml

The configuration files can be stored in different configuration directories (ordered by increased priority):

  1. <package directory of the log package ut_log>/cfg,
  2. <package directory of the application package ui_eviq_srr>/cfg,
  3. <application directory of the application eviq>/cfg,

The active configuration file is the configuration file in the directory with the highest priority.

Examples

Site-packages-path = /appl/eviq/.pyenv/versions/3.11.12/lib/python3.11/site-packages Log-package = ut_log Application-package = ui_eviq_srr Application-home-path = /appl/eviq

Examples of log configuration-files
Log Configuration
Type Directory Type Directory File
std Log package <Site-packages-path>/<Log-package>/cfg log.std.yml
Application package <Site-packages-path>/<application-package>/cfg
Application <application-home-path>/cfg
usr Log package <site-packages-path>/ut_log/cfg log.usr.yml
Application package <site-packages-path>/ui_eviq_srr/cfg
Application <application-path>/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 Value Description Default Example
appl_data data directory       /data/eviq
tenant tenant name UMH     UMH
package package name       ui_eviq_srr
cmd command       evupreg
log_type Logging Type std: Standard logging std std
usr: User Logging
log_ts_type Logging timestamp type ts: Sec since 1.1.1970 ts ts
dt: Datetime
log_sw_single_dir Use single log directory True use single dir. True True
False use muliple dir.

Log files naming

Naming Conventions (table format)
Naming conventions for logging file paths
Type Directory File
debug /<appl_data>/<tenant>/RUN/<package>/<cmd>/debs debs_<ts>_<pid>.log
critical /<appl_data>/<tenant>/RUN/<package>/<cmd>/logs crts_<ts>_<pid>.log
error /<appl_data>/<tenant>/RUN/<package>/<cmd>/logs errs_<ts>_<pid>.log
info /<appl_data>/<tenant>/RUN/<package>/<cmd>/logs infs_<ts>_<pid>.log
warning /<appl_data>/<tenant>/RUN/<package>/<cmd>/logs rnsg_<ts>_<pid>.log
Naming Conventions (tree format)
<appl_data>   Application data folder
│
└── <tenant>  Application tenant folder
    │
    └── RUN  Applications RUN folder for Application log files
        │
        └── <package>  RUN folder of Application package: <package>
            │
            └── <cmd>  RUN folder of Application command <cmd>
                │
                ├── debs  Application command debug messages folder
                │   │
                │   └── debs_<ts>_<pid>.log  debug messages for
                │                            run of command <cmd>
                │                            with pid <pid> at <ts>
                │
                └── logs  Application command log messages folder
                    │
                    ├── crts_<ts>_<pid>.log  critical messages for
                    │                        run of command <cmd>
                    │                        with pid <pid> at <ts>
                    ├── errs_<ts>_<pid>.log  error messages for
                    │                        run of command <cmd>
                    │                        with pid <pid> at <ts>
                    ├── infs_<ts>_<pid>.log  info messages for
                    │                        run of command <cmd>
                    │                        with pid <pid> at <ts>
                    └── wrns_<ts>_<pid>.log  warning messages for
                                             run of command <cmd>
                                             with pid <pid> at <ts>
Naming Examples (table format)
Naming conventions for logging file paths
Type Directory File
debug /appl/eviq/UMH/RUN/ui_eviq_srr/evdomap/debs/ debs_1750096540_354710.log
critical /appl/eviq/UMH/RUN/ui_eviq_srr/evdomap/logs/ crts_1749971151_240257.log
error errs_1749971151_240257.log
info infs_1750096540_354710.log
warning wrns_1749971151_240257.log
Naming Examples (tree format)
/data/eviq/UMH/RUN/ui_eviq_srr/evdomap  Run folder of
│                                       of function evdomap
│                                       of package ui_eviq_srr
│                                       for teanant UMH
│                                       of application eviq
│
├── debs  debug folder of Application function: evdomap
│   │
│   └── debs_1748609414_314062.log  debug messages for run
│                                   of function evdomap
│                                   using pid: 314062 at: 1748609414
│
└── logs  log folder of Application function: evdomap
    │
    ├── errs_1748609414_314062.log  error messages for run
    │                               of function evdomap
    │                               with pid: 314062 at: 1748609414
    ├── infs_1748609414_314062.log  info messages for run
    │                               of function evdomap
    │                               with pid: 314062 at: 1748609414
    └── wrns_1748609414_314062.log  warning messages for run
                                    of function evdomap
                                    with pid: 314062 at: 1748609414

Configuration files

log.std.yml (jinja2 yml file)

Content
version: 1

disable_existing_loggers: False

loggers:

    # standard logger
    std:
        # level: NOTSET
        level: DEBUG
        handlers:
            - std_debug_console
            - std_debug_file
            - std_info_file
            - std_warning_file
            - std_error_file
            - std_critical_file

handlers:

    std_debug_console:
        class: 'logging.StreamHandler'
        level: DEBUG
        formatter: std_debug
        stream: 'ext://sys.stderr'

    std_debug_file:
        class: 'logging.FileHandler'
        level: DEBUG
        formatter: std_debug
        filename: '{{dir_run_debs}}/debs_{{ts}}_{{pid}}.log'
        mode: 'a'
        delay: true

    std_info_file:
        class: 'logging.FileHandler'
        level: INFO
        formatter: std_info
        filename: '{{dir_run_infs}}/infs_{{ts}}_{{pid}}.log'
        mode: 'a'
        delay: true

    std_warning_file:
        class: 'logging.FileHandler'
        level: WARNING
        formatter: std_warning
        filename: '{{dir_run_wrns}}/wrns_{{ts}}_{{pid}}.log'
        mode: 'a'
        delay: true

    std_error_file:
        class: 'logging.FileHandler'
        level: ERROR
        formatter: std_error
        filename: '{{dir_run_errs}}/errs_{{ts}}_{{pid}}.log'
        mode: 'a'
        delay: true

    std_critical_file:
        class: 'logging.FileHandler'
        level: CRITICAL
        formatter: std_critical
        filename: '{{dir_run_crts}}/crts_{{ts}}_{{pid}}.log'
        mode: 'a'
        delay: true

    std_critical_mail:
        class: 'logging.handlers.SMTPHandler'
        level: CRITICAL
        formatter: std_critical_mail
        mailhost : localhost
        fromaddr: 'monitoring@domain.com'
        toaddrs:
            - 'dev@domain.com'
            - 'qa@domain.com'
        subject: 'Critical error with application name'

formatters:

    std_debug:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    std_info:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    std_warning:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    std_error:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    std_critical:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    std_critical_mail:
        format: '%(asctime)-15s %(levelname)s-%(name)s-%(process)d::%(module)s.%(funcName)s|%(lineno)s:: %(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
Jinja2-variables
log.std.yml Jinja2 variables
Name Definition Example
dir_run_debs debug run directory /data/eviq/UMH/RUN/ui_eviq_srr/evupreg/debs
dir_run_infs info run directory /data/eviq/UMH/RUN/ui_eviq_srr/evupreg/logs
dir_run_wrns warning run directory
dir_run_errs error run directory
dir_run_crts critical error run directory
ts Timestamp since 1970 in [sec] if log_ts_type == 'ts' 1749483509
Datetime in timezone Europe/ Berlin if log_ts_type == 'dt' 20250609 17:38:29 GMT+0200
pid Process ID 79133

Python Glossary

Python Modules

Overview

Python Modules
Name Definition
Python modules Files with suffix .py; they could be empty or contain python code; other modules can be imported into a module.
special Python modules Modules like __init__.py or main.py with special names and functionality.

Python Function

Overview

Python Function
Name Definition
Python function Files with suffix .py; they could be empty or contain python code; other modules can be imported into a module.
special Python modules Modules like __init__.py or main.py with special names and functionality.

Python Packages

Overview

Python Packages Overview
Name Definition
Python package Python packages are directories that contains the special module __init__.py and other modules, sub packages, files or directories.
Python sub-package Python sub-packages are python packages which are contained in another python 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

Special python package sub-directories

Special python package 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 Files

Overview

Python files
Name Definition
Python modules Files with suffix .py; they could be empty or contain python code; other modules can be imported into a module.
Python package files Files within a python package.
Python dunder modules Python modules which are named with leading and trailing double underscores.
special Python files Files which are not modules and used as python marker files like py.typed.
special Python modules Modules like __init__.py or main.py with special names and functionality.

Python Special Files

Python special 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.

Python Special Modules

Python special 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 package entry point point. 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 classes

Overview

Python classes overview
Name Description
Python class A class is a container to group related methods and variables together, even if no objects are created. This helps in organizing code logically.
Python static class A class which contains only @staticmethod or @classmethod methods and no instance-specific attributes or methods.

Python methods

Overview

Python methods overview
Name Description
Python method Python functions defined in python modules.
Python class method Python functions defined in python classes.
Python special class method Python class methods with special names and functionalities.

Python class methods

Python class methods
Name Description
Python no instance class method Python function defined in python classes and decorated with @classmethod or @staticmethod. The first parameter conventionally called cls is a reference to the current class.
Python instance class method Python function defined in python classes; the first parameter conventionally called self is a reference to the current class object.
special Python class method Python class functions with special names and functionalities.

Python special class methods

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. The method us a single parameter conventionally called self to access the object.

Table of Contents

Table of Content