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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: confhub-0.1.0.5a0.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.5a0.tar.gz
Algorithm Hash digest
SHA256 b6d6be7e021a904aeb5022502c7e82aed7fb2ca021794b6bfac5e1cd7f031002
MD5 853272312f666e4370008776a38b849c
BLAKE2b-256 327f030581ff4943f8f9273b64d2d2e890b371e48a5364d88f4a48ce2efabbf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confhub-0.1.0.5a0-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.5a0-py3-none-any.whl
Algorithm Hash digest
SHA256 55fe14950594ead454eef469e81084f8f8599df32eea328748d6cf6d11f538a3
MD5 ef2b60c48e3b957aadaff63a47d1ad01
BLAKE2b-256 e49dfa944a18d6152f6d56bf460507bef4de1a1dbae8862eba1014b8f258231a

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