yatiml

Python library for YAML type inference, schema checking and syntactic sugar

https://github.com/yatiml/yatiml

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Python library for YAML type inference, schema checking and syntactic sugar

Basic Info
  • Host: GitHub
  • Owner: yatiml
  • License: apache-2.0
  • Language: Python
  • Default Branch: develop
  • Size: 435 KB
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 4
  • Open Issues: 11
  • Releases: 14
Created over 7 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.rst

.. image:: https://readthedocs.org/projects/yatiml/badge/?version=develop
    :target: https://yatiml.readthedocs.io/en/latest/?badge=develop
    :alt: Documentation Build Status

.. image:: https://github.com/yatiml/yatiml/actions/workflows/ci.yaml/badge.svg
    :target: https://github.com/yatiml/yatiml/actions
    :alt: Build Status

.. image:: https://app.codacy.com/project/badge/Grade/bca7a121d9c742d2905eae08a75676c3
    :target: https://www.codacy.com/gh/yatiml/yatiml/dashboard
    :alt: Codacy Grade

.. image:: https://app.codacy.com/project/badge/Coverage/bca7a121d9c742d2905eae08a75676c3
    :target: https://www.codacy.com/gh/yatiml/yatiml/dashboard
    :alt: Code Coverage

.. image:: https://zenodo.org/badge/147202299.svg
   :target: https://zenodo.org/badge/latestdoi/147202299

.. image:: https://img.shields.io/badge/rsd-yatiml-00a3e3.svg
   :target: https://www.research-software.nl/software/yatiml

.. image:: 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
   :target: https://fair-software.eu

################################################################################
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:

#. use the `search functionality `_
   to see if someone already filed the same issue;
#. if your issue search did not yield any relevant results, make a new issue;
#. 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.

#. Use the `search functionality`_ to see if someone already filed the same
   issue.

#. 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.

#. 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

Distributed under the Apache Software License 2.0.

Citation (CITATION.cff)

# YAML 1.2
---
authors:
  -
    family-names: Veen
    given-names: Lourens
    orcid: "https://orcid.org/0000-0002-6311-1168"
cff-version: "1.2.0"
doi: "10.5281/zenodo.1478048"
keywords:
  - YAML
  - object mapper
  - validation
license: "Apache-2.0"
message: "If you use YAtiML in science, please cite it using these metadata."
repository-code: "https://github.com/yatiml/yatiml"
title: "YAtiML: Mapping YAML to Python and back, with validation."
...

GitHub Events

Total
  • Issues event: 4
  • Issue comment event: 1
  • Push event: 5
Last Year
  • Issues event: 4
  • Issue comment event: 1
  • Push event: 5

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 324
  • Total Committers: 2
  • Avg Commits per committer: 162.0
  • Development Distribution Score (DDS): 0.003
Past Year
  • Commits: 33
  • Committers: 1
  • Avg Commits per committer: 33.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Lourens Veen l****n@e****l 323
Stephan Druskat s****t@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 53
  • Total pull requests: 4
  • Average time to close issues: 8 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 5
  • Total pull request authors: 4
  • Average comments per issue: 1.7
  • Average comments per pull request: 2.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • LourensVeen (50)
  • svenvanderburg (1)
  • OleMussmann (1)
  • maltelueken (1)
  • maarten-ic (1)
Pull Request Authors
  • sdruskat (1)
  • vemonet (1)
  • fossabot (1)
  • abelsiqueira (1)
Top Labels
Issue Labels
ready-for-release (28) enhancement (11) bug (2) blocked (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 2,747 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 18
  • Total maintainers: 1
pypi.org: yatiml

Reading, checking and writing YAML from Python

  • Versions: 16
  • Dependent Packages: 2
  • Dependent Repositories: 4
  • Downloads: 2,747 Last month
Rankings
Dependent packages count: 3.1%
Dependent repos count: 7.5%
Downloads: 10.2%
Average: 10.8%
Forks count: 15.3%
Stargazers count: 17.7%
Maintainers (1)
Last synced: 8 months ago
conda-forge.org: yatiml
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Average: 46.7%
Forks count: 49.6%
Dependent packages count: 51.2%
Stargazers count: 51.9%
Last synced: 8 months ago

Dependencies

setup.py pypi
  • ruamel.yaml >=0.15.71,<0.17
  • typing_extensions *
.github/workflows/ci.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codacy/codacy-coverage-reporter-action master composite
docs/requirements.txt pypi
  • recommonmark *
  • sphinx *
  • sphinx_rtd_theme *