Setup your project config easily
Project description
bestconfig
Python модуль для работы с файлами конфигурации проекта
Installation
pip install bestconfig
A Simple Example
Предположим у вас такая структура проекта
root/
main.py
config.yaml
.env
/main.py
from bestconfig import Config
config = Config("myconfig.json")
print(dict(config))
# Примеры использования класса
logger = config.logger
logger = config['logger']
mode = config.logger.mode
mode = config.get('logger.mode', 'DEBUG')
mode = config['__unknown__'] # raise KeyError
mode = config.get('__unknown__') # return None
Содержимое файлов:
.env
DATABASE_PASSWOD=postgres
/config.yaml
HOST: http://localhost
PORT: 5050
logger:
mode: WARNING
myconfig.json
{
"VERSION": "1.23.4",
"BUILD": 5563
}
Вывод будет следующим
{
"logger": {
"mode": "DEBUG"
}
"PORT": 5050,
"HOST": "http://localhost",
"DATABASE_PASSWOD": "postgres"
}
Что произошло?
- Класс
Config
просканировал текущую дирикторию, вплоть до корня проекта - Нашел все указанные в аргументах файлы и те, что в списке по умолчанию
(например
.env
,env_file
,config.yaml
,configuration.ini
и тд)
Какие источники конфигов поддерживаются?
- Файлы следующих типов:
.json
.yaml
.ini
.py
(если в нем нет инициализацииConfig()
во избежании рекурсии).cfg
- Файлы в формате
CONFIG_NAME=CONFIG_VALUE
- Уже существующие и новые переменные окружения
- Обычные
python
словари
Файлы для поиска по умолчанию
-
Все комбинации имени
config
configuration
settings
conf
и расширений
.json
.yaml
.ini
.env
.cfg
-
Выеденные, часто используемые названия
env_file
.env
config.py
Доступ к данным
- Через точку
config.name
- Нотация
python dict
config['name']
Бросает исключение при отсутствии config.get('name', 'default_value', raise_absent=False)
Если после документации остались вопросы, код подробно документирован, можно смело смотреть в исходники
Запланированные обновления
- Поддержка загрузки из базы данных
- Поддержка загрузки с config сервера
- Перевод документации и комментариев на английский
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bestconfig-1.1.0.tar.gz
(11.2 kB
view hashes)
Built Distribution
bestconfig-1.1.0-py3-none-any.whl
(12.2 kB
view hashes)
Close
Hashes for bestconfig-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccb33ffb50d7ea61dca9a79781faff05af4594ddea0cd2073a00028a5915a7eb |
|
MD5 | 931a53dcbdf809bc971d9236a65055b8 |
|
BLAKE2b-256 | 99f10f166a301d25ed6bf7952d73e8a1c58513aae9ee731d62c3926428736fa7 |