Skip to content

Commit cae4b86

Browse files
committed
[SymForce] Python 3.13 tests/wheels
Relative: sf-uv Topic: py313
1 parent b73d4bd commit cae4b86

File tree

5 files changed

+337
-3
lines changed

5 files changed

+337
-3
lines changed

.github/workflows/build_wheels.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
arch: x86_64
4343
- runner: macos-13
4444
arch: arm64
45-
python-version: [cp38, cp39, cp310, cp311, cp312]
45+
python-version: [cp38, cp39, cp310, cp311, cp312, cp313]
4646

4747
steps:
4848
- name: Checkout
@@ -77,7 +77,7 @@ jobs:
7777
fail-fast: false
7878
matrix:
7979
os: [ubuntu-latest]
80-
python-version: [cp38, cp39, cp310, cp311, cp312]
80+
python-version: [cp38, cp39, cp310, cp311, cp312, cp313]
8181

8282
steps:
8383
- name: Checkout

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<a href="https://symforce.org"><img alt="Documentation" src="https://img.shields.io/badge/api-docs-blue" /></a>
1212
<a href="https://github.com/symforce-org/symforce"><img alt="Source Code" src="https://img.shields.io/badge/source-code-blue" /></a>
1313
<a href="https://github.com/symforce-org/symforce/issues"><img alt="Issues" src="https://img.shields.io/badge/issue-tracker-blue" /></a>
14-
<img alt="Python 3.8 | 3.9 | 3.10 | 3.11 | 3.12" src="https://img.shields.io/pypi/pyversions/symforce" />
14+
<img alt="Python 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13" src="https://img.shields.io/pypi/pyversions/symforce" />
1515
<img alt="C++14" src="https://img.shields.io/badge/c++-14-blue" />
1616
<a href="https://pypi.org/project/symforce/"><img alt="PyPI" src="https://img.shields.io/pypi/v/symforce" /></a>
1717
<a href="https://github.com/symforce-org/symforce/tree/main/LICENSE"><img alt="Apache License" src="https://img.shields.io/pypi/l/symforce" /></a>

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ classifiers = [
3434
"Programming Language :: Python :: 3.10",
3535
"Programming Language :: Python :: 3.11",
3636
"Programming Language :: Python :: 3.12",
37+
"Programming Language :: Python :: 3.13",
3738
"Programming Language :: Python :: 3 :: Only",
3839
"Programming Language :: C++",
3940
"License :: OSI Approved :: Apache Software License",

requirements_dev_py313.txt

Lines changed: 329 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,329 @@
1+
# This file was autogenerated by uv via the following command:
2+
# python test/symforce_requirements_test.py --update
3+
alabaster==0.7.16
4+
# via sphinx
5+
argh==0.31.2
6+
# via
7+
# symforce (pyproject.toml)
8+
# skymarshal
9+
asttokens==2.4.1
10+
# via stack-data
11+
attrs==23.2.0
12+
# via
13+
# jsonschema
14+
# referencing
15+
babel==2.15.0
16+
# via sphinx
17+
beautifulsoup4==4.12.3
18+
# via
19+
# furo
20+
# nbconvert
21+
bleach==6.1.0
22+
# via nbconvert
23+
breathe==4.35.0
24+
# via symforce (pyproject.toml)
25+
certifi==2024.2.2
26+
# via requests
27+
charset-normalizer==3.3.2
28+
# via requests
29+
clang-format==18.1.5
30+
# via symforce (pyproject.toml)
31+
cmake==3.26.4
32+
# via symforce (pyproject.toml)
33+
comm==0.2.2
34+
# via ipykernel
35+
contourpy==1.2.1
36+
# via matplotlib
37+
coverage==7.5.1
38+
# via symforce (pyproject.toml)
39+
cycler==0.12.1
40+
# via matplotlib
41+
cython==0.29.37
42+
# via symforce (pyproject.toml)
43+
debugpy==1.8.1
44+
# via ipykernel
45+
decorator==5.1.1
46+
# via ipython
47+
defusedxml==0.7.1
48+
# via nbconvert
49+
docutils==0.21.2
50+
# via
51+
# breathe
52+
# myst-parser
53+
# nbsphinx
54+
# sphinx
55+
executing==2.0.1
56+
# via stack-data
57+
fastjsonschema==2.19.1
58+
# via nbformat
59+
fonttools==4.51.0
60+
# via matplotlib
61+
furo==2024.5.6
62+
# via symforce (pyproject.toml)
63+
graphviz==0.20.3
64+
# via symforce (pyproject.toml)
65+
idna==3.7
66+
# via requests
67+
imagesize==1.4.1
68+
# via sphinx
69+
ipykernel==6.29.4
70+
# via symforce (pyproject.toml)
71+
ipython==8.24.0
72+
# via ipykernel
73+
ipython-genutils==0.2.0
74+
# via symforce (pyproject.toml)
75+
jedi==0.19.1
76+
# via ipython
77+
jinja2==3.1.4
78+
# via
79+
# symforce (pyproject.toml)
80+
# myst-parser
81+
# nbconvert
82+
# nbsphinx
83+
# skymarshal
84+
# sphinx
85+
jsonschema==4.22.0
86+
# via nbformat
87+
jsonschema-specifications==2023.12.1
88+
# via jsonschema
89+
jupyter-client==8.6.1
90+
# via
91+
# ipykernel
92+
# nbclient
93+
jupyter-core==5.7.2
94+
# via
95+
# ipykernel
96+
# jupyter-client
97+
# nbclient
98+
# nbconvert
99+
# nbformat
100+
jupyterlab-pygments==0.3.0
101+
# via nbconvert
102+
kiwisolver==1.4.5
103+
# via matplotlib
104+
llvmlite==0.42.0
105+
# via numba
106+
markdown-it-py==3.0.0
107+
# via
108+
# mdit-py-plugins
109+
# myst-parser
110+
markupsafe==2.1.5
111+
# via
112+
# jinja2
113+
# nbconvert
114+
matplotlib==3.9.0
115+
# via symforce (pyproject.toml)
116+
matplotlib-inline==0.1.7
117+
# via
118+
# ipykernel
119+
# ipython
120+
mdit-py-plugins==0.4.1
121+
# via myst-parser
122+
mdurl==0.1.2
123+
# via markdown-it-py
124+
mistune==3.0.2
125+
# via nbconvert
126+
mpmath==1.3.0
127+
# via sympy
128+
mypy==1.11.2
129+
# via symforce (pyproject.toml)
130+
mypy-extensions==1.0.0
131+
# via mypy
132+
myst-parser==3.0.1
133+
# via symforce (pyproject.toml)
134+
nbclient==0.10.0
135+
# via nbconvert
136+
nbconvert==7.16.4
137+
# via nbsphinx
138+
nbformat==5.10.4
139+
# via
140+
# nbclient
141+
# nbconvert
142+
# nbsphinx
143+
# nbstripout
144+
nbsphinx==0.9.4
145+
# via symforce (pyproject.toml)
146+
nbstripout==0.7.1
147+
# via symforce (pyproject.toml)
148+
nest-asyncio==1.6.0
149+
# via ipykernel
150+
numba==0.59.1
151+
# via symforce (pyproject.toml)
152+
numpy==1.26.4
153+
# via
154+
# symforce (pyproject.toml)
155+
# contourpy
156+
# matplotlib
157+
# numba
158+
# pandas
159+
# scipy
160+
# skymarshal
161+
# symforce-sym
162+
packaging==24.0
163+
# via
164+
# ipykernel
165+
# matplotlib
166+
# nbconvert
167+
# plotly
168+
# setuptools-scm
169+
# sphinx
170+
pandas==2.2.2
171+
# via symforce (pyproject.toml)
172+
pandocfilters==1.5.1
173+
# via nbconvert
174+
parso==0.8.4
175+
# via jedi
176+
pexpect==4.9.0
177+
# via ipython
178+
pillow==10.3.0
179+
# via matplotlib
180+
pip==24.0
181+
# via symforce (pyproject.toml)
182+
platformdirs==4.2.2
183+
# via jupyter-core
184+
plotly==5.22.0
185+
# via symforce (pyproject.toml)
186+
ply==3.11
187+
# via skymarshal
188+
prompt-toolkit==3.0.43
189+
# via ipython
190+
psutil==5.9.8
191+
# via ipykernel
192+
ptyprocess==0.7.0
193+
# via pexpect
194+
pure-eval==0.2.2
195+
# via stack-data
196+
pybind11-stubgen==2.5.3
197+
# via symforce (pyproject.toml)
198+
pygments==2.18.0
199+
# via
200+
# furo
201+
# ipython
202+
# nbconvert
203+
# sphinx
204+
pyparsing==3.1.2
205+
# via matplotlib
206+
python-dateutil==2.9.0.post0
207+
# via
208+
# jupyter-client
209+
# matplotlib
210+
# pandas
211+
pytz==2024.1
212+
# via pandas
213+
pyyaml==6.0.1
214+
# via myst-parser
215+
pyzmq==26.0.3
216+
# via
217+
# ipykernel
218+
# jupyter-client
219+
referencing==0.35.1
220+
# via
221+
# jsonschema
222+
# jsonschema-specifications
223+
requests==2.31.0
224+
# via sphinx
225+
rpds-py==0.18.1
226+
# via
227+
# jsonschema
228+
# referencing
229+
ruff==0.9.10
230+
# via symforce (pyproject.toml)
231+
scipy==1.13.0
232+
# via symforce (pyproject.toml)
233+
setuptools==69.5.1
234+
# via
235+
# symforce (pyproject.toml)
236+
# setuptools-scm
237+
setuptools-scm==8.2.0
238+
# via symforce (pyproject.toml)
239+
six==1.16.0
240+
# via
241+
# asttokens
242+
# bleach
243+
# python-dateutil
244+
file:./third_party/skymarshal
245+
# via symforce (pyproject.toml)
246+
snowballstemmer==2.2.0
247+
# via sphinx
248+
soupsieve==2.5
249+
# via beautifulsoup4
250+
sphinx==7.3.7
251+
# via
252+
# symforce (pyproject.toml)
253+
# breathe
254+
# furo
255+
# myst-parser
256+
# nbsphinx
257+
# sphinx-basic-ng
258+
# sphinx-copybutton
259+
# sphinxext-opengraph
260+
sphinx-basic-ng==1.0.0b2
261+
# via furo
262+
sphinx-copybutton==0.5.2
263+
# via symforce (pyproject.toml)
264+
sphinxcontrib-applehelp==1.0.8
265+
# via sphinx
266+
sphinxcontrib-devhelp==1.0.6
267+
# via sphinx
268+
sphinxcontrib-htmlhelp==2.0.5
269+
# via sphinx
270+
sphinxcontrib-jsmath==1.0.1
271+
# via sphinx
272+
sphinxcontrib-qthelp==1.0.7
273+
# via sphinx
274+
sphinxcontrib-serializinghtml==1.1.10
275+
# via sphinx
276+
sphinxext-opengraph==0.9.1
277+
# via symforce (pyproject.toml)
278+
stack-data==0.6.3
279+
# via ipython
280+
file:./gen/python
281+
# via symforce (pyproject.toml)
282+
sympy==1.11.1
283+
# via symforce (pyproject.toml)
284+
tenacity==8.3.0
285+
# via plotly
286+
tinycss2==1.3.0
287+
# via nbconvert
288+
tornado==6.4
289+
# via
290+
# ipykernel
291+
# jupyter-client
292+
traitlets==5.14.3
293+
# via
294+
# comm
295+
# ipykernel
296+
# ipython
297+
# jupyter-client
298+
# jupyter-core
299+
# matplotlib-inline
300+
# nbclient
301+
# nbconvert
302+
# nbformat
303+
# nbsphinx
304+
types-jinja2==2.11.9
305+
# via symforce (pyproject.toml)
306+
types-markupsafe==1.1.10
307+
# via types-jinja2
308+
types-requests==2.31.0.20240406
309+
# via symforce (pyproject.toml)
310+
types-setuptools==69.5.0.20240513
311+
# via symforce (pyproject.toml)
312+
typing-extensions==4.11.0
313+
# via mypy
314+
tzdata==2024.1
315+
# via pandas
316+
urllib3==2.2.1
317+
# via
318+
# requests
319+
# types-requests
320+
uv==0.1.44
321+
# via symforce (pyproject.toml)
322+
wcwidth==0.2.13
323+
# via prompt-toolkit
324+
webencodings==0.5.1
325+
# via
326+
# bleach
327+
# tinycss2
328+
wheel==0.43.0
329+
# via symforce (pyproject.toml)

test/symforce_requirements_test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ def test_dev_requirements_py311(self) -> None:
123123
def test_dev_requirements_py312(self) -> None:
124124
self.check_dev_requirements_for_version(12)
125125

126+
@sympy_only
127+
def test_dev_requirements_py313(self) -> None:
128+
self.check_dev_requirements_for_version(13)
129+
126130
@sympy_only
127131
def test_build_requirements(self) -> None:
128132
"""

0 commit comments

Comments
 (0)