No project description provided
Project description
release-engineers/yaml-common
Extracts and merges common parts of YAML from one set of files into a common file. Note that this project attempts to preserve comments and order of properties in your YAML files, but can not preserve formatting.
Setup
pip install re-yaml-common
Usage
yaml-common merge <common file> <file 1> <file 2> ...
An example below for yaml-common merge tests/data/common.yaml tests/data/1.yaml tests/data/2.yaml
.
Input
Content of common.yaml
:
example-exists:
str-1: This property already exists in common.yaml
str-2: This property exists in all files
Content of 1.yaml
:
example-common:
# common comment
depth:
more-depth:
array:
- yes
- for sure
str: common string
int: 123
float: 1.23
bool: true
null:
example-specific:
depth:
more-depth:
# specific comment to 1.yaml
str-specific: 1.yaml
example-exists:
str-2: This property exists in all files, and is overridden by 1.yaml
example-mixed:
array-common:
- yes
- for sure again
array-specific:
- no
- because this is specific to 1.yaml
str-common: common string
str-specific: 1.yaml
sre-common-multiline: |
-----BEGIN PUBLIC KEY-----
01234567890
-----END PUBLIC KEY-----
unique-to-1: this property is unique to 1.yaml
Content of 2.yaml
:
example-common:
# common comment
depth:
more-depth:
array:
- yes
- for sure
str: common string
int: 123
float: 1.23
bool: true
null:
example-specific:
depth:
more-depth:
# specific comment to 2.yaml
str-specific: 2.yaml
example-exists:
str-2: This property exists in all files, and is overridden by 2.yaml
example-mixed:
array-common:
- yes
- for sure again
array-specific:
- no
- because this is specific to 2.yaml
str-common: common string
str-specific: 2.yaml
sre-common-multiline: |
-----BEGIN PUBLIC KEY-----
01234567890
-----END PUBLIC KEY-----
Output
After running the above example, the content of the files will have changed to:
Expected content of common.yaml
:
example-exists:
str-1: This property already exists in common.yaml
str-2: This property exists in all files
example-common:
# common comment
depth:
more-depth:
array:
- yes
- for sure
str: common string
int: 123
float: 1.23
bool: true
null:
example-mixed:
array-common:
- yes
- for sure again
str-common: common string
sre-common-multiline: |
-----BEGIN PUBLIC KEY-----
01234567890
-----END PUBLIC KEY-----
Expected content of 1.yaml
:
example-specific:
depth:
more-depth:
# specific comment to 1.yaml
str-specific: 1.yaml
example-exists:
str-2: This property exists in all files, and is overridden by 1.yaml
example-mixed:
array-specific:
- no
- because this is specific to 1.yaml
str-specific: 1.yaml
unique-to-1: this property is unique to 1.yaml
Expected content of 2.yaml
:
example-specific:
depth:
more-depth:
# specific comment to 2.yaml
str-specific: 2.yaml
example-exists:
str-2: This property exists in all files, and is overridden by 2.yaml
example-mixed:
array-specific:
- no
- because this is specific to 2.yaml
str-specific: 2.yaml
Contributing
This is a Python Poetry project using Fire. See Poetry for more information.
Development requires:
Links
This project was created using template-poetry.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for re_yaml_common-2.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b91c25a23dee9609a5d1eca524c928561489b1b98fbf432768b9f9da46fcf2da |
|
MD5 | c0cb0134ebcc08e3d6b277f8c08b693a |
|
BLAKE2b-256 | e2bced7c71765d52aa77dfb4bf7544437d5b2952076b70f18a44ee258b0ef929 |