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.2-py3-none-win_arm64.whl (338.8 kB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

coda_format-2.1.2-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.2-py3-none-musllinux_1_2_aarch64.whl (2.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

coda_format-2.1.2-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.2-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.2-py3-none-win_arm64.whl.

File metadata

  • Download URL: coda_format-2.1.2-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.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 874cab1fa28efc80efd09a69074667dcd550f2577d99f35e7d66ef0a9e0cee33
MD5 4c1bb4e5ac0caa55231f677e2c7bf0fd
BLAKE2b-256 e7325c50ea545db7984f479ecd76409026b08b368999e372797123675fc2e35b

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: coda_format-2.1.2-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.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cbaf87ef3c93aa3b609fdc145cd4e3d22779898cd792e07ce0520904186b5265
MD5 6a94f8286ec2981de81eb561de815676
BLAKE2b-256 177f82c265c4fd0859d58481febbea33e9ecf4706f51ee6ada26a5fc5560e0f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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.2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ff18bf2a90e872cb302df625e643718e95fd2bf18f56c45c9f9d6c6f4d2ab1ab
MD5 bd260d439af4b5ba131aaca3232f3993
BLAKE2b-256 3d51b3c91e70b26ab898135b30d6cb5305e18882c45bb7a85ddf3f91dde9ce02

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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.2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9316d626236ed12fb8323d14479df7d8a10980a36d8e495f901511c20e92ac2c
MD5 d775b828e8f35ce3899ae6905089f74c
BLAKE2b-256 8bef6531f098ccc3f4ff6078ed44d78469a5fdf67686851e0aacb0501d793259

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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.2-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 94288dd67e286aedd51a51c5e97ba8832bdce8218a546be6f3236716acd7081b
MD5 f23bc3d234cc254eb67637496b145cbb
BLAKE2b-256 1b60d9a0d3b35ba36c4ac17ba7d5fb287f81d426290a685f1dcbdc3b324f9653

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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.2-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for coda_format-2.1.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 9ca6e132dcaea98725cbd3936d67663f41be6560eb501a5f60132e7b7426d4fb
MD5 405f054d15e6c98a987d5508d1d7cb32
BLAKE2b-256 39def84084a2f7435e92fca452dc9b0a79398b325edf76a97d8107b846d45bcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for coda_format-2.1.2-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