Skip to main content

Utilities for Objects

Project description

ut_obj

Overview

Object ‘Utilities’

Installation

Package ut_obj can be installed from PyPI.

To install with pip:

$ python -m pip install ut_obj

This requires that the readme extra is installed:

$ python -m pip install ut_obj[readme]

Package logging

(c.f.: Appendix: Package Logging)

Package files

Classification

The Files of Package ut_obj 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. Base objects Modules

      a. byte.py a. date.py a. num.py a. str.py

    2. Complex objects Modules

      a. obj.py a. pos.py a. poa.py a. pokv.py

    3. I/O Modules

      1. io.py

Base objects Modules

The Base objects Modules of Package ut_obj are used for the management of base objects like byte-objects, , num-obj́ects or objects. The Base objects modules type contains the following modules.

Base objects Modules

Name

Type

Description

byte.py

TyByte

Byte Manipulation

num.py

TyNum

Number Management

obj.py

TyObj

Object Management

byte.py (Base objects Module)

Classes

The Base object Module byte.py contains the single static class Byte;

byte.py Class: Byte

The static Class Byte contains the subsequent methods

Methods
Methods of static class Byte

Name

Description

replace_by_dic

replace dictionary-keys found in byte string with corresponding values

Byte Method: replace_by_dic
Parameter of Byte method replace_by_dic

Name

Type

Description

byte_string

TyBytes

Byte string

dic_replace

TyDic

Dictionary with replacement keys and values

Complex objects modules

The Complex objects module type of Package ut_obj consist of the single module poa.py.

poa.py

The Module poa.py is used to manage Pairs of arrays;

Classes

The Module oia.py contains contains the single static class PoA.

poa.py Class: PoA

The static Class PoA contains the subsequent methods

PoA Methods
Overview
Methods of static class PoA

Name

Description

yield_items

yield items for the given pair of objects and the object. Every item consist of the following elements:

  1. element of the first given array

  2. element of the second given array

  3. the given object

PoA Method: yield_items
Parameter of PoA method yield_items

Name|Type

Description

poa

TyPoA

Pair of Arrays

obj

TyAny

Object

File modules

The File modules type of Package ut_obj consist of the single module file.py.

file.py

The File module file.py is used for the management of file objects; it contains the single class File.

file.py Class: File

The static Class File contains the subsequent methods

File Methods
Overview
Methods of static class File

Name

Description

count

count number of paths that match path_pattern.

ex_get_aod_using_fnc

execute get array of dictionaries using the function.

ex_get_aod

execute get array of dictionaries.

ex_get_dod_using_fnc

execute get dictionary of dictionaries using the function.

ex_get_dod

execute get dictionary of dictionaries.

get_aod

get array of dictionaries.

get_dic

get array of dictionaries and return the first element.

get_dod

get dictionary of dictionaries.

get_paths

yield paths which match given path pattern.

get_latest

get latest file path that match given path pattern.

io

apply io function to given path and object.

File Method: count
Parameter
Parameter of File method put_aod

Name

Type

Description

path_pattern

TyPath

path_pattern

Return Value
Return value of File method count

Name

Type

Description

TyInt

Number pf paths

File Method: ex_get_aod_using_fnc
Parameter
Parameter of File method ex_get_aod_using_fnc

Name

Type

Description

path

TyPath

Path

fnc

TyCallable

Object function

kwargs

TyDic

keyword arguments

Return Value
Return value of File method ex_get_aod_using_fnc

Name

Type

Description

TyAoD

Array of Dictionariesy

File Method: ex_get_aod
Parameter
Parameter of File method ex_get_aod

Name

Type

Description

path

TyPath

Path

kwargs

TyDic

keyword arguments

Return Value
Return value of IocWbPe method get

Name

Type

Description

TyAoD

Array of Dictionaries

File Method: ex_get_dod_using_fnc
Parameter
Parameter of File method ex_get_dod_using_fnc

Name

Type

Description

path

TyPath

Path

fnc

TyCallable

Object function

key

TyAny

Keyword

kwargs

TyDic

Keyword arguments

Return Value
Return value of File method ex_get_dod_using_fnc

Name

Type

Description

TyDoD

Dictionary of dictionaries

File Method: ex_get_dod
Parameter
Parameter of File method ex_get_dod

Name

Type

Description

path

TyPath

Path

key

