Skip to main content

High-fidelity WYSIWYG YAML parser and emitter that preserves exact formatting

Project description

hifiyaml

High-fidelity YAML parser that preserves formatting.
Original YAML structure and formatting are preserved, including comments, anchors, aliases, etc.
Check wiki at https://github.com/hifiyaml/hifiyaml/wiki

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 the file 'ensbec.yaml'

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. Availabe functions.

hifiyaml currently provides the following functions:

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

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.8.tar.gz (9.2 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.8-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hifiyaml-0.1.8.tar.gz
  • Upload date:
  • Size: 9.2 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.8.tar.gz
Algorithm Hash digest
SHA256 2d732cbef54934985ff260108a321840c317823bb78d776c996a65b0cca4dbcf
MD5 c2159c358a788374696f01f92d8b6a58
BLAKE2b-256 ab471965d28aae84c27f45d83994982c9d3af3a0f8e6665d7a28f14e91c280d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hifiyaml-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 9.8 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ca242a41c3b5c0f5f532f0a0e40ee3dcb40ced116566d7a94d5a534400958f8b
MD5 07dbd8a29ae49601e47985b4f762ca2f
BLAKE2b-256 ce589af2d0f31aaa92c53034198b2ec79630845469cb5d67f53baaed35511cc6

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