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— emitsmanifest.jsonwhen it compiles a module;just-dna-marketplace— indexes, serves, and verifies those manifests;just-dna-agents— authoring support (rendersreference.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)
| File | Size | Uploaded | |
|---|---|---|---|
| just_dna_format-0.7.1.tar.gz | 290.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|