2
2
build-backend = ' mesonpy'
3
3
# Minimum requirements for the build system to execute.
4
4
requires = [
5
- ' meson-python' ,
6
5
' cypari2 >=2.2.1; sys_platform != "win32"' ,
6
+ ' meson-python' ,
7
7
# Exclude 1.12.0 because of https://github.com/sagemath/cysignals/issues/212
8
8
' cysignals >=1.11.2, != 1.12.0' ,
9
9
# Exclude 3.0.3 because of https://github.com/cython/cython/issues/5748
10
10
' cython >=3.0, != 3.0.3' ,
11
11
' gmpy2 ~=2.1.b999' ,
12
+ ' jinja2' ,
12
13
' memory_allocator' ,
13
14
' numpy >=1.25' ,
14
- ' jinja2' ,
15
15
]
16
16
[tool .meson-python .args ]
17
17
# Prevent meson from trying to install the autoconf subprojects
@@ -25,92 +25,92 @@ install = ['--skip-subprojects']
25
25
setup = [' --default-library=static' ]
26
26
27
27
[project ]
28
- name = " sagemath"
29
- description = " Sage: Open Source Mathematics Software: Standard Python Library"
28
+ authors = [
29
+ {
email =
" [email protected] " ,
name =
" The Sage Developers" },
30
+ ]
31
+ classifiers = [
32
+ " Development Status :: 6 - Mature" ,
33
+ " Intended Audience :: Education" ,
34
+ " Intended Audience :: Science/Research" ,
35
+ " License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)" ,
36
+ " Operating System :: MacOS :: MacOS X" ,
37
+ " Operating System :: POSIX" ,
38
+ " Programming Language :: Python :: 3 :: Only" ,
39
+ " Programming Language :: Python :: 3.11" ,
40
+ " Programming Language :: Python :: 3.12" ,
41
+ " Programming Language :: Python :: 3.13" ,
42
+ " Programming Language :: Python :: Implementation :: CPython" ,
43
+ " Topic :: Scientific/Engineering :: Mathematics" ,
44
+ ]
30
45
dependencies = [
31
- ' six >=1.15.0' ,
32
46
' conway-polynomials >=0.8' ,
33
47
' cypari2 >=2.2.1; sys_platform != "win32"' ,
48
+ ' six >=1.15.0' ,
34
49
# Exclude 1.12.0 because of https://github.com/sagemath/cysignals/issues/212
35
50
' cysignals >=1.11.2, != 1.12.0' ,
36
51
' cython >=3.0, != 3.0.3' ,
52
+ ' fpylll >=0.5.9; sys_platform != "win32"' ,
37
53
' gmpy2 ~=2.1.b999' ,
54
+ ' ipykernel >=5.2.1' ,
55
+ ' ipython >=8.9.0' ,
56
+ ' ipywidgets >=7.5.1' ,
57
+ ' jupyter-client' ,
58
+ ' matplotlib >=3.7.0' ,
38
59
' memory_allocator' ,
60
+ ' mpmath >=1.1.0' ,
61
+ ' networkx >=3.1' ,
39
62
' numpy >=1.25' ,
63
+ ' pexpect >=4.8.0' ,
64
+ ' pillow >=7.2.0' ,
65
+ ' platformdirs' ,
40
66
# Issue #30922: pplpy 0.8.4 and earlier do not declare dependencies correctly
41
67
' pplpy >=0.8.6; sys_platform != "win32"' ,
42
68
' primecountpy; sys_platform != "win32"' ,
69
+ ' ptyprocess > 0.5' ,
43
70
' requests >=2.13.0' ,
71
+ ' scipy >=1.11' ,
72
+ ' sphinx >=5.2, <9' ,
73
+ ' sympy >=1.6, <2.0' ,
44
74
# According to https://github.com/python/typing_extensions/blob/main/CHANGELOG.md,
45
75
# version 4.4.0 adds another Python 3.11 typing backport
46
76
' typing_extensions >= 4.4.0; python_version<"3.11"' ,
47
- ' ipython >=8.9.0' ,
48
- ' pexpect >=4.8.0' ,
49
- ' platformdirs' ,
50
- ' sphinx >=5.2, <9' ,
51
- ' networkx >=3.1' ,
52
- ' scipy >=1.11' ,
53
- ' sympy >=1.6, <2.0' ,
54
- ' matplotlib >=3.7.0' ,
55
- ' pillow >=7.2.0' ,
56
- ' mpmath >=1.1.0' ,
57
- ' ipykernel >=5.2.1' ,
58
- ' jupyter-client' ,
59
- ' ipywidgets >=7.5.1' ,
60
- ' fpylll >=0.5.9; sys_platform != "win32"' ,
61
- ' ptyprocess > 0.5' ,
62
77
# TODO: Remove this once the migration to meson is complete
63
78
' pkgconfig' ,
64
79
' traitlets' ,
65
80
]
81
+ description = " Sage: Open Source Mathematics Software: Standard Python Library"
66
82
dynamic = [" version" ]
67
83
license = { text = " GNU General Public License (GPL) v2 or later" }
68
- authors = [
69
- {
name =
" The Sage Developers" ,
email =
" [email protected] " },
70
- ]
71
- classifiers = [
72
- " Development Status :: 6 - Mature" ,
73
- " Intended Audience :: Education" ,
74
- " Intended Audience :: Science/Research" ,
75
- " License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)" ,
76
- " Operating System :: POSIX" ,
77
- " Operating System :: MacOS :: MacOS X" ,
78
- " Programming Language :: Python :: 3 :: Only" ,
79
- " Programming Language :: Python :: 3.11" ,
80
- " Programming Language :: Python :: 3.12" ,
81
- " Programming Language :: Python :: 3.13" ,
82
- " Programming Language :: Python :: Implementation :: CPython" ,
83
- " Topic :: Scientific/Engineering :: Mathematics" ,
84
- ]
85
- urls = { Homepage = " https://www.sagemath.org" }
84
+ name = " sagemath"
86
85
requires-python = " >=3.11, <3.14"
86
+ urls = { Homepage = " https://www.sagemath.org" }
87
87
88
88
[project .optional-dependencies ]
89
89
R = [' rpy2 >=3.3' ]
90
90
extra = [
91
- ' p_group_cohomology >=3.3' , # Only used in tests
91
+ ' igraph' ,
92
+ ' lrcalc ~=2.1; sys_platform != "win32"' ,
93
+ ' p_group_cohomology >=3.3' , # Only used in tests
92
94
' pycosat >=0.6.3' ,
93
95
' pynormaliz >=2.18; platform_machine != "aarch64" and platform_machine != "arm64"' , # Not yet available for Linux aarch64
94
- ' igraph' ,
95
96
' sage_numerical_backends_coin' ,
96
- ' symengine >= 0.6.1' , # Only used in tests
97
- ' lrcalc ~=2.1; sys_platform != "win32"' ,
97
+ ' symengine >= 0.6.1' , # Only used in tests
98
98
]
99
99
giac = [' sagemath_giac' ]
100
100
101
101
[project .readme ]
102
- file = " README.md"
103
102
content-type = " text/markdown"
103
+ file = " README.md"
104
104
105
105
[project .scripts ]
106
106
sage = " sage.cli:main"
107
107
108
108
[tool .conda-lock ]
109
- platforms = [' osx -64' , ' linux-64 ' , ' linux-aarch64 ' , ' osx-arm64' ]
109
+ platforms = [' linux -64' , ' linux-aarch64 ' , ' osx-64 ' , ' osx-arm64' ]
110
110
111
111
[tool .pytest .ini_options ]
112
- python_files = " *_test.py"
113
112
norecursedirs = " local prefix venv build builddir pkgs .git src/doc src/bin src/sage_setup/autogen/flint tools"
113
+ python_files = " *_test.py"
114
114
# The "no:warnings" is to stop pytest from capturing warnings so that they are printed to the output of the doctest
115
115
addopts = " --import-mode importlib -p no:warnings"
116
116
doctest_optionflags = " NORMALIZE_WHITESPACE ELLIPSIS"
@@ -120,22 +120,19 @@ consider_namespace_packages = true
120
120
# External dependencies in the format proposed by https://peps.python.org/pep-0725
121
121
[external ]
122
122
build-requires = [
123
+ " pkg:generic/pkg-config" ,
123
124
" virtual:compiler/c" ,
124
125
" virtual:compiler/cpp" ,
125
- " pkg:generic/pkg-config" ,
126
126
]
127
127
128
128
host-requires = [
129
- " virtual:interface/blas" ,
130
- " virtual:compiler/fortran" ,
131
129
" pkg:generic/boost" ,
132
130
" pkg:generic/cddlib" ,
133
131
" pkg:generic/cliquer" ,
134
132
" pkg:generic/ecl" ,
135
133
" pkg:generic/ecm" ,
136
134
" pkg:generic/fflas-ffpack" ,
137
135
" pkg:generic/flint" ,
138
- " pkg:generic/libgd" ,
139
136
" pkg:generic/gap" ,
140
137
" pkg:generic/gfan" ,
141
138
" pkg:generic/givaro" ,
@@ -145,6 +142,7 @@ host-requires = [
145
142
" pkg:generic/iml" ,
146
143
" pkg:generic/lcalc" ,
147
144
" pkg:generic/libbraiding" ,
145
+ " pkg:generic/libgd" ,
148
146
" pkg:generic/libhomfly" ,
149
147
" pkg:generic/linbox" ,
150
148
" pkg:generic/lrcalc" ,
@@ -162,19 +160,21 @@ host-requires = [
162
160
" pkg:generic/pari-galdata" ,
163
161
" pkg:generic/pari-seadata" ,
164
162
" pkg:generic/planarity" ,
165
- " pkg:generic/primesieve" ,
166
163
" pkg:generic/primecount" ,
164
+ " pkg:generic/primesieve" ,
167
165
" pkg:generic/qhull" ,
168
166
" pkg:generic/rw" ,
169
167
" pkg:generic/singular" ,
170
168
" pkg:generic/symmetrica" ,
171
169
" pkg:generic/sympow" ,
170
+ " virtual:compiler/fortran" ,
171
+ " virtual:interface/blas" ,
172
172
]
173
173
174
174
dependencies = [
175
- " pkg:generic/sagemath-polytopes-db" ,
176
175
" pkg:generic/sagemath-elliptic-curves" ,
177
176
" pkg:generic/sagemath-graphs" ,
177
+ " pkg:generic/sagemath-polytopes-db" ,
178
178
" pkg:generic/tachyon" ,
179
179
]
180
180
@@ -207,17 +207,17 @@ extra = [
207
207
]
208
208
209
209
[dependency-groups ]
210
- test = [" pytest " , " pytest-xdist " , " coverage " ]
210
+ dev = [" conda-lock " , " grayskull " , " meson " , " pygithub " , " toml " , " tqdm " , " uv " ]
211
211
docs = [
212
+ " furo" ,
213
+ " jupyter-sphinx" ,
214
+ " python-dateutil" ,
212
215
" sphinx" ,
213
216
" sphinx-copybutton" ,
214
217
" sphinx-inline-tabs" ,
215
- " jupyter-sphinx" ,
216
- " furo" ,
217
- " python-dateutil" ,
218
218
]
219
- lint = [" relint " , " ruff " , " pycodestyle " , " flake8-rst-docstrings " ]
220
- dev = [" tqdm " , " pygithub " , " meson " , " conda-lock " , " grayskull " , " toml " , " uv " ]
219
+ lint = [" flake8-rst-docstrings " , " pycodestyle " , " relint " , " ruff " ]
220
+ test = [" coverage " , " pytest " , " pytest-xdist " ]
221
221
222
222
[tool .ruff ]
223
223
# https://docs.astral.sh/ruff/configuration
@@ -226,15 +226,15 @@ dev = ["tqdm", "pygithub", "meson", "conda-lock", "grayskull", "toml", "uv"]
226
226
target-version = " py311"
227
227
228
228
[tool .ruff .lint ]
229
- select = [
230
- " E" , # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
231
- " F" , # pyflakes - https://docs.astral.sh/ruff/rules/#pyflakes-f
232
- " I" , # isort - https://docs.astral.sh/ruff/rules/#isort-i
233
- " PL" , # pylint - https://docs.astral.sh/ruff/rules/#pylint-pl
234
- ]
235
229
ignore = [
236
230
" E501" , # Line too long - hard to avoid in doctests, and better handled by black.
237
231
]
232
+ select = [
233
+ " E" , # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
234
+ " F" , # pyflakes - https://docs.astral.sh/ruff/rules/#pyflakes-f
235
+ " I" , # isort - https://docs.astral.sh/ruff/rules/#isort-i
236
+ " PL" , # pylint - https://docs.astral.sh/ruff/rules/#pylint-pl
237
+ ]
238
238
239
239
[tool .ruff .lint .per-file-ignores ]
240
240
"all.py" = [
0 commit comments