No project description provided
Project description
chutils
Набор простых и удобных утилит для 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 .
Быстрый старт
-
Создайте в корне вашего проекта файл
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
-
Используйте
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()
-
Запустите ваш скрипт. Вы увидите логи в консоли, а в проекте появится папка
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abf4849ef2b7d6c518868224083373fad1482ce343d36694919b639903fc79f0
|
|
| MD5 |
abc3864d7b390c5990538395323ceb7c
|
|
| BLAKE2b-256 |
cef80c260be0daddb4f55d31a73725ec0500eeb0dd22b766bcc645a9398949ff
|