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

Uploaded Source

Built Distribution

confhub-0.1.0.3a0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: confhub-0.1.0.3a0.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.3a0.tar.gz
Algorithm Hash digest
SHA256 d1adefca9137fe357aca085891a80ff9ecae30a12f2cfb9408cbc6cffe099815
MD5 2320c4007af86fbcc93d3e40dc4bc9fd
BLAKE2b-256 9641f1ca7bab8302f579c14fcdebac4fd1849b585ac7da5ad2566372d42107b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confhub-0.1.0.3a0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 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.3a0-py3-none-any.whl
Algorithm Hash digest
SHA256 149d4d0dbf522c4fd0244c16be26a6c80af6ed6e4b99a78899e78bf7094d49f9
MD5 b7409f0db168e9fd370352d297319038
BLAKE2b-256 cf726710a5a90462b9da98ba5efaf1603f06f0b9b47f4a849de442d7918f6113

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