# Single runtime/test environment for the benchmark repository.
#
# This file replaces the previous core/optional split. It includes packages
# imported by src/, scripts/, tests/, and the benchmark wrappers around the
# vendored external model repositories. CUDA-specific PyTorch/PyG wheels may
# still need to be selected for the target machine.

# Core benchmark stack
numpy>=1.23,<2
scipy>=1.10,<2
networkx>=2.8,<4
pandas>=1.5,<3
PyYAML>=6
scikit-learn>=1.2,<2
matplotlib>=3.7
rich
tqdm
psutil
packaging
requests
pillow
joblib
cycler
decorator
python-dateutil
six
setuptools

# Tests
pytest

# Molecular data and metrics
rdkit

# PyTorch model wrappers and learned metrics
torch
torchvision
torchaudio
torch-geometric
torch-scatter
torch-sparse
torch-cluster
torch-spline-conv
pytorch-lightning>=1.8,<3
torchmetrics
tensorboard
tensorboardX

# Hydra/Lightning experiment configuration
hydra-core==1.3.2
omegaconf>=2.3
wandb

# External wrapper support packages
easydict
imageio
pyemd
PyGSP
overrides
dill
msgpack
termcolor
guacamol
moses

# Official PolyGraphScore/PGS-JS support
appdirs
loguru
pydantic>=2,<3
numba
tabpfn>=2.0.9
fcd~=1.2.2

# Documentation tooling used by the vendored PolyGraph docs.
mkdocs
mkdocs-material
mkdocstrings
mkdocstrings-python
mkdocs-terminal
jinja2
tabulate

# Upstream-only dependencies that are not part of a normal pip install:
# - graph-tool: install via conda/system packages when running upstream
#   DiGress/ConStruct graph-tool sampling metrics.
# - orbit-count: optional binary dependency for official orbit descriptors;
#   the benchmark scripts can skip orbit descriptors when unavailable.
# - dgl, tensorflow-gan, fcd-torch: needed only for selected upstream scripts
#   or pretrained molecular descriptor workflows.
