首页 > 后端开发 > Python教程 > pyya - 在 Python 项目中管理 YAML 配置的方法

pyya - 在 Python 项目中管理 YAML 配置的方法

Linda Hamilton
发布: 2024-12-15 04:28:13
原创
508 人浏览过

pyya - The way to manage YAML config in your Python project

想象一下您的项目中有一个这样的文件:

# config.yaml
database:   
    host: localhost
    port: 5432
    username: postgres
    password: postgres
登录后复制

要在 Python 中解析这个 dot yaml 配置文件,你通常会这样做:

import yaml # pip install PyYAML

with open("config.yaml", encoding='utf-8') as fstream:
    config_yaml = yaml.safe_load(fstream)
登录后复制

要从生成的字典创建类似 Javascript 的对象,您可以添加以下内容:

from munch import munchify # pip install munch

config = munchify(config_yaml)

登录后复制

pyya 使用一个函数自动执行此操作:

from pyya import init_config

config = init_config(
    'config.yaml', 'default.config.yaml', 
    merge_configs = False,
    convert_keys_to_snake_case = False,
    add_underscore_prefix_to_keywords = False
    raise_error_non_identifiers = False)
print(config.database)

# Output:
# Munch({"host": "localhost", "port": 5432, "username": "postgres", "password": "postgres"})

登录后复制

所有这些标志怎么样?

merge_configs 如果设置为 True,会将 config.yaml 与 default.config.yaml(或您指定的任何名称或路径)进行比较,并将后者中不存在的所有字段添加到前者中。如果设置为 False,则禁用其余标志完成的所有合并和所有格式化。

convert_keys_to_snake_case 有点不言自明,因为它只是让配置键看起来像Python。但是,此标志可能会破坏某些设置,例如日志记录配置。

add_underscore_prefix_to_keywords 如果配置键也是 Python 关键字,则会在其前面添加下划线(class 变为 _class)。它可以让属性访问工作得更好。

raise_error_non_identifiers 如果配置键也是无效的 Python 标识符,则会引发错误。

你可以像这样安装 pyya:

pip install pyya
登录后复制

欢迎贡献和建议:https://github.com/shadowy-pycoder/pyya

以上是pyya - 在 Python 项目中管理 YAML 配置的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板