Skip to main content

Yamlator

Test codecov License PyPi Version

Yamlator is a CLI tool that allows a YAML file to be validated using a lightweight schema that defines the expected structure. When executed, the YAML is compared against the rules to validate that the relevant keys and data types are present. Once validated, a list of violations will be displayed to help amend the YAML file.

Installing the package

The Yamlator package can be installed from PyPi with:

pip install yamlator

A basic example

Schemas in Yamlator are comprised of rules, rulesets and enums, which are defined in a Yamlator schema file with the .ys extension.

In the Yamlator schema file, the entry point is defined in a schema block. As a minimum, a schema block must be defined for Yamlator to validate a file. Complex structures can be defined as rulesets to validate nested structures. For example, the following schema can be defined to manage a list of employees:

ruleset Employee {
    firstName str
    lastName str
    roles list(str) optional
}

schema {
    employees list(Employee)
}

This schema can then be used to validate the following YAML data:

employees:
    - firstName: employee
      lastName: one
      roles:
        - manager
    - firstName: employee
      lastName: two
      roles:
        - engineer
        - manager
    - firstName: employee
      lastName: three

More information on the different components that can be used in a schema can be found in the schema components documentation.

Additional examples of Yamlator schemas can be found in the examples directory

How to run the CLI

Assuming you have a YAML and Yamlator schema file, the CLI can be executed with:

yamlator <path-to-yaml-file> -s <path-to-yamlator-schema>

Where <path-to-yaml-file> is replaced with the path to your YAML file and <path-to-yamlator-schema> is the path to the schema file which must have the .ys extension.

The first argument for the CLI is always the path to the YAML file.

Flag Alias Description Is Required
--schema -s The schema that will be used to validate the YAML file True
--output -o Defines the violations format that will be displayed. Supported values are table, yaml or json. Defaults to table if not specified. False

To see the help options for the CLI, run yamlator -h or yamlator --help

Setting up the development environment

For instructions on how to set up the development environment, read the setting up the environment documentation.

Metadata

Release files for yamlator 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yamlator 0.4.1
File Size Uploaded
yamlator-0.4.1.tar.gz 28.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yamlator 0.4.1
File Interpreter ABI Platform
yamlator-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 68.2 kB

Release files / yamlator-0.4.1.tar.gz

Download URL yamlator-0.4.1.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d50072914d4e78ee88d0050a62832ed81dd39f35463da55400c9629e9b570b2b
BLAKE2b-256 checksum
How to use checksums
a200720eb58ba029bb68738a22c9967a5a9ca17c09e6cf04cc3592af77aa0439
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.3

Release files / yamlator-0.4.1-py3-none-any.whl

Download URL yamlator-0.4.1-py3-none-any.whl
Size 40.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7c10fdf8c381f57b4d603f53fb63a5250daa5ddbc53c9ef475411256a6e8e1c
BLAKE2b-256 checksum
How to use checksums
29f058742064cceccc2f884beddcd6f2ae4890736c38cf6bac8732787520848f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.3

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page