Package: re-yaml-common
release-engineers/yaml-commonExtracts 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.Setuppipinstallre-yaml-commonUsageyaml-common merge <common file> <file 1> <file 2> ...An example below foryaml-common merge tests/data/common.yaml tests/data/1.yaml tests/data/2.yaml.InputContent ofcommon.yaml:example-exists:
  str-1: This property already exists in common.yaml
  str-2: This property exists in all filesContent of1.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.yamlContent of2.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-----OutputAfter running the above example, the content of the files will have changed to:Expected content ofcommon.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 of1.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.yamlExpected content of2.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.yamlContributingThis is a Python Poetry project usingFire.
SeePoetryfor more information.Development requires:BashDockerPythonPoetryLinksThis project was created usingtemplate-poetry.