mentortools/libs/: init-helpers-abm-3.0.66534a0 metadata and description

Simple index Stable version available

Tools to parse args, read config, init logs and etc

author Mike Orlov
author_email m.orlov@abm-jsc.ru
classifiers
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.11
description_content_type text/markdown
requires_python >=3.11,<4.0
File Tox results History
init_helpers_abm-3.0.66534a0-py3-none-any.whl
Size
21 KB
Type
Python Wheel
Python
3
init_helpers_abm-3.0.66534a0.tar.gz
Size
13 KB
Type
Source

Init Helper

Tools to parse args, read config, init logs and etc

Парсинг конфигов

Создадим конфиг файл

printf 'some = 123\nother = "www"\nbar = "empty"' > example.toml

Проверим содержимое

cat example.toml

получим:

some = 123
other = "www"
bar = "empty"

Считаем конфиг как экземпляр датакласса

Подготовим python файл, имитирующий чтение конфига и печатающий результат

printf '
import dataclasses
import init_helpers
@dataclasses.dataclass
class Config:
    other: str
    some: int = 42
    foo: float = 1.23    
    topics: tuple[str, ...] = ("one", )    
config = init_helpers.parse_arg_as_dataclass(Config)
print(config)
' > init.py

Запустим инициализацию, передав ей конфиг

python init.py example.toml

Получим

Config(other='www', some=123, foo=1.23, topics=('one',))

Запустим инициализацию с конфигом и переопределив значения из конфига

python init.py example.toml -v foo=4.2 -v some=42

Получим

Config(other='www', some=42, foo=4.2, topics=('one',))

Запустим инициализацию без конфига, передав необходимые значения через аргументы запуска

python init.py example.toml -v other=qqq -v 'topics=["two","four"]'

Получим

Config(other='qqq', some=123, foo=1.23, topics=('two', 'four'))