Skip to main content

just-dna-format

The declarative schema + integrity contract for just-dna annotation modules: both the authored input DSL and the compiled manifest.json. Dependency-light (Pydantic + cryptography, for Ed25519 signature verification) so it can be shared as the single source of truth by:

  • just-dna-compiler — the reference transform (spec → parquet artifact + manifest);
  • just-dna-pipelines — emits manifest.json when it compiles a module;
  • just-dna-marketplace — indexes, serves, and verifies those manifests;
  • just-dna-agents — authoring support (renders reference.authoring_reference()).

Keeping the contract in one small package prevents the sides from drifting.

What's here

Module Contents
just_dna_format.spec The authored DSL: ModuleSpecConfig, VariantRow, StudyRow, ModuleInfo, Defaults (+ extract_pmids).
just_dna_format.binning The measure→phenotype primitive: MeasureBinRow + Activity/CopyNumber/RepeatAllele/Heteroplasmy rows and validate_bins (0.4).
just_dna_format.pgx PGx star-allele model: HaplotypeRow, AlleleFunctionRow, DiplotypeRow, PharmVariantRow (0.4).
just_dna_format.pgs PgsRow — a curated PGS-Catalog interface with ancestry-validity fields (0.4).
just_dna_format.vocab Shared constrained vocabularies, identifier grammars, and validator helpers.
just_dna_format.derive Legacy state/ClinVar-boolean → 0.3-axis derivations (total, idempotent).
just_dna_format.manifest ModuleManifest + sub-models (Identity, Display, Stats, Compilation, FileEntry, Artifact, Provenance, Signature, GenePanelSpec); read_manifest / write_manifest. SPEC §4.
just_dna_format.integrity sha256_file, artifact_digest (canonical Merkle root), build_artifact, verify_manifest, verify_signature, IntegrityError. SPEC §5.
just_dna_format.signing Ed25519 signing over artifact.digest (key management side).
just_dna_format.aggregate Cross-version log / provenance union helpers.
just_dna_format.reference authoring_reference() / json_schemas() — drift-proof DSL description generated from the live models.
just_dna_format.identity Name/namespace rules, canonical_id, SemVer Version + parse_version, version_from_legacy (vN → N.0.0), latest. SPEC §6.

Usage

from just_dna_format.manifest import ModuleManifest, read_manifest
from just_dna_format.integrity import build_artifact, verify_manifest

# Compiler side: hash outputs and record the digest.
artifact = build_artifact(output_dir, ["weights.parquet", "annotations.parquet", "studies.parquet"])

# Downloader side: verify before installing (raises IntegrityError on any mismatch).
manifest = read_manifest(module_dir / "manifest.json")
verify_manifest(module_dir, manifest)                            # a registry install
verify_manifest(module_dir, manifest, require_marketplace=False)  # a locally-compiled module

Those two calls are different policies, not a strict and a lax mode — pick per install route rather than picking one. The default additionally requires compiled_by == "marketplace-server", so it rejects any module compiled anywhere else, this project's own compiler included (it leaves compiled_by null on purpose). Both check every file hash and the digest in full. compiled_by is an unsigned string written by whoever compiled the module, so it proves nothing on its own. The check that carries weight is a signature verified against a key you pinned in advance: verify_signature(digest, signature, trusted_public_key=...).

All hashes are SHA-256, lowercase hex, prefixed sha256:. The artifact.digest is a Merkle-style root over the canonical file listing — verifying it verifies the whole set and is the version's byte identity: these bytes, from this compiler. The content identity is content_signature, over the authored rows and independent of the reference that resolved them, so a rebuild that moves the digest while leaving the signature still means the data did not change.

Develop

uv sync
uv run pytest -vvv

Metadata

Release files for just-dna-format 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for just-dna-format 0.7.1
File Size Uploaded
just_dna_format-0.7.1.tar.gz 290.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for just-dna-format 0.7.1
File Interpreter ABI Platform
just_dna_format-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 610.8 kB

Release files / just_dna_format-0.7.1.tar.gz

Download URL just_dna_format-0.7.1.tar.gz
Size 290.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0d1eaa3d7e2f5b0af913132313566eb5a11702ff51a3a87fd731bb280925f7c5
BLAKE2b-256 checksum
How to use checksums
be123de25598c72fb381eea0b31034983268d7e23eac3c262320aa1aa84a9082
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / just_dna_format-0.7.1-py3-none-any.whl

Download URL just_dna_format-0.7.1-py3-none-any.whl
Size 319.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
35465f57900efefa98d6a58a8f2555dc72a7aadb96df08922df12cd69f4301eb
BLAKE2b-256 checksum
How to use checksums
3ffe72ae8f812e4258b7ee0722775d68acc903a7edf905510e4f874fe37f9d94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.6

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page