Skip to main content

Python bindings for dhall, a functional configuration language

Project description

Dhall logo

Maintenance CI status PyPI version shields.io PyPI downloads

Dhall is a programmable configuration language optimized for maintainability.

You can think of Dhall as: JSON + functions + types + imports

Note that while Dhall is programmable, Dhall is not Turing-complete. Many of Dhall's features take advantage of this restriction to provide stronger safety guarantees and more powerful tooling.

You can try the language live in your browser by visiting the official website:

dhall-python

dhall-python contains Dhall bindings for Python using the rust implementation. It is meant to be used to integrate Dhall into your python applications.

If you only want to convert Dhall to/from JSON or YAML, you should use the official tooling instead; instructions can be found here.

Usage

Install using pip:

pip install dhall

Supports the following:

  • Operating Systems
    • Windows
    • Mac OS
    • Linux (manylinux_2_24_x86_64)
  • Python versions
    • 3.7
    • 3.8
    • 3.9
    • 3.10
    • 3.11

Python 3.5 and 3.6 support is available in older versions of dhall-python.

dhall-python implements a similar API to Python's json module:

>>> import dhall
>>> dhall.dumps({"keyA": 81, "keyB": True, "keyC": "value"})
'{ keyA = 81, keyB = True, keyC = "value" }'
>>> dhall.loads("""{ keyA = 81, keyB = True, keyC = "value" }""")
{'keyA': 81, 'keyB': True, 'keyC': 'value'}

License

dhall-python is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in python-dhall by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

All contributions are welcome! If you spot any bugs, or have any requests, issues and PRs are always welcome.

Developer guide

This project uses poetry for managing the development environment. If you don't have it installed, run

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
export PATH="$HOME/.poetry/bin:$PATH"

The project requires the latest stable version of Rust.

Install it via rustup:

rustup install stable

If you have already installed the stable version, make sure it is up-to-date:

rustup update stable

After that, you can compile the current version of dhall-python and execute all tests and benchmarks with the following commands:

make install
make test

🤫 Pssst!... run make help to learn more.

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

dhall-0.1.16.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

dhall-0.1.16-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file dhall-0.1.16.tar.gz.

File metadata

  • Download URL: dhall-0.1.16.tar.gz
  • Upload date:
  • Size: 32.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.5

File hashes

Hashes for dhall-0.1.16.tar.gz
Algorithm Hash digest
SHA256 a7adb3c7e8324e0ea2d2a76cf7161fb4202b6c1f2f33593f4c8a0a1ce219eabc
MD5 dd914cb7f75789f8fe09e6210c04d32b
BLAKE2b-256 4bd6ee644e18a2bf0d44a97bb18bbdce11179d7a130eb106636074a3aab1d1ae

See more details on using hashes here.

File details

Details for the file dhall-0.1.16-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dhall-0.1.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88af7fe97a60144e7126ce3d480975fe7d6f84b82bf701d1ab034dbf531b04fd
MD5 f95f718dc731ca7251ea3dbc83f92c27
BLAKE2b-256 4b8569126c8b28cf763d7c4b33968252720c578fc7067f08211f461311e9f7e4

See more details on using hashes here.

Supported by

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