Skip to main content

A package to semantically diff yaml files on the console.

Project description

yamldiff

A semantic YAML diff utility.

yamldiff file1.yaml file2.yaml

will show recursively the values that are added removed or modified from file1.yaml to file2.yaml.

The values of data type such as lists are compared by the whole value (i.e.) must match exactly, but it is possible to refine the diff output by considering them unordered sets instead:

$ cat file1.yaml 
a_key : a value

a_list: 
    - {id: 1, val: uno}
    - {id: 2, val: dos}
    - {id: 3, val: tres}
$ cat file2.yaml 
a_key : another value

abother_key: some value
a_list: 
    - {id: 1, val: uno}
    - {id: 2, val: dos}
    - {id: 3, val: cuatro}
$ python yamldiff.py file1.yaml file2.yaml 
# Added keys:
+ abother_key: some value
# Modified keys:
a_key:
    - a value
    + another value
a_list:
    - [{id: 1, val: uno}, {id: 2, val: dos}, {id: 3, val: tres}]
    + [{id: 1, val: uno}, {id: 2, val: dos}, {id: 3, val: cuatro}]
$ python yamldiff.py file1.yaml file2.yaml --set-keys a_list
# Added keys:
+ abother_key: some value
# Modified keys:
a_key:
    - a value
    + another value
a_list:
    # Removed keys:
    - {id: 3, val: tres}
    # Added keys:
    + {id: 3, val: cuatro}

It is also possible to treat list as key value pairs, by specifying the element of the list items to index on:

$ python yamldiff.py file1.yaml file2.yaml --set-keys a_list:id
# Added keys:
+ abother_key: some value
# Modified keys:
a_key:
    - a value
    + another value
a_list:
    # Modified keys:
    # Matching:
    {id: 3}
        # Modified keys:
        val:
            - tres
            + cuatro

Project details


Release history Release notifications | RSS feed

This version

0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yamldiff-0.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

yamldiff-0.3-py2.py3-none-any.whl (5.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file yamldiff-0.3.tar.gz.

File metadata

  • Download URL: yamldiff-0.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.27.1

File hashes

Hashes for yamldiff-0.3.tar.gz
Algorithm Hash digest
SHA256 75b4dc34bcfb8b47c88f68253c03fb69b3c09aee43545d5fd32cb15639cb8bde
MD5 8b00bcea666b02f098687d7fd103a6d3
BLAKE2b-256 bba30425b680f268c63825451052579d40c98ebdaf94e14ce3efcb29ca12c72f

See more details on using hashes here.

File details

Details for the file yamldiff-0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: yamldiff-0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.27.1

File hashes

Hashes for yamldiff-0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 51baa06acdbe0f427702094d49704ca4a3acd43d9366d42f7c0f7fbcd8fc0f6c
MD5 ea16d35bb25550206b8d9d62a3e66764
BLAKE2b-256 3d00942e3c51cd709001f52375a23ca31e3a380929683aed1f66f0fc725b4563

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page