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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: confhub-0.1.0.2a0.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.2a0.tar.gz
Algorithm Hash digest
SHA256 75cdedf162a5d75d6b3a3688da009cf2dcd9ec81126715ab9b2303754abcfbeb
MD5 2ec963030aca17ab01e9ffd3b29c18ae
BLAKE2b-256 177721ca59acd900bae9d499721f0f39de485e0edf22e7ff6a3bbefc5da95bbb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confhub-0.1.0.2a0-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.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 b277ef1280622b71daeaf2d2eb16abf90dbd8bc2015fbd867a87197f4dc03849
MD5 55f3ced95d0d39107d355de310b1820b
BLAKE2b-256 b7562a4150d34c86f9f02bbf2aa2052d3cc4efe0369909bb1fcf157c331556cb

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