Skip to main content

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

just_dna_compiler-0.6.6.tar.gz (178.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

just_dna_compiler-0.6.6-py3-none-any.whl (184.4 kB view details)

Uploaded Python 3

File details

Details for the file just_dna_compiler-0.6.6.tar.gz.

File metadata

  • Download URL: just_dna_compiler-0.6.6.tar.gz
  • Upload date:
  • Size: 178.3 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

Hashes for just_dna_compiler-0.6.6.tar.gz
Algorithm Hash digest
SHA256 9e7aa666cd5d847744053f395c4b21c6aceab374799a5632d34ca06e7375abed
MD5 f44494dd2a4ca2cb9043dbcbbc993a0a
BLAKE2b-256 1cf24d13f5d914f507663b3a201ec3e9b5d13c5a9d7688f9c35584df6c19a781

See more details on using hashes here.

File details

Details for the file just_dna_compiler-0.6.6-py3-none-any.whl.

File metadata

  • Download URL: just_dna_compiler-0.6.6-py3-none-any.whl
  • Upload date:
  • Size: 184.4 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

Hashes for just_dna_compiler-0.6.6-py3-none-any.whl
Algorithm Hash digest
SHA256 86ca11208bcc2dcdadcc87630a19c0b2c1a6f5ed78484d6b2bc36506ef51c316
MD5 afba6319e78129103dc64cd565da8e75
BLAKE2b-256 8d96a617deefe9b93ce32b3d98f1a5483306b59ece6f2073bbfcab2a66b8e8b9

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.6 This release

2 files

0.6.1

2 files

0.6.0

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 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