Skip to main content

No project description provided

Project description

chutils

License: MIT Python

Набор простых и удобных утилит для Python, который избавляет от рутины при работе с конфигурацией и логированием в новых проектах.

Проблема

Каждый раз, начиная новый проект, приходится решать одни и те же задачи:

  • Как удобно читать настройки из файла config.ini?
  • Как настроить логирование, чтобы сообщения писались и в консоль, и в файл с ежедневной ротацией?
  • Как сделать так, чтобы это работало без жестко прописанных путей и работало сразу после установки?

chutils решает эти проблемы.

Ключевые возможности

  • ✨ Ноль конфигурации: Библиотека автоматически находит корень вашего проекта и файл config.ini. Вам не нужно ничего инициализировать вручную.
  • ⚙️ Удобная работа с конфигом: Простые функции для получения строковых, числовых, булевых значений и даже списков из config.ini.
  • ✍️ Мощный логгер: Функция setup_logger() "из коробки" настраивает логирование в консоль и в ротируемые файлы в папке logs/, которая создается автоматически.
  • 🚀 Готовность к работе: Просто установите и используйте.

Установка

Вы можете установить пакет напрямую из GitHub-репозитория с помощью pip:

pip install git+https://github.com/Chu4hel/chutils.git

Для разработки клонируйте репозиторий и установите его в режиме редактирования:

git clone https://github.com/Chu4hel/chutils.git
cd chutils
pip install -e .

Быстрый старт

  1. Создайте в корне вашего проекта файл config.ini.

    Структура проекта:

    my_awesome_app/
    ├── main.py
    └── config.ini
    

    Содержимое config.ini:

    [API]
    base_url = https://api.example.com
    token = your_secret_token_here
    
    [Database]
    host = localhost
    port = 5432
    
  2. Используйте chutils в вашем коде main.py:

    # main.py
    from chutils.config import get_config_value
    from chutils.logger import setup_logger
    
    # 1. Настраиваем логгер. Он автоматически прочитает настройки из config.ini
    #    и создаст папку logs/
    logger = setup_logger()
    
    def connect_to_db():
        # 2. Легко получаем значения из конфига
        db_host = get_config_value("Database", "host")
        db_port = get_config_value("Database", "port")
    
        logger.info(f"Подключаемся к базе данных по адресу {db_host}:{db_port}...")
        # ... логика подключения ...
        logger.info("Успешно подключились!")
    
    def main():
        logger.info("Приложение запущено.")
        connect_to_db()
        api_token = get_config_value("API", "token")
        logger.debug(f"Используемый токен API: {api_token[:4]}****")
        logger.info("Приложение завершило работу.")
    
    if __name__ == "__main__":
        main()
    
  3. Запустите ваш скрипт. Вы увидите логи в консоли, а в проекте появится папка logs с файлом лога.

API и Использование

Работа с конфигурацией (chutils.config)

  • get_config_value(section, key, fallback=""): Получить строковое значение.
  • get_config_int(section, key, fallback=0): Получить целое число.
  • get_config_boolean(section, key, fallback=False): Получить булево значение.
  • get_config_list(section, key, fallback=[]): Получить список строк из многострочного значения.
  • save_config_value(section, key, value): Сохранить значение в config.ini.

Настройка логирования (chutils.logger)

  • setup_logger(name='app_logger', log_level_str=''): Настраивает и возвращает стандартный объект logging.Logger.

Ручная инициализация (chutils.init)

В 99% случаев вам это не понадобится. Но если автоматика не справилась, вы можете один раз указать путь к проекту вручную:

import chutils
chutils.init(base_dir="/path/to/my/project/root")

Пример файла config.ini

chutils использует секцию [Logging] для настройки логгера.

[API]
token = your_secret_token_here

[Database]
host = localhost

[Logging]
# Уровни: DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level = DEBUG
# Имя файла для логов
log_file_name = my_app.log
# Сколько дней хранить файлы логов
log_backup_count = 7

Лицензия

Проект распространяется под лицензией MIT.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

chutils-1.0.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file chutils-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: chutils-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.4 Windows/11

File hashes

Hashes for chutils-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 abf4849ef2b7d6c518868224083373fad1482ce343d36694919b639903fc79f0
MD5 abc3864d7b390c5990538395323ceb7c
BLAKE2b-256 cef80c260be0daddb4f55d31a73725ec0500eeb0dd22b766bcc645a9398949ff

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