numpy>=2.0.0,<3.0.0
# Shared test-data downloads use verified cache hits, explicit roots and bounded
# HTTP retries via datacache's public API, without fetching during normal tests.
# The 1.11.1 floor is what inspect_files/Cache.inspect need: download_test_data
# reports a per-file status (available/missing/corrupt/inaccessible) instead of
# only raising, and 1.11.1 is the release that shortens over-long cache names.
datacache>=1.14.0,<2.0.0
# Public data acquisition and original-read extraction for the osteosarc corpus.
# 0.15.6 coordinates runtime and distribution versions for evidence provenance.
osteosarc>=0.15.6,<0.16
pandas>=3.0.0,<4.0.0
# Metadata-only Transcript/Gene restore defers annotation DB access (#563).
# 2.29.0 exposes resolved assembly identity apart from the cache/display label.
pyensembl>=2.29.0,<3.0.0
# 10.4.1 ranks structural candidate sets that list themselves as candidates
# without recursing, which DNA fallback relies on when comparing fusion outcomes.
# Varcode 10 also supplies candidate-local SV sequence-change checks, including
# partial proteins and uncertain selenocysteine decoding.
varcode>=10.20.2,<11.0.0
# 1.62.2 adds occurrence-scoped RNA support for exported SV ORF placements.
# 1.61 adds reference-frame ncORF reconstruction. The Isovar input adapters
# validate each supported result schema; producer evidence is retained losslessly.
# 1.76 exposes shared read policies for live viral and antigen-isoform sources.
isovar>=1.76.0,<2.0.0
# 3.33.5 makes bundled YAML loading independent of the host locale.
mhcgnomes>=3.64.4,<4.0.0
# 4.0.0 makes PeptideInput the single cleavage record, removing CleavageInput.
# The report and processing adapters below use that record directly.
mhctools>=4.2.0,<5.0.0
# 5.82.0 is the first release compatible with Osteosarc 0.14. It includes
# context-correct cached scans, presentation metrics and conflict checks in
# the DSL used for scoring. Keep these floors aligned when Osteosarc moves.
# Generalized input persistence uses Topiary's typed table codec and public
# source combination/ranking APIs, verified together against 5.86.2.
# Named selection policies require occurrence evaluation, named criteria and
# retained audit decisions, released together in 5.90.0.
# Published comparison policies need report-wide DSL normalization and ranking.
# Native Exacto/mixed report replay requires typed scalar/structured annotations
# and nullable integer/boolean cells. Public occurrence/reconciliation and
# additive rescoring APIs are consumed together; 5.93.2 fixes that replay.
# 5.93.3 accepts Osteosarc 0.15 alongside 0.14, enabling Isovar 1.45.
# 5.93.6 preserves saved DSL grouping, negative transform bounds and scalar
# literal compatibility (openvax/topiary#473, #475, #481; vaxrank#582).
# 5.94.3 infers delimiters from header-only and single-feature expression
# tables, required by expression-first CTA admission (topiary#486).
# 5.94.4 preserves categorical predicates and escaped strings in saved policies.
# 5.95.0 adds the optional foreignness DSL and preserves measurement context
# through every cache path. Keep the consumer coordinated with that API.
# 5.95.1 restores typed native TSV/CSV replay under pandas 3.1 (topiary#507).
# 5.104.0 supplies the public model inventory and correct unknown-length
# handling used by effective prediction-policy reports (vaxrank#718).
# 5.106.0 derives current inference flanks from exact source windows while
# preserving historical invocation metadata (openvax/topiary#545; vaxrank#721).
# 5.106.1 applies an explicitly selected genotype to contextual protein scans,
# required when antigen/CTA caches contain other patients (topiary#547; vaxrank#725).
topiary>=5.106.1,<6.0.0
roman
jinja2>=3.1
weasyprint>=62.0
# Vector figures remain the source of truth; CairoSVG provides explicit,
# resolution-controlled PNG export for publication and slide workflows.
cairosvg>=2.7,<3.0
pdfkit  # legacy: needs wkhtmltopdf, use --pdf-backend=pdfkit to enable
openpyxl
xvfbwrapper>=0.2.34  # legacy: only needed with --pdf-backend=pdfkit on headless Linux
astropy>=6.1
platformdirs
msgspec>=0.18.6,<1.0.0
dnachisel>=3.2.0,<4.0.0
serializable>=1.1.0,<2.0.0
# OncoRef supplies human CTA identity and species-scoped evidence snapshots.
# Historical human admission still uses the annotation-bound identity contract.
# The reviewed compatibility window permits coordinated consumer releases:
# PirlyGenes 6.0.18 pins 1.19.2, while 6.0.19 targets 1.23.0. Both retain
# the legacy annotation-bound admission and exclusion APIs. Results retain
# their actual owner/data/snapshot versions; new CTA nomination is not an
# automatic vaccine-admission policy change (#687). The opt-in common restriction
# policy requires 1.23.1's sequence-backed shared snapshot; older supported
# environments retain their existing policy and receive an explicit capability
# error if they request the new one. The cta extra declares that feature's floor
# so a fresh install resolves a compatible Topiary rather than losing capability
# through PirlyGenes' exact owner pin (pirl-unc/pirlygenes#656).
oncoref>=1.19.2,<=1.23.1
# 0.42.6 accepts canonical PyEnsembl metadata for the pinned Ensembl builder.
orfdata>=0.42.6,<1.0.0
# vaxrank.peptide_context imports packaging.version for PEP 440 ordering
# of predictor_version strings. Always pulled in transitively via setuptools
# / pip, but pinned explicitly so minimal / --no-deps installs don't break
# at import time.
packaging>=21.0
