# SIEVE core dependencies (pinned). All licenses are permissive / commercial-clean.
# See README.md for the full license + data-source declaration.

# --- deterministic science core (required) ---
numpy==2.3.5            # BSD-3-Clause
pandas==2.3.3           # BSD-3-Clause
scipy==1.16.3           # BSD-3-Clause
scikit-learn==1.7.2     # BSD-3-Clause
statsmodels==0.14.5     # BSD-3-Clause
networkx==3.5           # BSD-3-Clause
matplotlib==3.10.6      # PSF (matplotlib license, BSD-compatible)
plotly==6.3.0           # MIT
openpyxl==3.1.5         # MIT
xlrd==2.0.2             # BSD
requests==2.32.5        # Apache-2.0
pydantic==2.12.4        # MIT
PyYAML==6.0.3           # MIT
rdkit==2026.03.3        # BSD-3-Clause  (cheminformatics)

# --- testing ---
pytest>=8.0             # MIT

# --- OPTIONAL enrichment (module degrades gracefully if absent) ---
# gseapy>=1.1            # MIT   (GSEA; SIEVE uses a native hypergeometric ORA fallback)
# admet-ai>=2.0          # MIT   (ML ADMET; SIEVE uses RDKit physchem proxies as fallback)
# reinvent>=4.0          # Apache-2.0 (generative design; SIEVE uses RDKit enumeration fallback)

# --- Web app (EBO-SIEVE `python -m sieve serve`) ---
fastapi>=0.110          # MIT
uvicorn>=0.29           # BSD-3-Clause
python-multipart>=0.0.9 # Apache-2.0  (file uploads)

# --- OPTIONAL LLM / MCP layer (not required for the headless CLI or web app) ---
# Provider adapters are plugins; install only what you use.
# mcp>=1.2              # MIT        (serve SIEVE tools as an MCP server: `python -m sieve mcp`)
# anthropic>=0.40       # MIT        (native Claude adapter — recommended default)
# openai>=1.0           # Apache-2.0 (OpenAI-compatible adapter: Ollama/vLLM/OpenAI/DeepSeek/…)
