Skip to main content

Python bindings for the Coda configuration format

Project description


Coda

imprint_coda_20260403010920

A compact configuration format designed to be easily read- and writeable. The name comes from music — a coda is the concluding passage that ties a composition together. A .coda file is the single source of truth for configuration.

The above file in JSON:

imprint_coda_20260403010924

What is Coda?

  • Whitespace-sensitive, line-oriented.
  • Every leaf value is a string; interpretation is left to the consumer.
  • Quotes are optional unless a value contains whitespace or syntax characters ({}[]"#).
  • Comments are preserved and attach to the node that follows them.

Coda has three structural constructs: blocks {}, arrays [], and tables (inferred from array headers). For the full language specification, see docs/SPEC.md.


Installation

Python — install the pre-built package from PyPI (includes the compiled native library):

pip install coda-format
import coda

with coda.Doc.parse_file("config.coda") as doc:
    print(doc.root()["key"])

C++ — Coda is a header-only library. Copy or symlink include/coda.hpp and #include it directly — no build step required.

#include "path/to/coda.hpp"

C FFI / other languages — build the shared library with rake build (see Building & testing below).


API documentation

API File
C++ header (include/coda.hpp) docs/API-CPP.md
Python bindings (bindings/python/coda.py) docs/API-PYTHON.md
C FFI (ffi/coda_ffi.h) docs/API-C-FFI.md

Building & testing

This repo is built and tested via rake.

rake generate     # regenerate include/coda.hpp (requires quom)
rake build        # build host shared library (libcoda_ffi.so)
rake cross-all    # cross-compile for all supported targets
rake test         # run all tests
rake test-cpp
rake test-c-ffi
rake test-py-ffi

Cross-compiled FFI artifacts are placed under dist/<target>/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

coda_format-2.1.0-py3-none-win_arm64.whl (338.8 kB view details)

Uploaded Python 3Windows ARM64

coda_format-2.1.0-py3-none-win_amd64.whl (378.1 kB view details)

Uploaded Python 3Windows x86-64

coda_format-2.1.0-py3-none-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

coda_format-2.1.0-py3-none-musllinux_1_2_aarch64.whl (2.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

coda_format-2.1.0-py3-none-manylinux_2_17_x86_64.whl (2.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

coda_format-2.1.0-py3-none-manylinux_2_17_aarch64.whl (2.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

File details

Details for the file coda_format-2.1.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: coda_format-2.1.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 338.8 kB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coda_format-2.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 35daafb5daab1886b1dfb0267a2e0533b4a6464b3ba82f21476fb5b67149421e
MD5 878827f2898a5b9f9fea1b88ffdd9c09
BLAKE2b-256 e804a26e22ab9713ea094b70f6b5d887fc71f4f25d31652dd9a2fbda04be15d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-win_arm64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coda_format-2.1.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: coda_format-2.1.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 378.1 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coda_format-2.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 644486f4ffcbb31dbb586d6a2e1b1acd64087ae9e92878f1b531e96ef6a0041a
MD5 bce517108cbded97b2505a0e2b28ac03
BLAKE2b-256 a62f795aedd09d364a13558d7745b9ea179f621c07582674c074ed72a398485c

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-win_amd64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coda_format-2.1.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c937638c8b49354debb1f47ad655d8e9b691d6e32293aadcbd34b797ccf360f2
MD5 b837e31f8129652b4d956ecb3f986e1c
BLAKE2b-256 ea5c1fdcce539a1d54b1feeed256f6f2b0533d4b48304c3b8859ae5663c7f0b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coda_format-2.1.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aafe4c9b23b6345429dd1b79ec756b4c1324d91fceadf133e07a58d38f58cac8
MD5 f6384a98075eae052c60ba66bf613b7f
BLAKE2b-256 168cba1a5db863228e619ac3d9c3bff1e87ab4eaae6e0dce789d6057ca733a5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coda_format-2.1.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0f88152c75b57ac2023067832d0e0981ba730b9928b7b6c1a8ad6c359816835e
MD5 342bca1d186a83099abe4954ca66c243
BLAKE2b-256 8c78648370c663be80ac3595176bc1ebc9442a49d41cd35ba0409b19ec620588

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coda_format-2.1.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d3d7c7650e795b7a3b17937df326183d90dfff124b4f9e3926190a55752775a1
MD5 1c0b59c22f9f8ae3b466a613f34c96d7
BLAKE2b-256 e66e1ebd66cd1287ba5d0701d01d3e883a744bceae064ad5d6e5957f0b411a1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.0-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on zane-lang/coda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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