Skip to content

Commit 0d43e53

Browse files
committed
switch build system to use pyproject
1 parent d7aa46f commit 0d43e53

File tree

2 files changed

+195
-185
lines changed

2 files changed

+195
-185
lines changed

pyproject.toml

+195-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,198 @@
1+
[project]
2+
name = "gala"
3+
authors = [
4+
{name = "Adrian Price-Whelan", email = "[email protected]"},
5+
]
6+
description = "Galactic dynamics in Python"
7+
readme = "README.rst"
8+
requires-python = ">=3.9"
9+
keywords = ["astronomy", "dynamics"]
10+
license = {file = "LICENSE"}
11+
classifiers = [
12+
"Development Status :: 5 - Production/Stable",
13+
"License :: OSI Approved :: MIT License",
14+
"Programming Language :: Python",
15+
"Topic :: Scientific/Engineering :: Astronomy"
16+
]
17+
dependencies = [
18+
"numpy>=1.20",
19+
"scipy>=1.8",
20+
"astropy>=5.0",
21+
"pyyaml",
22+
"cython>=0.29"
23+
]
24+
dynamic = ["version"]
25+
26+
[project.urls]
27+
Documentation = "https://gala.adrian.pw"
28+
Repository = "https://github.com/adrn/gala.git"
29+
30+
[project.optional-dependencies]
31+
shared = [
32+
"matplotlib",
33+
"numexpr",
34+
"h5py",
35+
"tqdm",
36+
]
37+
test = [
38+
"gala[shared]",
39+
"pytest",
40+
"pytest-astropy",
41+
]
42+
extra = [
43+
"galpy",
44+
"sympy",
45+
"twobody",
46+
]
47+
docs = [
48+
"gala[shared,extra]",
49+
"numpydoc",
50+
"IPython",
51+
"nbsphinx",
52+
"ipython_genutils",
53+
"pydata_sphinx_theme",
54+
"sphinx",
55+
"sphinxcontrib-bibtex",
56+
"sphinx-astrorefs",
57+
"sphinx_automodapi",
58+
"sphinx_astropy",
59+
"rtds_action",
60+
"cmastro",
61+
"requests"
62+
]
63+
tutorials = [
64+
"gala[shared,extra]",
65+
"cmastro",
66+
"IPython",
67+
"nbconvert",
68+
"ipython_genutils",
69+
"jupyter_client",
70+
"ipykernel",
71+
"jupytext",
72+
"pyia",
73+
"astroquery"
74+
]
75+
176
[build-system]
77+
requires = [
78+
"setuptools>=42",
79+
"wheel",
80+
"setuptools_scm",
81+
"extension-helpers",
82+
"oldest-supported-numpy",
83+
"cython"
84+
]
85+
build-backend = "setuptools.build_meta"
86+
87+
[tool.setuptools.packages.find]
88+
where = ["."]
89+
include = ["gala"]
90+
91+
[tool.setuptools.package-data]
92+
"*" = ["*.c"]
93+
"gala" = ["extra_compile_macros.h", "cconfig.pyx", "*.c"]
94+
"gala.coordinates.tests" = ["*.txt", "*.npy", "SgrCoord_data", "*.csv"]
95+
"gala.dynamics" = ["*/*.pyx", "*/*.pxd", "*/*.h", "nbody/nbody_helper.h"]
96+
"gala.integrate" = [
97+
"*/*.pyx",
98+
"*/*.pxd",
99+
"cyintegrators/*.c",
100+
"cyintegrators/dopri/*.c",
101+
"cyintegrators/dopri/*.h"
102+
]
103+
"gala.potential" = [
104+
"src/funcdefs.h",
105+
"potential/src/cpotential.h",
106+
"frame/src/cframe.h",
107+
"*/*.pyx",
108+
"*/*.pxd",
109+
"scf/tests/data/*",
110+
"potential/tests/*.yml",
111+
"potential/tests/*.pot",
112+
"potential/tests/*.fits"
113+
]
114+
115+
[tool.pytest]
116+
testpaths = ["gala", "docs"]
117+
astropy_header = true
118+
doctest_plus = "enabled"
119+
text_file_format = "rst"
120+
addopts = ["--doctest-rst"]
121+
norecursedirs = [
122+
"docs/tutorials/*",
123+
"docs/_*"
124+
]
125+
doctest_norecursedirs = [
126+
"docs/tutorials/*",
127+
"docs/_*"
128+
]
129+
130+
[tool.coverage.run]
131+
omit = [
132+
"gala/_astropy_init*",
133+
"gala/conftest*",
134+
"gala/cython_version*",
135+
"gala/setup_package*",
136+
"gala/*/setup_package*",
137+
"gala/*/*/setup_package*",
138+
"gala/tests/*",
139+
"gala/*/tests/*",
140+
"gala/*/*/tests/*",
141+
"gala/version*",
142+
"gala/dynamics/_genfunc/*",
143+
"gala/coordinates/poincarepolar.py",
144+
"gala/coordinates/velocity_frame_transforms.py",
145+
"*/gala/_astropy_init*",
146+
"*/gala/conftest*",
147+
"*/gala/cython_version*",
148+
"*/gala/setup_package*",
149+
"*/gala/*/setup_package*",
150+
"*/gala/*/*/setup_package*",
151+
"*/gala/tests/*",
152+
"*/gala/*/tests/*",
153+
"*/gala/*/*/tests/*",
154+
"*/gala/version*",
155+
"*/gala/dynamics/_genfunc/*",
156+
"*/gala/coordinates/poincarepolar.py",
157+
"*/gala/coordinates/velocity_frame_transforms.py",
158+
]
159+
160+
[tool.coverage.report]
161+
exclude_lines = [
162+
# Have to re-enable the standard pragma
163+
"pragma: no cover",
164+
# Don't complain about packages we have installed
165+
"except ImportError",
166+
# Don't complain if tests don't hit assertions
167+
"raise AssertionError",
168+
"raise NotImplementedError",
169+
# Don't complain about script hooks
170+
"def main\\(.*\\):",
171+
# Ignore branches that don't pertain to this version of Python
172+
"pragma: py{ignore_python_version}",
173+
# Don't complain about IPython completion helper
174+
"def _ipython_key_completions_"
175+
]
176+
177+
[tool.black]
178+
line-length = 88
179+
target-version = ["py310"]
180+
181+
[tool.isort]
182+
profile = "black"
183+
multi_line_output = 3
184+
include_trailing_comma = true
185+
force_grid_wrap = 0
186+
use_parentheses = true
187+
ensure_newline_before_comments = true
188+
line_length = 88
2189

3-
requires = ["setuptools",
4-
"setuptools_scm",
5-
"wheel",
6-
"extension-helpers",
7-
"oldest-supported-numpy",
8-
"cython"]
190+
[tool.ruff]
191+
line-length = 88
192+
select = ["E", "F"]
193+
force-exclude = true
9194

10-
build-backend = 'setuptools.build_meta'
195+
[tool.ruff.per-file-ignores]
196+
"__init__.py" = ["F401", "F403"]
197+
"test*.py" = ["F841"]
198+
"docs/tutorials/*" = ["E703"]

setup.cfg

-178
This file was deleted.

0 commit comments

Comments
 (0)