-
Notifications
You must be signed in to change notification settings - Fork 15
/
pyproject.toml
96 lines (86 loc) · 2.81 KB
/
pyproject.toml
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
[build-system]
requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
[project]
name = "syntheseus"
authors = [ # Note: PyPI does not support multiple authors with email addresses included.
{name = "Austin Tripp"}, # [email protected]
{name = "Krzysztof Maziarz"}, # [email protected]
{name = "Guoqing Liu"}, # [email protected]
{name = "Megan Stanley"}, # [email protected]
{name = "Marwin Segler"}, # [email protected]
]
description = "A package for retrosynthetic planning."
readme = "README.md"
requires-python = ">=3.7"
license = {file = "LICENSE"}
dynamic = ["version"]
dependencies = [
"more_itertools", # reaction_prediction
"networkx", # search
"numpy", # reaction_prediction, search
"omegaconf", # reaction_prediction
"rdkit", # reaction_prediction, search
"tqdm", # reaction_prediction
"typing_extensions ; python_version < '3.8'", # for TypedDict and Protocol imports
]
[project.optional-dependencies]
viz = [
"pillow",
"graphviz"
]
dev = [
"pytest",
"pytest-cov",
"pre-commit"
]
chemformer = ["syntheseus-chemformer==0.2.0"]
graph2edits = ["syntheseus-graph2edits==0.2.0"]
local-retro = ["syntheseus-local-retro==0.5.0"]
megan = ["syntheseus-megan==0.1.0"]
mhn-react = ["syntheseus-mhnreact==1.0.0"]
retro-knn = ["syntheseus[local-retro]", "torch-scatter"]
root-aligned = ["syntheseus-root-aligned==0.1.0"]
all-single-step = [
"syntheseus[chemformer,graph2edits,local-retro,megan,mhn-react,retro-knn,root-aligned]"
]
all = [
"syntheseus[viz,dev,all-single-step]"
]
[project.urls]
Documentation = "https://microsoft.github.io/syntheseus"
Repository = "https://github.com/microsoft/syntheseus"
[project.scripts]
syntheseus = "syntheseus.cli.main:main"
[tool.setuptools.packages.find]
# Guidance from: https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
where = ["."]
include = ["syntheseus*"]
exclude = ["syntheseus.tests*"]
namespaces = false
[tool.setuptools.package-data]
"syntheseus" = ["py.typed"]
[tool.setuptools_scm]
[tool.black]
line-length = 100
include = '\.pyi?$'
[tool.mypy]
python_version = 3.9 # pin modern python version
ignore_missing_imports = true
[tool.ruff]
line-length = 100
# Check https://beta.ruff.rs/docs/rules/ for full list of rules
lint.select = [
"E", "W", # pycodestyle
"F", # Pyflakes
"I", # isort
"NPY201", # check for functions/constants deprecated in numpy 2.*
]
lint.ignore = [
# W605: invalid escape sequence -- triggered by pseudo-LaTeX in comments
"W605",
# E501: Line too long -- triggered by comments and such. black deals with shortening.
"E501",
# E741: Do not use variables named 'l', 'o', or 'i' -- disagree with PEP8
"E741",
]