# Requirements for the oryza19k access cookbook and the example workflows.
# Install the core; add the optional groups only for the features you use.
#   pip install -r requirements.txt

# ── Core (required for every function) ───────────────────────────────────────
pandas>=1.3
numpy>=1.20

# ── HTTP queries (Ensembl REST, Zenodo) ──────────────────────────────────────
# OPTIONAL: oryza19k falls back to the standard-library urllib if requests is
# absent, so this is a convenience, not a hard requirement.
requests>=2.25

# ── Fast tables (parquet / wide CSV) ─────────────────────────────────────────
# Recommended: needed for source="local" parquet slicing and quick reads of the
# 165k-column matrix.
pyarrow>=10

# ── Trait prediction: predict_trait() ────────────────────────────────────────
# Loads the team's pre-trained .pkl model + imputer from a clone of the repo.
# scikit-learn is required to un-pickle the estimators; xgboost + lightgbm are
# required because the deployed model is an XGBoost+LightGBM ensemble.
joblib>=1.1
scikit-learn>=1.0
xgboost>=1.6
lightgbm>=3.3

# ── Remote VCF streaming: region_genotypes(source="tabix") ───────────────────
# OPTIONAL. pysam has no Windows wheels — on Windows, install the `tabix`/
# `bcftools` CLIs (htslib) instead and oryza19k will shell out to them.
pysam>=0.20 ; platform_system != "Windows"
