[build-system]
requires = ["setuptools >= 61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "boltz"
version = "2.2.1"
requires-python = ">=3.10,<3.13"
description = "Boltz"
readme = "README.md"
dependencies = [
"torch>=2.2",
"numpy>=1.26,<2.0",
"hydra-core==1.3.2",
"pytorch-lightning==2.5.0",
"rdkit>=2024.3.2",
"dm-tree==0.1.8",
"requests==2.32.3",
"pandas>=2.2.2",
"types-requests",
"einops==0.8.0",
"einx==0.3.0",
"fairscale==0.4.13",
"mashumaro==3.14",
"modelcif==1.2",
"wandb==0.18.7",
"click==8.1.7",
"pyyaml==6.0.2",
"biopython==1.84",
"scipy==1.13.1",
"numba==0.61.0",
"gemmi==0.6.5",
"scikit-learn==1.6.1",
"chembl_structure_pipeline==1.2.2",
]
[project.scripts]
boltz = "boltz.main:cli"
[project.optional-dependencies]
lint = ["ruff"]
test = ["pytest", "requests"]
cuda = [
"cuequivariance_ops_cu12>=0.5.0",
"cuequivariance_ops_torch_cu12>=0.5.0",
"cuequivariance_torch>=0.5.0",
]
[tool.ruff]
src = ["src"]
extend-exclude = ["conf.py"]
target-version = "py39"
lint.select = ["ALL"]
lint.ignore = [
"COM812",
"ISC001",
"ANN101",
"RET504",
"S101",
"D100",
"D104",
"PT001",
"PT004",
"PT005",
"PT023",
"FBT001",
"FBT002",
"PLR0913",
]
[tool.ruff.lint.per-file-ignores]
"**/__init__.py" = [
"F401",
"F403",
]
"docs/**" = [
"INP001",
]
"scripts/**" = [
"INP001",
]
[tool.ruff.lint.pyupgrade]
keep-runtime-typing = true
[tool.ruff.lint.pydocstyle]
convention = "numpy"
[tool.pytest.ini_options]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"regression",
]