TyAny

Keyword

kwargs

TyDic

Keyword arguments

Return Values
Return value of File method ex_get_dod

Name

Type

Description

TyDoD

Dictionary of dictionaries

File Method: get_aod
Parameter
Parameter of File method get_aod

Name

Type

Description

cls

class

current class

path

TyPath

Path

fnc

TyCallable

Object function

kwargs

TyDic

keyword arguments

Return Value
Return value of File method get_aod

Name

Type

Description

TyDic

Array of Dictionaries

File Method: get_dic
Parameter
Parameter of File method get_dic

Name

Type

Description

cls

class

current class

path

TyPath

Path

fnc

TnCallable

Object function

key

TyStr

Keyword

kwargs

TyDic

keyword arguments

Return Value
Return value of File method get_dic

Name

Type

Description

TyDoD

Dictionary of Dictionaries

File Method: get_dod
Parameter
Parameter of Byte method get_dod

Name

Type

Description

obj

TyAny

Object

path

TyPath

Path

fnc

TnCallable

Object function

key

TyStr

IO function

kwargs

TyDic

keyword arguments

Return Value
Return value of File method get_dod

Name

Type

Description

TyDoD

Dictionary of Dictionaries

File Method: get_latest
Parameter
Parameter of File method get_latest

Name

Type

Description

path_pattern

TyStr

Path pattern

Return Value
Return value of File method get_latest

Name

Type

Description

TyPath

Path

File Method: get_paths
Parameter
Parameter of File method get_paths

Name

Type

Default

Description

path_pattern

TyPath

Path pattern

sw_recursive

TyBool

None

Recursive switch

Return Value
Parameter of File method get_paths

Name

Type

Description

TyIoS

yield path

File Method: io

Parameter

Parameter of File method io

Name

Type

Description

obj

TyObj

Object

path

TnPath

Path

fnc

TnCallable

Object function

Path modules

The Path modules type of Package ut_obj consist of the following modules.

Path Modules

Name

Type

Description

path.py

TyPath

Path management

path.py

The module path.py is used for the management of path objects.

path.py Classes

The module path.py contains the single class Path.

path.py Class: Path

The static Class Path contains the subsequent methods

Path Methods

Overview

Methods of static class Path

Name

Description

verify

Verify path

edit_path

put array of _keys found in

mkdir

make directory of directory path

mkdir_from_path

make directory of the path, if it’s a directory

sh_basename

show basename of the path

sh_components

split the path into components and show the joined components between start- and end-index

sh_component_using_field_name

split the given path into components and show the component identified by an index; the index is get from the given dictionary with the given field name

sh_fnc_name_using_pathlib

extract function name from path with pathlib

sh_fnc_name_using_os_path

extract function name from path with os.path

sh_last_component

show last component of path

sh_path_using_pathnm

show basename of the path

sh_path_using_d_path

replace keys in path by dictionary values

sh_path_using_d_datetype

show path using path function selected by the given date type dictionary

sh_path

show path

sh_path_first

show first component of the given path

sh_path_last

show last component of the given path

sh_path_now

replace now variable in the path by the now date

split_to_array

split normalized path to array

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ut_obj-1.2.2.20250918.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ut_obj-1.2.2.20250918-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file ut_obj-1.2.2.20250918.tar.gz.

File metadata

  • Download URL: ut_obj-1.2.2.20250918.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for ut_obj-1.2.2.20250918.tar.gz
Algorithm Hash digest
SHA256 3288f1c8377a79c776cc4eb83e62669df438c59eb4c0665aed7b8eb4ec884833
MD5 a8e2806dc52dd7e2b5406128df73e5d1
BLAKE2b-256 b1685cdcce5f933cdc8dcf17611428600b2235f8e31e12abcb97a32a31d95b0f

See more details on using hashes here.

File details

Details for the file ut_obj-1.2.2.20250918-py3-none-any.whl.

File metadata

File hashes

Hashes for ut_obj-1.2.2.20250918-py3-none-any.whl
Algorithm Hash digest
SHA256 282e67736332b4bb027f144cf210747cc96d1891cf5aa639ce7f32b86a2e7598
MD5 f8d99120a6208f6dab24961c5efdd25b
BLAKE2b-256 cb3338db8f4d873f2524e8c5751e26af74c166017c7b2b9221d5cc54e18bac4e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page