简单的yaml配置文件解析器,易于访问结构化数据
envyaml的Python项目详细描述
环境
简单的yaml配置文件解析器,易于访问结构化数据
为什么
现代配置文件变得越来越复杂、灵活、可读性更强。 yaml文件格式非常适合存储配置,但没有传递环境变量的选项。它们提供灵活性、可读性,并提供存储复杂数据结构的选项。 该项目旨在简化yaml文件和环境变量作为程序配置文件的使用,并且易于配置密钥访问。安装
pip install envyaml
基本用法
假设我们有一个带有这个配置文件的项目env.yaml
# env.yamlproject:name:"${PROJECT_NAME}-${PROJECT_ID}"database:host:$DATABASE_HOSTport:3301username:usernamepassword:$DATABASE_PASSWORDdatabase:testtable:user:table_userblog:table_blogredis:host:$REDIS_HOSTport:5040config:expire:300prefix:$REDIS_PREFIXempty_env:$NOT_EXIST_ENV_VARIABLE
环境变量设置为
PROJECT_NAME=simple-hello
PROJECT_ID=42
DATABASE_HOST=xxx.xxx.xxx.xxx
DATABASE_PASSWORD=super-secret-password
REDIS_PREFIX=state
使用EnvYAML
fromenvyamlimportEnvYAML# read file env.yaml and parse configenv=EnvYAML('env.yaml')# access project nameprint(env['project.name'])# >> simple-hello-42# access whole database sectionprint(env['database'])# {# 'database': 'test',# 'host': 'xxx.xxx.xxx.xxx',# 'password': 'super-secret-password',# 'port': 3301,# 'table':# {# 'blog': 'table_blog', # 'user': 'table_user'# },# 'username': 'username'# }# access database host value as key itemprint(env['database.host'])# >> xxx.xxx.xxx.xxx# access database user table value as key itemprint(env['database.table.user'])# >> table_user# access list items by numberprint(env['list_test'][0])# >> one# access list items by number as key print(env['list_test.1'])# >> two
使用get
函数和默认值访问配置
print(env.get('not.exist.value','default'))# >> defaultprint(env.get('empty_env','default'))# >> defaultprint(env['empty_env'])# >> None
许可证
麻省理工学院许可。有关详细信息,请参见LICENSE文件。