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

Uploaded Python 3Windows ARM64

coda_format-2.2.2-py3-none-win_amd64.whl (378.0 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: coda_format-2.2.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.2.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 e30744cd3d5359250512f5dcc1311bc127fa13e5c41eee9209112a6c41cff29a
MD5 7b877e6777309ee6d317142016998a53
BLAKE2b-256 64ebf15e7ea6be9773ecef93df6ee1b95cf01f9c85ac82cc43cce303c642c0d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: coda_format-2.2.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 378.0 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.2.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e5eb96970c8b62ed41e1378c8a27f38471f640243c8fcfbb105cfa8f835d7d04
MD5 05f10359efa0aeae46544a7b4bf001b8
BLAKE2b-256 96738ebcb4d333457eab994e49b72ad0113276215ce600409a629582ec867057

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.2.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58a16a295d8d6f2e82eebb36f5574eb646410b26e306ce1a827ad2ef2b4f018e
MD5 fdec7513fda9ca0576b471e6ec9b084d
BLAKE2b-256 3b24a37f15c889e391afd137c429fff865e9c12cd2a6d6bf073c5fd63005c175

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.2.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 46624b8a1c58733dc71471e0f271c9636e3fb9af75909eeaff3b34ef31994d70
MD5 17a8d24fde324bd60e22101d2eb5f46b
BLAKE2b-256 b03962bd26855e935531d963c030af9415eae0d7d9c2f92d374314e82db29651

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.2.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fa1e012bd797cbaf2ca483b52204e1ce828c3039367ebfdc08b6b0744f52868c
MD5 affc20e949855919d061f51a19298fe4
BLAKE2b-256 382bfebc685d582104101b6b88991672a8c0fdc29ec0d4d8bdc0c360af1aa6cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.2.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 6bd647835953d80135f5548beab344ea6e649497b81d0b703b49a73bc50f4af1
MD5 99360c8d31524e84a02594964cd5dc11
BLAKE2b-256 753b35feff225723d04e5d3235300e5b18108518a311212c98a2555b0689c71c

See more details on using hashes here.

Provenance

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