mirror of
https://github.com/RosettaCommons/foundry.git
synced 2026-06-04 13:24:22 +08:00
202 lines
4.8 KiB
TOML
202 lines
4.8 KiB
TOML
[project]
|
|
name = "rc-foundry"
|
|
dynamic = ["version"]
|
|
description = "Shared utilities and training infrastructure for biomolecular structure prediction models."
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
authors = [
|
|
{ name = "Institute for Protein Design", email = "contact@ipd.uw.edu" },
|
|
]
|
|
license = { file = "LICENSE.md" }
|
|
|
|
classifiers = [
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"Natural Language :: English",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Operating System :: MacOS",
|
|
"Operating System :: Microsoft :: Windows",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
"License :: OSI Approved :: BSD License",
|
|
]
|
|
dependencies = [
|
|
# ... configuration & CLI
|
|
"rootutils>=1.0.7,<1.1",
|
|
"hydra-core>=1.3.0,<1.4",
|
|
"environs>=11.0.0,<12",
|
|
# ... logging
|
|
"wandb>=0.15.10,<1",
|
|
"rich>=13.9.4",
|
|
# ... typing & documentation
|
|
"jaxtyping>=0.2.17,<1",
|
|
"beartype>=0.18.0,<1",
|
|
"typer>=0.20.0,<1",
|
|
# ... ml tools (core)
|
|
"torch>=2.2.0,<3",
|
|
"lightning>=2.5.0",
|
|
"loralib>=0.1.1",
|
|
"einops>=0.8.0,<1",
|
|
"einx>=0.1.0,<1",
|
|
"opt_einsum>=3.4.0,<4",
|
|
"dm-tree>=0.1.6,<1",
|
|
"zstandard",
|
|
"pandas",
|
|
# "biotite",
|
|
"atomworks[ml]>=2.1.1",
|
|
"ipykernel>=6.31.0",
|
|
"assertpy",
|
|
"toolz",
|
|
]
|
|
|
|
|
|
[project.optional-dependencies]
|
|
rfd3 = [
|
|
"pydantic>=2.8",
|
|
]
|
|
rf3 = [
|
|
"cuequivariance_ops_cu12>=0.6.1; sys_platform == 'linux'",
|
|
"cuequivariance_ops_torch_cu12>=0.6.1; sys_platform == 'linux'",
|
|
"cuequivariance_torch>=0.6.1; sys_platform == 'linux'",
|
|
]
|
|
all = [
|
|
"rc-foundry[rfd3]",
|
|
"rc-foundry[rf3]",
|
|
]
|
|
dev = [
|
|
# Linters & formatters
|
|
"assertpy",
|
|
"ruff==0.8.3",
|
|
"ipdb",
|
|
# Debugger/interactive
|
|
"debugpy>=1.8.5,<2",
|
|
"ipykernel>=6.29.4,<7",
|
|
# Testing tools
|
|
"pytest>=8.2.0,<9", # testing framework
|
|
"pytest-testmon>=2.1.1,<3", # run only tests related to changed code
|
|
"pytest-xdist>=3.6.1,<4", # run tests in parallel
|
|
"pytest-dotenv>=0.5.2,<1", # load environment variables from .env file
|
|
"pytest-cov>=4.1.0,<5", # generate coverage report
|
|
"pytest-benchmark>=5.0.0,<6", # benchmark tests for speed
|
|
"atomworks[ml,dev,openbabel]>=2.1.1",
|
|
"pre-commit"
|
|
]
|
|
[project.scripts]
|
|
rf3 = "rf3.cli:app"
|
|
rfd3 = "rfd3.cli:app"
|
|
mpnn = "mpnn.inference:main"
|
|
foundry = "foundry_cli.download_checkpoints:app"
|
|
|
|
# Build settings ----------------------------------------------------------------------
|
|
[build-system]
|
|
requires = [
|
|
"hatchling",
|
|
"hatch-vcs == 0.4",
|
|
]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.version]
|
|
source = "vcs"
|
|
fallback-version = "0.0.0"
|
|
local-scheme = "no-local-version"
|
|
|
|
[tool.hatch.build.hooks.vcs]
|
|
version-file = "src/foundry/version.py"
|
|
tag-pattern = "^v(?P<version>.*)$"
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = [
|
|
"src/foundry",
|
|
"src/foundry_cli",
|
|
"models/rf3/src/rf3",
|
|
"models/rfd3/src/rfd3",
|
|
"models/mpnn/src/mpnn",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
"models/rfd3/configs" = "rfd3/configs"
|
|
"models/rf3/configs" = "rf3/configs"
|
|
|
|
# Formatting & linting settings -------------------------------------------------------
|
|
[tool.ruff]
|
|
line-length = 88
|
|
indent-width = 4
|
|
target-version = "py310"
|
|
exclude = [
|
|
".bzr",
|
|
".direnv",
|
|
".eggs",
|
|
".git",
|
|
".git-rewrite",
|
|
".hg",
|
|
".ipynb_checkpoints",
|
|
".mypy_cache",
|
|
".nox",
|
|
".pants.d",
|
|
".pyenv",
|
|
".pytest_cache",
|
|
".pytype",
|
|
".ruff_cache",
|
|
".svn",
|
|
".tox",
|
|
".venv",
|
|
".vscode",
|
|
"__pypackages__",
|
|
"_build",
|
|
"buck-out",
|
|
"build",
|
|
"dist",
|
|
"node_modules",
|
|
"site-packages",
|
|
"env",
|
|
".venv",
|
|
"venv",
|
|
"*.ipynb",
|
|
"dev.py",
|
|
"archive",
|
|
]
|
|
|
|
[tool.ruff.format]
|
|
# Like Black, use double quotes for strings.
|
|
quote-style = "double"
|
|
|
|
# Like Black, indent with spaces, rather than tabs.
|
|
indent-style = "space"
|
|
|
|
# Like Black, respect magic trailing commas.
|
|
skip-magic-trailing-comma = false
|
|
|
|
# Like Black, automatically detect the appropriate line ending.
|
|
line-ending = "auto"
|
|
|
|
# Enable auto-formatting of code examples in docstrings. Markdown,
|
|
# reStructuredText code/literal blocks and doctests are all supported.
|
|
docstring-code-format = true
|
|
docstring-code-line-length = 88
|
|
|
|
[tool.ruff.lint]
|
|
# Allow unused variables when underscore-prefixed.
|
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
# Sort imports
|
|
extend-select = ["I", "F401"]
|
|
|
|
ignore = [
|
|
"F722", # for jaxtyping shape annotation
|
|
"F821", # temporary to avoid jaxtyping warnings, see: https://github.com/astral-sh/ruff/issues/17386
|
|
"E741", # enable us to use variables like "L"
|
|
]
|
|
|
|
[tool.pyright]
|
|
typeCheckingMode = "off"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"build>=1.3.0",
|
|
"hatchling>=1.28.0",
|
|
]
|