用于引用YAML文件中的环境变量的自定义YAML标记。

pyyaml_env_tag的Python项目详细描述


pyyaml_env_标记

用于引用YAML文件中的环境变量的自定义YAML标记。在

安装

使用pip安装PyYAMLpyyaml_env_tag包:

pip install pyyaml pyyaml_env_tag

启用标签

要启用标记,请导入并将construct_env_tag构造函数添加到YAML中 装载机选择。在

^{pr2}$

然后你可以照常使用装载机。例如:

yaml.load(data,Loader=yaml.Loader)

使用标签

在YAML中包含标记!ENV,后跟环境变量的名称 文件和环境变量的值将在其位置使用。在

key:!ENVSOME_VARIABLE

如果SOME_VARIABLE设置为A string!,那么上述YAML将导致 以下Python对象:

{'key':'A string!'}

变量的内容使用YAML的隐式标量类型进行解析,例如 字符串、bool、integer、float、datestamp和null。不是更复杂的类型 识别并简单地作为字符串传递。例如,如果SOME_VARIABLE 设置为字符串true,则上述YAML将导致以下结果:

{'key':True}

如果未设置指定的变量,则会指定一个null值作为默认值。 您可以将自己的默认值定义为序列中的最后一项。在

key:!ENV[SOME_VARIABLE,default]

在上面的例子中,如果没有定义SOME_VARIABLE,那么字符串default将 改为使用,如下所示:

{'key':'default'}

您可以列出多个变量作为备用。设置的第一个变量是 用过。在任何包含多个项目的序列中,最后一个项目必须始终是 默认值,不会被解析为环境变量。在

key:!ENV[SOME_VARIABLE,FALLBACK,default]

与变量内容一样,默认值被解析为 隐含类型(string、bool、integer、float、datestamp和null)。在

SOME_VARIABLE未设置时,以下四个项目都将解析为 相同的值(None):

-!ENVSOME_VARIABLE-!ENV[SOME_VARIABLE]-!ENV[SOME_VARIABLE,~]-!ENV[SOME_VARIABLE,null]

相关

pyyaml_env_标记的灵感来自Ruby包yaml-env-tag。在

在YAML文件中引用环境变量的另一种方法是 由pyyaml-tags和{a3}实现。 每个库都使用一个模板字符串,并将模板标记替换为 变量的内容。而这允许引用单个值 多个变量,并且为了包含其他内容,它限制所有值 但不提供一种只定义默认值的方法。在

许可证

pyyaml\u env_标记是在LICENSE中定义的MIT License下授权的。在

变更日志

版本0.1(发布于2020年11月11日)

初始版本。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Selenium中弹出的java句柄窗口   java将格式化消息从任何片段传递到活动   java如何从int类型的方法返回多个整数   servlets数据不会使用java类和bean插入数据库   java如何修改Solr给出的搜索结果页面?   java如何在wildfly中重定向应用程序路径?   java使用Apache异步HTTP客户端从InputStream构造多部分请求   java解析来自REST的压缩输入流   java上载文件失败,原因是Vaadin Spring PlupLocaddon   使用需要CSRF令牌的旧端点的javascript   java如何在viewpager应用程序中将图像设置为墙纸?   java Axis2与SharePoint 2013(ADFS/FedAuth cookie)   java H2选择:意外的类型39映射   Docker Composition中拒绝java Spring应用程序连接   使用Java的ibm mq ibm mq获取LGETTIME   java循环逻辑中的漏洞   javaspringcom。mongodb。util。JSONParseException   方法调用“振动”可能会产生java。更新到Android Studio 3后出现lang.NullPointerException警告   datetime如何将日历的时间与java进行比较。sql。时间物体?