Skip to main content

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


Download files

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

Source Distribution

confhub-0.0.3.2a0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

confhub-0.0.3.2a0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

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

Hashes for confhub-0.0.3.2a0.tar.gz
Algorithm Hash digest
SHA256 465b86ff908ffbc7c65034316bf5fa74af309b555ccd8a22cba5ee48f4ef77dc
MD5 a657753828f19ef8cde0d1465f161622
BLAKE2b-256 a38dcee96779cf997b23dbb0a7c342e91478bc610c4c0785c00c2780fe0ef0b9

See more details on using hashes here.

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

Hashes for confhub-0.0.3.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 422853f980405a397e89086bf954eb81fc39c91265b82865a74b14db89f2cef2
MD5 e1446ab675d333df986f3593383c297f
BLAKE2b-256 aa2b7e76ed3edd560e84d2c389e8c2a7451c244be85c9829b6c36aa2870b3946

See more details on using hashes here.

Supported by

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