Библиотека confect , которую я построил, именно для того, чтобы удовлетворить большинство ваших потребностей.
- Может загружать файл конфигурации несколько раз по заданным путям к файлам или по имени модуля.
- Загружает конфигурации из переменных среды с заданным префиксом.
Он может прикреплять параметры командной строки к некоторым щелчкам командам
(извините, это не argparse, но click лучше и намного более продвинутый. confect
может поддерживать argparse в будущем выпуске).
- Самое главное,
confect
загружает файлы конфигурации Python, а не JSON / YMAL / TOML / INI. Как и файл профиля IPython или файл настроек DJANGO, файл конфигурации Python является гибким и простым в обслуживании.
Для получения дополнительной информации, пожалуйста, проверьте файл README.rst в репозитории проекта . Имейте в виду, что он поддерживает только Python3.6.
Примеры
Присоединение параметров командной строки
import click
from proj_X.core import conf
@click.command()
@conf.click_options
def cli():
click.echo(f'cache_expire = {conf.api.cache_expire}')
if __name__ == '__main__':
cli()
Он автоматически создает всеобъемлющее справочное сообщение со всеми объявленными свойствами и значениями по умолчанию.
$ python -m proj_X.cli --help
Usage: cli.py [OPTIONS]
Options:
--api-cache_expire INTEGER [default: 86400]
--api-cache_prefix TEXT [default: proj_X_cache]
--api-url_base_path TEXT [default: api/v2/]
--db-db_name TEXT [default: proj_x]
--db-username TEXT [default: proj_x_admin]
--db-password TEXT [default: your_password]
--db-host TEXT [default: 127.0.0.1]
--help Show this message and exit.
Загрузка переменных среды
Для загрузки переменных среды требуется только одна строка
conf.load_envvars('proj_X')