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
+
1
76
[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
2
189
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
9
194
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" ]
0 commit comments