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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

coda_format-2.0.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.0.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.0.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: coda_format-2.0.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.0.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 9899b2a75692de622bc886668341f0cf13ef859b18a64a3d3f46de2c6456657d
MD5 a917ec18e609e24549dbe458e194fc17
BLAKE2b-256 70f04be83dc438ca39c69e84e6f9bd7cf3a03a4be334ad3d7b6ea10e35a1eb52

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: coda_format-2.0.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.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ef40dc774d5ae68e640d2bf0a6f6491b6d037d2205c6b8f397719a778564b5ca
MD5 d688db01a38f95e7e84fee029786bc55
BLAKE2b-256 6bfcc917aac0bf403f80366acd4fffb7e705434ad78094feaacbc1789b0ed7b1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.0.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 965e786deae34dcbce322d7ebdb928e5b64c6dbe5cb1b7831a54c5149bc001b9
MD5 00ffceba083200326d7a6bb311187f8c
BLAKE2b-256 83a36cce6a373e01ac9607a2f8163df7078d08c7791b62ed0184562c288d52ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.0.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fad8c7e8409bbc935c0823dff93d5a6a8b64adbb21bff3d5306f73efead709cd
MD5 2fd25a18596a3f2e3d08264bd3631a58
BLAKE2b-256 9daf04ccf3b9b1486a711e7427c545bc1c0707ae9e7b9ba82cdd86886b0a0a37

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.0.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 efc942ea488011c3a5d7ca3bde9915bd4528c78429acb16d9f329e8d48fb09f0
MD5 dea81642effd29009d53fc0b885fe378
BLAKE2b-256 d53b81374799134e6dced8f63daa0d8a5605ebb39c7997dc7e8e9d6fecf752c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coda_format-2.0.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 75f019d7856765fa33171bdfb9b40786dc22e583ce31149401bddf1879c8ab29
MD5 09fb129de2e894fa809330ea06d7bf29
BLAKE2b-256 17d0c13253d2fc13d96ddf85c6d861fe1723de912b653aa2c261881c209eb607

See more details on using hashes here.

Provenance

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