Yamlator
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)
| File | Size | Uploaded | |
|---|---|---|---|
| yamlator-0.4.1.tar.gz | 28.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|