Skip to main content

An extensible config file format

Project description

yay ain’t YAML

yay is a configuration file format built on top of YAML based on our experience with the ConfigParser extensions buildout uses. It adds overlays (one config file including and extending another) and variables.

Consider a config file that looks something like this:

foo:
    bar:
        baz:
            - 1
            - 2
            - 3
    qux: wibble.wobble
    quux: wobble

goo:
    bar:
        baz:
            - 1
            - 2
            - 3
            - 4
    qux: wibble.cobble
    quux: cobble

hoo:
    bar:
        baz:
            - 1
            - 3
    qux: wibble.yobble
    quux: yobble

With yay, this might look like this:

foo:
    bar:
        baz:
            - 1
            - 2
            - 3
    qux: wibble.{:quux}
    quux: wobble

goo.copy: foo
goo:
    bar:
        baz.append:
            - 4
    quux: cobble

hoo.copy: foo
hoo:
    bar:
        baz.remove:
            - 2
    quux: yobble

Using yay

To load yay config from a string you can use the ‘load’ function:

>>> from yay import load
>>> load("""
... foo:
...     bar: 1
... """)
{"foo": {"bar": 1}}

If you want to load from a URI (file:// and http:// are supported) then use ‘load_uri’:

>>> from yay import load_uri
>>> load_uri("/etc/someconfig.yay")
{"foo": {"bar": 1}}

The return value in both cases is a standard python dictionary.

Changelog

0.0.0

This is a pre-alpha release to experiment with what we can and can’t do.

Features

  • New PyYAML Loader subclass for getting ordered maps without ugly !!omap markup

  • Resolves {} markup within YAML nodes

  • Lazily evaluates .copy, .append and .remove instructions

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

yay-0.0.1.tar.gz (43.3 kB view details)

Uploaded Source

File details

Details for the file yay-0.0.1.tar.gz.

File metadata

  • Download URL: yay-0.0.1.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for yay-0.0.1.tar.gz
Algorithm Hash digest
SHA256 59b97e386fa1f1ce0982ef1aa7a153e6685e5ad33b50212b6cc707a18efe1159
MD5 6c6fe3dcc9ec59974ea2df5c8d79ab11
BLAKE2b-256 660b95952c790532538a9435bc0b67e5160170a271b859d65312a90691cf54ca

See more details on using hashes here.

Provenance

Supported by

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