pandas>=1.5.0
numpy>=1.23.0
plotly>=5.0.0
rich>=12.0.0
typer>=0.7.0
python-dotenv>=1.0.0
langchain>=0.1.0
langchain-community>=0.0.10
langchain-openai>=0.0.5
langchain-aws>=0.1.0
langgraph==0.6.7
openai>=1.0.0
llvmlite>=0.39.0
scipy>=1.10.0
scikit-learn>=1.3.0
anndata>=0.9.0
mudata>=0.2.0
biopython>=1.81
leidenalg>=0.9.0
igraph>=0.10.4
scrublet>=0.2.3
h5py>=3.9.0
tables>=3.8.0
statsmodels>=0.14.0
seaborn>=0.12.0
matplotlib>=3.7.0
kaleido>=0.2.0
openpyxl>=3.1.0
pyarrow>=12.0.0
pyreadr>=0.4.0
requests>=2.31.0
aiofiles>=23.0.0
xmltodict>=0.13.0
boto3>=1.26.0
pypdf2>=3.0.0
beautifulsoup4>=4.12.0
lxml>=4.9.0
fastapi>=0.100.0
uvicorn>=0.23.0
scikit-misc>=0.5.1
python-multipart>=0.0.20
GEOparse
packaging>=25.0
tabulate>=0.9.0
langfuse>=3.2.6
polars>=1.32.3
psutil>=7.0.0
scanpy>=1.11.4
pydeseq2>=0.5.2
prompt-toolkit>=3.0.52
scvi-tools>=1.4.0
torch>=2.0.0
langchain-anthropic>=0.3.20
responses>=0.25.8
nbformat>=5.9.0
papermill>=2.4.0
nbconvert>=7.0.0
jupytext>=1.15.0
docling>=2.60.0
docling-core>=2.50.0
redis>=6.4.0
pysradb>=2.5.1
claude-agent-sdk>=0.1.0
linkup>=0.1.0

[all]
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-xdist>=3.0.0
pytest-asyncio>=0.20.0
black>=23.0.0
isort>=5.12.0
flake8>=6.0.0
pylint>=2.17.0
mypy>=1.0.0
bandit>=1.7.0
pre-commit>=3.0.0
bumpversion>=0.6.0
twine>=4.0.0
build>=0.10.0
mkdocs>=1.5.0
mkdocs-material>=9.0.0
langfuse>=2.0.0
tabulate>=0.9.0

[dev]
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-xdist>=3.0.0
pytest-asyncio>=0.21.0
pytest-mock>=3.10.0
pytest-benchmark>=4.0.0
pytest-timeout>=2.1.0
pytest-html>=3.2.0
pytest-json-report>=1.5.0
factory-boy>=3.2.0
responses>=0.23.0
httpretty>=1.1.4
freezegun>=1.2.0
faker>=19.0.0
moto>=4.1.0
fakeredis>=2.10.0
ftputil>=5.0.4
memory-profiler>=0.60.0
psutil>=5.9.0
black>=23.0.0
isort>=5.12.0
flake8>=6.0.0
pylint>=2.17.0
mypy>=1.0.0
bandit>=1.7.0
ruff>=0.0.300
responses>=0.25.8
pre-commit>=3.0.0
bumpversion>=0.6.0
twine>=4.0.0
build>=0.10.0
mkdocs>=1.5.0
mkdocs-material>=9.0.0
langfuse>=2.0.0
tabulate>=0.9.0
