Configuration add-on to Dynaconf
Project description
ConfHub
Данный модуль позволяет загружать и обрабатывать конфигурационные файлы различных форматов:
.toml
.yaml
.json
.ini
.py
.env
!! В конфигурации определена настройка логов с помощью structlog
и моей настройки процессоров !!
Основные возможности:
- Парсинг файлов конфигурации и объединение данных в единый словарь
- Автоматическое создание URL-адресов для сервисов по их настройкам
- Поддержка работы с переменными окружения (.env файлы)
- Возможность задания приоритетных настроек для разработки
- Использование модуля позволяет упростить доступ к конфигурационным данным в коде проекта, а также автоматизировать ряд рутинных задач, связанных с конфигурацией.
Установка
pip install confhub
Использование
Вы можете автоматически сгенерировать файлы конфигурации в удобное место:
confhub --create config
confhub -c/--create название_вашей папки
Для генерации файлов в текущую папку используйте точку:
confhub -c .
Если папки не существует, confhub запросит у пользователя подтверждение о создание папки:
confhub -c test
Do you want to create a new folder at (D:\ConfHub\test)? [Y/n]
: y
2024-05-08 13:00:38 [info ] Loading configuration files [commands.py:generate_configurations_files:32] secret_file=WindowsPath('D:/ConfHub/test/.secrets.yml') secret_file__example=WindowsPath('D:/ConfHub/test/example__secrets.yml') settings=WindowsPath('D:/ConfHub/test/settings.yml')
Далее вы можете использовать конфигурацию в вашем коде:
from confhub.reader import ReaderConf
reader = ReaderConf('config/settings.yml', 'config/.secrets.yml', env='config/.env', dev=True)
reader.create_service_urls()
configuration = reader.data
assert configuration.get('postgresql_url') == 'postgresql+asyncpg://ghost:qwerty@127.0.0.1:5432/database'
# True
По умолчанию используется глобальная конфигурация для логирования с режимом DEBUG:
from confhub.setup_logger import LoggerReg
logger_registrations = [
LoggerReg(name="", level=LoggerReg.Level.DEBUG)
]
Чтобы изменить ее передайте в параметр ReaderConf ваши настройки:
from confhub.reader import ReaderConf
from confhub.setup_logger import LoggerReg
"""
class Level(Enum):
DEBUG: str = "DEBUG"
INFO: str = "INFO"
WARNING: str = "WARNING"
ERROR: str = "ERROR"
CRITICAL: str = "CRITICAL"
NONE: str = None
"""
reader = ReaderConf(
'config/settings.yml', 'config/.secrets.yml', env='config/.env', dev=True,
logger_registrations = [
LoggerReg(name="название вашего логера", level=LoggerReg.Level.INFO),
LoggerReg(name="название вашего следующего логера", level=LoggerReg.Level.ERROR),
# и так далее
]
)
Внимание!
Настройки логирования с записью в файл пока на экспериментальном уровне. Пожалуйста, сообщайте о всех багах мне в личку телеграм.
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 Distribution
Built Distribution
File details
Details for the file confhub-0.0.3.2a0.tar.gz
.
File metadata
- Download URL: confhub-0.0.3.2a0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 465b86ff908ffbc7c65034316bf5fa74af309b555ccd8a22cba5ee48f4ef77dc |
|
MD5 | a657753828f19ef8cde0d1465f161622 |
|
BLAKE2b-256 | a38dcee96779cf997b23dbb0a7c342e91478bc610c4c0785c00c2780fe0ef0b9 |
File details
Details for the file confhub-0.0.3.2a0-py3-none-any.whl
.
File metadata
- Download URL: confhub-0.0.3.2a0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 422853f980405a397e89086bf954eb81fc39c91265b82865a74b14db89f2cef2 |
|
MD5 | e1446ab675d333df986f3593383c297f |
|
BLAKE2b-256 | aa2b7e76ed3edd560e84d2c389e8c2a7451c244be85c9829b6c36aa2870b3946 |