Skip to main content

A suite of tools to advance your usage of yaml. YASL provides schema definition and verification. YAQL let's you query your yalm as if it were a database. YARL provides analysis and reporting. And YATL allows you to transform yaml from one structure (schema) to another.

Project description

advanced-yaml

YAML Tools

YAML tools is a suite of tools that streamline data management of structured data in YAML.

These tools include:

  • YASL - YAML Advanced Schema Language
  • YAQL - YAML Advanced Query Language
  • YARL - YAML Advanced Reporting Language

Vision & Inspiration

Teams and organizations often manage a diverse, complex set data as they collaborate to achieve their objectives. This data is commonly persisted in a database. When the data evolves rapidly (i.e. has high transaction rates), this makes sense. But often our data may be considered 'semi-static', changing infrequently over time. Visibility into and integrity of changes to this 'semi-static' data as it evolves can be valuable. What changed? Who made the change? Was the change valid? Establishing this visibility within databases can become complex and costly.

The vision of advanced-yaml is to allow for 'semi-static' data to be persisted in structured human and machine readable files that can be validated for correctness and referential integrity. We see clear examples of this concept in infrastructure-as-code tools. advanced-yaml seeks to explore that paradigm for data in a highly flexible manner, suitable for a variety of domains. This would allow teams to leverage robust version control systems to rigorously manage change. Teams can create automations to ensure data validity and integrity. And this could be done without compromising the common user experiences teams are accustomed to when working with their data.

advanced-yaml attempts to enable this by providing robust solutions for defining and validating data structure and integrity through schemas in the yasl tool. The yaql tool builds upon this by providing a query language and database fascade for your data. And the yarl tool further enhances this by enabling analysis and reporting for your data. Over time additional tools will be added to support other use cases and streamline development of products that utilize this 'semi-static' data management concept.

Developer Setup

YAML tools is written in python and managed with the UV tool.

  • Install UV:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • Clone the advanced-yaml repo

    git clone git@github.com:jondavid-black/advanced-yaml.git
    cd advanced-yaml
    
  • Setup the virtual environment and install dependencies

    uv venv
    source .venv/bin/activate
    uv pip install -e .[dev]
    
  • Run tests

    uv run pytest
    
  • Run tests w/ coverage

    uv run pytest --cov=src --cov-fail-under=75
    
  • Run Formatter

    uv run ruff check src/ tests/
    

Use the standard github-flow working process to best leverage feedback from the CI process.

To Perform a release:

  • Update the version in pyproject.toml
  • Complete and merge the pull request to main.
  • Get on the main branch:
    git checkout main
    git pull origin main
    
  • Tag and push the repo:
    git tag "v$(uv run python -c "import toml; print(toml.load('pyproject.toml')['project']['version'])")"
    git push --tags
    

Project details


Download files

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

Source Distribution

advanced_yaml-0.3.4.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

advanced_yaml-0.3.4-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file advanced_yaml-0.3.4.tar.gz.

File metadata

  • Download URL: advanced_yaml-0.3.4.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for advanced_yaml-0.3.4.tar.gz
Algorithm Hash digest
SHA256 704a4dac30e5d69e31b24fd23fb61d075b0cfc88d3e041a72e8b71d6b9d0ad19
MD5 df4ce9e6d85f9f481a2f9e651cbefbee
BLAKE2b-256 78486f9995af358b0fd57ef57ea27ffed32b8e1a994f76b39e491d260561c856

See more details on using hashes here.

Provenance

The following attestation bundles were made for advanced_yaml-0.3.4.tar.gz:

Publisher: publish.yml on jondavid-black/advanced-yaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file advanced_yaml-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: advanced_yaml-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for advanced_yaml-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 03440f05f08591298a10bdce1392a7dad3430765fbf3dd363a6912499f6fdfa5
MD5 efd7b6d3d70dcba8f99df5ba65c59d73
BLAKE2b-256 517a9ee622843274bd821ae782c499aa83f4b959b557a4c2b44fb8e3d5b9c217

See more details on using hashes here.

Provenance

The following attestation bundles were made for advanced_yaml-0.3.4-py3-none-any.whl:

Publisher: publish.yml on jondavid-black/advanced-yaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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