File size: 3,426 Bytes
6aab6b3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | [build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"
# [build-system]
# requires = ["setuptools>=68", "setuptools_scm[toml]>=8"]
# build-backend = "setuptools.build_meta"
[project]
name = "boltzgen"
requires-python = ">=3.11"
version = "0.3.2"
readme = { file = "PYPI_DESCRIPTION.md", content-type = "text/markdown" }
description = "Protein design"
dependencies = [
# Add runtime dependencies here
"numpy==2.0.2",
"numba==0.61.0",
"matplotlib",
"hydride",
"biotite",
"pydssp",
"logomaker",
"gemmi>=0.6.5", # Supports both 0.6.x and 0.7.x (see mmcif.py for compatibility layer)
"torch>=2.4.1",
"scikit-learn",
"hydra-core",
"edit_distance",
"pytorch-lightning",
"rdkit",
"pandas",
"pdbeccdutils",
"einx",
"einops",
"mashumaro",
"nvidia-ml-py>=12.535.133",
"cuequivariance_ops_cu12>=0.5.0",
"cuequivariance_ops_torch_cu12>=0.5.0",
"cuequivariance_torch>=0.5.0",
"huggingface_hub",
"biopython",
]
# Enables the usage of setuptools_scm
# [tool.setuptools_scm]
[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = true
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
boltzgen = ["resources/config/**/*"]
[project.scripts]
boltzgen = "boltzgen.cli.boltzgen:main"
[project.optional-dependencies]
lint = ["ruff"]
test = ["pytest"]
doc = []
build = []
dev = [
"redis",
"wandb",
"requests",
"types-requests==2.32.4.*",
"boltzgen[lint]",
"boltzgen[test]",
"boltzgen[doc]",
"boltzgen[build]",
]
[tool.ruff]
src = ["src"]
extend-exclude = ["conf.py"]
target-version = "py38"
lint.select = ["ALL"]
lint.ignore = [
"COM812", # Conflicts with the formatter
"ISC001", # Conflicts with the formatter
"ANN101", # "missing-type-self"
"RET504", # Unnecessary assignment to `x` before `return` statementRuff
"S101", # Use of `assert` detected
"D100", # Missing docstring in public module
"D104", # Missing docstring in public package
"PT001", # https://github.com/astral-sh/ruff/issues/8796#issuecomment-1825907715
"PT004", # https://github.com/astral-sh/ruff/issues/8796#issuecomment-1825907715
"PT005", # https://github.com/astral-sh/ruff/issues/8796#issuecomment-1825907715
"PT023", # https://github.com/astral-sh/ruff/issues/8796#issuecomment-1825907715
"FBT001",
"FBT002",
"PLR0913", # Too many arguments to init (> 5)
"TRY003", # Exception messages
"EM101", # Exception messages
"FA102", # typing
"T201", # Print statements
]
[tool.ruff.lint.per-file-ignores]
"tests/**" = [
"S101", # Use of `assert` detected
"D103", # Missing docstring in public function
]
"**/__init__.py" = [
"F401", # Imported but unused
"F403", # Wildcard imports
]
"docs/**" = [
"INP001", # Requires __init__.py but folder is not a package.
]
"scripts/**" = [
"INP001", # Requires __init__.py but folder is not a package.
]
[tool.ruff.lint.pyupgrade]
# Preserve types, even if a file imports `from __future__ import annotations`(https://github.com/astral-sh/ruff/issues/5434)
keep-runtime-typing = true
[tool.ruff.lint.pydocstyle]
convention = "numpy"
[tool.mypy]
# Functions need to be annotated
disallow_untyped_defs = true
warn_unused_ignores = true
exclude = ["configs/", "build/", "dist/", "docs/", "tests/"]
|