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 details)
Built Distribution
File details
Details for the file bestconfig-1.1.0.tar.gz
.
File metadata
- Download URL: bestconfig-1.1.0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d8a694ac2a11dbce50bd96c9c5af2c909b2028e603b43196d2a2ad3ca043eb6 |
|
MD5 | ec8df5bda4dcc9d0017e5d6cdd533554 |
|
BLAKE2b-256 | 86a6edabe34d7bd3869141f0edb38ac960500fa9c53f27ca7bbbfcf5064adee5 |
File details
Details for the file bestconfig-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: bestconfig-1.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccb33ffb50d7ea61dca9a79781faff05af4594ddea0cd2073a00028a5915a7eb |
|
MD5 | 931a53dcbdf809bc971d9236a65055b8 |
|
BLAKE2b-256 | 99f10f166a301d25ed6bf7952d73e8a1c58513aae9ee731d62c3926428736fa7 |