just-dna-compiler
The reference compiler for just-dna annotation modules: it turns an authored spec directory into
a deployable parquet artifact plus a manifest.json with integrity digests.
A module composes from optional table kinds: the only always-present file is module_spec.yaml.
A SNP module adds variants.csv (+ studies.csv, required whenever variants are present) → the
weights / annotations / studies parquets; a PGx / PharmGKB / PRS module instead carries only
its own table(s) (diplotypes.csv, pharm_variants.csv, pgs.csv, …) and needs no variants.csv.
Each present CSV materializes to its own parquet, so the artifact is the set of parquets the module
actually uses (up to twelve), not a fixed three.
It consumes the schema/contract from just-dna-format and is the shared transform
called by both just-dna-pipelines (local compile) and just-dna-marketplace (server-side
recompile on publish).
from just_dna_compiler.compiler import validate_spec, compile_module, reverse_module
validate_spec(spec_dir) # -> ValidationResult (genes/categories lists)
compile_module(spec_dir, out_dir, # -> CompilationResult (+ manifest.json written)
strict=False, # True: refuse a partial artifact
compiled_by="marketplace-server")
reverse_module(out_dir, spec_again) # -> Path (the spec DSL, rebuilt from the artifact)
Resolution is injected, never fetched (CONSTITUTION Principle 2). Drop a resolution.csv beside
module_spec.yaml — a table of already-resolved facts keyed by variant_key — and the compiler fills
in coordinates and rsIDs from it with no network, no DuckDB and no source convention of its own.
Produce that file with just-dna-enricher (just-dna-enricher enrich spec/). With
nothing injected the compiler skips resolution with a warning rather than downloading anything.
The pre-0.5 compile_module(ensembl_cache=…) DuckDB path still works, is deprecated, and is removed
at 1.0.
Dependencies: just-dna-format, polars, pyyaml, typer — pure-Python and duckdb-free since
0.5, and deliberately no Dagster / LLM SDKs.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file just_dna_compiler-0.6.0.tar.gz.
File metadata
- Download URL: just_dna_compiler-0.6.0.tar.gz
- Upload date:
- Size: 167.0 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b37a96738afe9a43c4a2e2c219bda0833fb911ef3cf34b4f8bc72f71a2b3cb32
|
|
| MD5 |
eab8e495e63998a04c4e985311c8cf30
|
|
| BLAKE2b-256 |
dbcb54df93fc0b5430019df7a5689f2b5d46555df53906918b8dd236384c8589
|
File details
Details for the file just_dna_compiler-0.6.0-py3-none-any.whl.
File metadata
- Download URL: just_dna_compiler-0.6.0-py3-none-any.whl
- Upload date:
- Size: 173.1 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e39a62f475650528647eddf115dc883c727677eb2c8096223ce24c452a4c954d
|
|
| MD5 |
a2476389067ae24f8dbfb4619e054cb5
|
|
| BLAKE2b-256 |
24fbe4e4d215f2de90bb926e05a62964e6d1e838308217b16e0a42d315a1a302
|