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', 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', 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.1.0.1a0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

confhub-0.1.0.1a0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file confhub-0.1.0.1a0.tar.gz.

File metadata

  • Download URL: confhub-0.1.0.1a0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.7

File hashes

Hashes for confhub-0.1.0.1a0.tar.gz
Algorithm Hash digest
SHA256 6671f5f0f11c1c60eeed597b49ba8c039494e2088bc08452fd379fb43a85aba5
MD5 7298b4dda43794677d65575d2c4c6f89
BLAKE2b-256 24a552d388de3ed75c34e572e390839b006a0a6a733abbfb8bcd159ff0b9115c

See more details on using hashes here.

File details

Details for the file confhub-0.1.0.1a0-py3-none-any.whl.

File metadata

  • Download URL: confhub-0.1.0.1a0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.7

File hashes

Hashes for confhub-0.1.0.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 fae101a8f635fb8c79a91d741e7b14774c3a062ca7946b652d9faea894440513
MD5 007f249800e146e76b7f8047968d1582
BLAKE2b-256 11184bb4a30885a6bc3bd8738954e55f989f6bc59702ff8726a1bc03a0c43072

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