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.0.3.tar.gz
(9.5 kB
view details)
Built Distribution
File details
Details for the file bestconfig-1.0.3.tar.gz
.
File metadata
- Download URL: bestconfig-1.0.3.tar.gz
- Upload date:
- Size: 9.5 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 | 703fb83e5506ec13a58e32dd885859cce2657d7580ee848fbec7e3ec82adcb37 |
|
MD5 | bb20b3d7b9fb11a1abd24d864cf1e764 |
|
BLAKE2b-256 | dbd4d8c074fb8fa22a5c7ed48080be59f2cee6cb57b2ae6b0e847af2e5195be6 |
File details
Details for the file bestconfig-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: bestconfig-1.0.3-py3-none-any.whl
- Upload date:
- Size: 10.1 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 | 3d8b1ba6793f84c9dd224ad52579a1e4647bebb7e9472ff0ad46319e78fb8568 |
|
MD5 | 55a454303fade391e4c70052df064ba1 |
|
BLAKE2b-256 | 8844afe5cb715e3f62ceaeca4c46c9b0bcba2bed37ec72c8d2343c4db910317e |