Skip to main content

Reading, checking and writing YAML from Python

Project description

Documentation Build Status Build Status Codacy Grade Code Coverage https://zenodo.org/badge/147202299.svg https://img.shields.io/badge/rsd-yatiml-00a3e3.svg https://img.shields.io/badge/fair--software.eu-%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8B-yellow

YAtiML

YAML-based file formats can be very handy, as YAML is easy to write by humans, and parsing support for it is widely available. Just read your YAML file into a document structure (a tree of nested dicts and lists), and manipulate that in your code.

As long as that YAML file contains exactly what you expect, that works fine. But if it contains a mistake, then you’re likely to crash the program with a cryptic error message, or worse (especially if the YAML file was loaded from the Internet) it may do something unexpected.

To avoid that, you can validate your YAML using various schema checkers. You write a description of what your YAML file must look like, then feed that to a library which checks the incoming file against the description. That gives you a better error message, but it’s a lot of work.

YAtiML takes a different approach. Instead of a schema, you write a Python class. You probably already know how to do that, so no need to learn anything. YAtiML then generates loading and dumping functions for you, which convert between YAML and Python objects. If needed, you can add some extra code to make the YAML look nicer or implement special features.

YAtiML supports Python 3.6 and later.

If you use YAtiML for scientific work, we ask that you cite it. You can download a citation in various formats at the Research Software Directory.

Documentation and Help

Instructions on how to install and use YAtiML can be found in the YAtiML documentation.

Code of Conduct

Before describing where to ask questions or report bugs, we’d like to point out that this project is governed by a code of conduct, as described in CODE_OF_CONDUCT.rst, and we expect you to adhere to it. Please be nice to your fellow humans.

Questions

If you have a question that the documentation does not answer for you, then you have found a bug in the documentation. We’d love to fix it, but we need a bit of help from you to do so. Please do the following:

  1. use the search functionality to see if someone already filed the same issue;

  2. if your issue search did not yield any relevant results, make a new issue;

  3. apply the “Question” label; apply other labels when relevant.

We’ll answer your question, and improve the documentation where necessary.

Bugs

Like most software, YAtiML is made by humans, and we make mistakes. If you think you’ve found a bug in YAtiML, please let us know! Reporting bugs goes as follows.

  1. Use the search functionality to see if someone already filed the same issue.

  2. If your issue search did not yield any relevant results, make a new issue.

    Please explain:
    • what you were trying to achieve,

    • what you did to make that happen,

    • what you expected the result to be,

    • what happened instead.

It really helps to have the actual code for a simple example that demonstrates the issue, but excerpts and error messages and a description are welcome too.

  1. Finally, apply any relevant labels to the newly created issue.

With that, we should be able to fix the problem.

License

YAtiML is Copyright 2018-2024, Netherlands eScience Center, University of Amsterdam, and VU University Amsterdam, and copyright 2025-2026 Netherlands eScience Center.

Distributed under the Apache Software License 2.0.

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

yatiml-0.12.0.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

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

yatiml-0.12.0-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file yatiml-0.12.0.tar.gz.

File metadata

  • Download URL: yatiml-0.12.0.tar.gz
  • Upload date:
  • Size: 48.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for yatiml-0.12.0.tar.gz
Algorithm Hash digest
SHA256 30eb62a51b9f60df095ff709a881c576b0c720b6dcd10994dde73872c4a1e1f4
MD5 7896bb0b9070413ead9e2eca7c96f75d
BLAKE2b-256 819534851f9a14b8b3808e4472bacff490a3df8cfadb6472fbef894520619620

See more details on using hashes here.

File details

Details for the file yatiml-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: yatiml-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for yatiml-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b41cc7aa7ab8d122714d390ecddf4f21b6512f159258acf29eb2354c9f0f0af
MD5 4fec35f1a692758c550e463e61cd24c0
BLAKE2b-256 3c953d8c46b5d7a4720335d44375e0a12bdb0a0cc0e3c83e2730be0a39e2879b

See more details on using hashes here.

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