forked from biotite-dev/biotite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
140 lines (126 loc) · 3.49 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
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
[project]
name = "biotite"
requires-python = ">=3.10"
description = "A comprehensive library for computational molecular biology"
readme = "README.rst"
authors = [{name = "The Biotite contributors"}]
license = {"file" = "LICENSE.rst"}
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"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",
]
dependencies = [
# Wheels compiled with NumPy 2.0 are backward compatible with NumPy 1.x
# https://numpy.org/devdocs/dev/depending_on_numpy.html#numpy-2-0-specific-advice
"numpy >= 1.25",
"biotraj >= 1.0, < 2.0",
"requests >= 2.12",
"msgpack >= 0.5.6",
"networkx >= 2.0",
"requests >= 2.12",
]
dynamic = ["version"]
[project.optional-dependencies]
test = [
"pytest",
"pytest-codspeed",
]
lint = [
"ruff == 0.6.9"
]
[project.urls]
homepage = "https://www.biotite-python.org"
repository = "https://github.com/biotite-dev/biotite"
documentation = "https://www.biotite-python.org"
[tool.ruff.lint]
# pyflakes, pycodestyle isort and varibale naming
select = ["F", "E", "W", "I", "TID", "N"]
ignore = [
# In docstrings long lines are often intentional
# Most other ocassions are caught by the ruff formatter
"E501",
# Due to constants and class placeholders defined in functions
"N806",
]
[tool.ruff.lint.per-file-ignores]
# Due to `* import` of BCIF encoding
"setup_ccd.py" = ["F405", "F403"]
# Due to imports after the PATH has been adjusted
"doc/conf.py" = ["E402"]
# Due to `from .module import *` imports in `__init__.py` modules
"__init__.py" = ["F403", "TID252"]
# Due to pymol scripts that are evaluated in other example scripts
"doc/examples/**/*_pymol.py" = ["F821"]
# Due to 'Table' class used as parametrized argument in test functions
"benchmarks/sequence/align/benchmark_kmers.py" = ["N803"]
[tool.ruff.lint.flake8-tidy-imports]
ban-relative-imports = "all"
[tool.ruff.lint.isort]
# No separator lines between import sections
no-lines-before = [
"future",
"standard-library",
"third-party",
"first-party",
"local-folder",
]
order-by-type = true
known-first-party = ["biotite"]
[tool.pytest.ini_options]
testpaths = [
"tests",
"benchmarks"
]
python_files = [
"test_*.py",
"benchmark_*.py",
]
python_functions = [
"test_*",
"benchmark_*",
]
filterwarnings = [
# Appears in loading NetCDF trajectory files
"ignore:The 'netCDF4' Python package is not installed.",
"ignore:Input structure has no associated 'BondList'",
]
[tool.hatch.build.targets.sdist]
exclude = [
"tests",
"benchmarks",
"doc",
"environment.yml",
"setup_ccd.py",
# .github, .gitignore, .gitattributes
".git*",
]
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.hooks.vcs]
version-file = "src/biotite/version.py"
[tool.hatch.build.targets.wheel.hooks.cython]
dependencies = ["hatch-cython"]
[tool.hatch.build.targets.wheel.hooks.cython.options]
include_numpy = true
compile_py = false
define_macros = [
["NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION"],
]
[build-system]
requires = [
"hatchling",
"hatch-vcs == 0.4",
"hatch-cython == 0.5",
"numpy >= 2.0",
"cython >= 3.0",
]
build-backend = "hatchling.build"