Skip to content

01Joseph-Hwang10/yaml-replace

Repository files navigation

yaml-replace

PyPI version Testsuite Python version Project Status Supported Interpreters License

Parse yaml files with variables. You can substitute variables in yaml files with values you want to inject.

Installation

pip install yaml-replace

Usage & Examples

You can specify a variable in yaml file with ${{ variable_name }} and then replace it with a value you want to inject.

For example, let's say you have a yaml file some-yaml-file.yaml with the following content:

# some-yaml-file.yaml
name: GitHub Copilot
description: AI Programming Assistant
version: ${{ version }}
features:
  - name: code generation
    languages_supported: ${{ languages }}

In your python code, you can use yaml-replace to replace the variables in the yaml file with the values you want to inject:

from yaml_replace import YAMLTemplate

YAMLTemplate.from_file('some-yaml-file.yaml').render(
    {
        'version': '1.0.0',
        'languages': ["Python", "JavaScript", "Java", "C++", "C#"],
    }
)

The code above will output:

{
  'name': 'GitHub Copilot', 
  'description': 'AI Programming Assistant', 
  'version': '1.0.0', 
  'features': [
    {
      'name': 'code generation', 
      'languages_supported': ['Python', 'JavaScript', 'Java', 'C++', 'C#']
    }
  ]
}

You can also use YAMLTemplate to load the yaml content from a string:

yaml_content = """
name: GitHub Copilot
description: AI Programming Assistant
version: ${{ version }}
features:
  - name: code generation
    languages_supported: ${{ languages }}
"""

YAMLTemplate(yaml_content).render(
    {
        'version': '1.0.0',
        'languages': ["Python", "JavaScript", "Java", "C++", "C#"],
    }
) # Output is the same as the previous example

Contributing

Any contribution is welcome! Check out CONTRIBUTING.md and CODE_OF_CONDUCT.md for more information on how to get started.

License

yaml-replace is licensed under a MIT License.