-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathpyproject.toml
More file actions
183 lines (170 loc) · 5.34 KB
/
pyproject.toml
File metadata and controls
183 lines (170 loc) · 5.34 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "Auto3D"
version = "3.0.0"
description = "Generating Low-energy 3D Conformers from SMILES/SDF"
readme = "README.md"
license = {text = "MIT"}
authors = [
{name = "Zhen Liu", email = "liu5@andrew.cmu.edu"},
{name = "Tetiana Zubatiuk", email = "tetiana@zubatyuk.com"},
{name = "Adrian Roitberg", email = "roitberg@ufl.edu"},
{name = "Olexandr Isayev", email = "olexandr@olexandrisayev.com"},
]
maintainers = [
{name = "Olexandr Isayev", email = "olexandr@olexandrisayev.com"},
]
keywords = [
"chemistry",
"molecular-dynamics",
"conformer-generation",
"neural-network-potentials",
"cheminformatics",
"drug-discovery",
]
requires-python = ">=3.10"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Chemistry",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Typing :: Typed",
]
dependencies = [
"tqdm>=4.60.0",
"psutil>=5.8.0",
"Send2Trash>=1.8.0",
"pyyaml>=6.0",
"numpy>=1.21.0",
"pandas>=1.3.0",
"rdkit>=2022.9.5",
"torch>=2.0.0",
"typer>=0.12.0",
"rich>=13.0.0",
]
[project.optional-dependencies]
ani = [
"torchani>=2.2",
]
ase = [
"ase>=3.22.1",
]
dev = [
"pytest>=7.0",
"pytest-cov>=4.0",
"mypy>=1.0",
"ruff>=0.1.0",
"pre-commit>=3.0",
]
docs = [
"sphinx>=7.0",
"sphinx-rtd-theme>=1.3.0",
"nbsphinx>=0.9.0",
"myst-parser>=2.0",
]
all = [
"Auto3D[ani,ase,dev,docs]",
]
[project.scripts]
auto3d = "Auto3D.auto3Dcli:cli"
[project.urls]
Homepage = "https://github.com/isayevlab/Auto3D_pkg"
Documentation = "https://auto3d.readthedocs.io"
Repository = "https://github.com/isayevlab/Auto3D_pkg"
"Bug Tracker" = "https://github.com/isayevlab/Auto3D_pkg/issues"
Changelog = "https://github.com/isayevlab/Auto3D_pkg/releases"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
Auto3D = ["models/*.jpt", "models/*.pt"]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # Pyflakes
"I", # isort
"N", # pep8-naming
"UP", # pyupgrade
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"SIM", # flake8-simplify
]
ignore = [
"E501", # line too long (handled by formatter)
"E402", # module level import not at top (needed for sys.path manipulation)
"E741", # ambiguous variable name (scientific notation l, I, O)
"N801", # class name should use CapWords (legacy code compatibility)
"N802", # function name should be lowercase (legacy API compatibility)
"N803", # argument name should be lowercase (scientific computing conventions)
"N806", # variable name should be lowercase (scientific computing conventions)
"N815", # mixedCase variable (scientific notation like pKa)
"N999", # invalid module name (Auto3D is the package name)
"SIM102", # nested if (sometimes clearer)
"SIM103", # return condition directly (explicit is clearer)
"SIM105", # contextlib.suppress (try-except-pass is clearer for optional imports)
"SIM108", # ternary operator (less readable for complex conditions)
"SIM110", # any/all (explicit loops can be clearer)
"SIM115", # context manager for open (sometimes not applicable)
"SIM118", # key in dict instead of dict.keys()
"B007", # unused loop variable (intentional in some cases)
"B008", # function call in default argument (torch.device is acceptable)
"B028", # stacklevel in warnings (not always needed)
"B904", # raise from in except (not always needed)
"C403", # set comprehension (list comprehension is often clearer)
"C408", # dict() call (more readable with keyword arguments)
"C416", # list comprehension (intentional in some cases)
"C417", # map usage (sometimes clearer than list comprehension)
"F401", # unused import (optional dependency checks)
"F841", # unused variable (sometimes needed for clarity)
"UP031", # format specifiers (% format is fine for simple cases)
]
[tool.ruff.lint.isort]
known-first-party = ["Auto3D"]
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
ignore_missing_imports = true
exclude = [
"tests/",
"docs/",
"example/",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
addopts = "-v --tb=short -m 'not slow'"
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"gpu: marks tests requiring GPU",
"openeye: marks tests requiring OpenEye license",
]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::UserWarning",
]
[tool.coverage.run]
source = ["src/Auto3D"]
omit = [
"*/tests/*",
"*/__init__.py",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"raise NotImplementedError",
]