python-pyyaml-env-tag
Port variant py310
Summary YAML tag for environment variables (3.10)
Package version 0.1
Homepage https://github.com/waylan/pyyaml-env-tag
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v11
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 23 JAN 2023, 06:04:31 UTC
Port created 01 JAN 2023, 17:21:46 UTC
Subpackage Descriptions
single # pyyaml_env_tag A custom YAML tag for referencing environment variables in YAML files. ## Installation Install `PyYAML` and the `pyyaml_env_tag` package with pip: `bash pip install pyyaml pyyaml_env_tag ` ### Enabling the tag To enable the tag, import and add the `construct_env_tag` constructor to your YAML loader of choice. ```python import yaml from yaml_env_tag import construct_env_tag yaml.Loader.add_constructor('!ENV', construct_env_tag) ``` Then you may use the loader as per usual. For example: ```python yaml.load(data, Loader=yaml.Loader) ``` ## Using the tag Include the tag `!ENV` followed by the name of an environment variable in a YAML file and the value of the environment variable will be used in its place. ```yaml key: !ENV SOME_VARIABLE ``` If `SOME_VARIABLE` is set to `A string!`, then the above YAML would result in the following Python object: ```python {'key': 'A string!'} ``` The content of the variable is parsed using YAML's implicit scalar types, such as string, bool, integer, float, datestamp and null. More complex types are not recognized and simply passed through as a string. For example, if `SOME_VARIABLE` was set to the string `true`, then the above YAML would result in the following: ```python {'key': True} ``` If the variable specified is not set, then a `null` value is assigned as a default. You may define your own default as the last item in a sequence. ```yaml key: !ENV [SOME_VARIABLE, default] ``` In the above example, if `SOME_VARIABLE` is not defined, the string `default` would be used instead, as follows: ```python {'key': 'default'} ``` You may list multiple variables as fallbacks. The first variable which is set is used. In any sequance with more than one item, the last item must always be a default value and will not be resolved as an environment variable. ```yaml key: !ENV [SOME_VARIABLE, FALLBACK, default] ``` As with variable contents, the default is resolved to a Python object of the implied type (string, bool, integer, float, datestamp and null). When `SOME_VARIABLE` is not set, all four of the following items will resolve to the same value (`None`): ```yaml - !ENV SOME_VARIABLE - !ENV [SOME_VARIABLE] - !ENV [SOME_VARIABLE, ~]
Configuration Switches (platform-specific settings discarded)
PY310 ON Build using Python 3.10 PY311 OFF Build using Python 3.11
Package Dependencies by Type
Build (only) python-pip:single:py310
autoselect-python:single:standard
Build and Runtime python310:single:standard
Runtime (only) python-PyYAML:single:py310
Download groups
main mirror://PYPIWHL/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4
Distribution File Information
af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069 3911 pyyaml_env_tag-0.1-py3-none-any.whl
Ports that require python-pyyaml-env-tag:py310
python-mkdocs:py310 Project documentation with Markdown (3.10)