Skip to main content

High-fidelity YAML parser that preserves formatting

Project description

hifiyaml

High-fidelity YAML parser that preserves formatting.
Original YAML structure and formatting are preserved, including comments, anchors, aliases, etc.

Installation

pip install hifiyaml

Quick demo

1. get an example YAML file

Use jedivar.yaml from the RRFSv2 system as an example.

wget https://raw.githubusercontent.com/NOAA-EMC/rrfs-workflow/refs/heads/rrfs-mpas-jedi/parm/jedivar.yaml

2. load the YAML data and dump a YAML block using a querystr

Write the following statments into test.py:

import hifiyaml as hy
data = hy.load("jedivar.yaml")
querystr = "cost function/background error/components/1"
hy.dump(data, querystr)   # dump to stdout
hy.dump(data, querystr, 'ensbec.yaml')   # dump to a file

run python test.py, check the stdout and the ensbec.yaml file.

NOTE: A querystr is a string describing the path from the top level key (or index if a list) to the destination level key (or index), separated with /.
For the following simple YAML file,

demo:
  configuration:
    suite: YAML
    detail:
      - meaning:
          - Y: Yelling
          - A: At
          - M: My
          - L: Laptop

A query string demo/configuration/detail/0/meaning will return one dictionary item with "meaning" as the key and a list of 4 items as the value, i.e:

- meaning:
    - Y: Yelling
    - A: At
    - M: My
    - L: Laptop

3. More is coming soon.

hifiyaml currently provides the following functions:

load, get, dump, drop, modify, next_pos, get_start_pos, text_to_yblock, strip_indentations, strip_leading_empty_lines

More information will be added soon.

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

hifiyaml-0.1.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

hifiyaml-0.1.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file hifiyaml-0.1.1.tar.gz.

File metadata

  • Download URL: hifiyaml-0.1.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for hifiyaml-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0a5ebd4a9cad9aa9942d2b522a858362c8a7614d6aa6e549ad6285354d653f3f
MD5 97e6b36b05b02822b269c93f92b56a99
BLAKE2b-256 f0b4b0ba89cfa7b484be67e5f23a470acb53726025fb39cbf55547d587736652

See more details on using hashes here.

File details

Details for the file hifiyaml-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: hifiyaml-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for hifiyaml-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 986327763760002c711f598990a87e6322b1600cdfee16960c0cd6e8dde6eca3
MD5 ab21fb7730713206a385dd8c6ca12027
BLAKE2b-256 390c4b84ec46f5c754bcd0b197115025fb0d1604b6d6d9e92133114360f8b81e

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