Skip to content

Commit 13b2d6d

Browse files
committed
chore(deps): Support Python 3.13 and drop 3.9
Closes #3037
1 parent 7d0dd29 commit 13b2d6d

17 files changed

Lines changed: 77 additions & 90 deletions

.github/workflows/check_pypi_version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: ["3.9", "3.10", "3.11", "3.12"]
18+
python-version: ["3.10", "3.11", "3.12", "3.13"]
1919

2020
steps:
2121
- name: Set up Python ${{ matrix.python-version }}

.github/workflows/ubuntu-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: ubuntu-latest
2626
strategy:
2727
matrix:
28-
python-version: ["3.9", "3.10", "3.11", "3.12"]
28+
python-version: ["3.10", "3.11", "3.12", "3.13"]
2929

3030
steps:
3131
- name: Check out repository

.github/workflows/windows-tests.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: windows-latest
2626
strategy:
2727
matrix:
28-
python-version: ["3.9", "3.10", "3.11", "3.12"]
28+
python-version: ["3.10", "3.11", "3.12", "3.13"]
2929

3030
steps:
3131
- name: Check out repository
@@ -49,4 +49,3 @@ jobs:
4949
AIDER_ANALYTICS: false
5050
run: |
5151
pytest
52-

.github/workflows/windows_check_pypi_version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: windows-latest
1616
strategy:
1717
matrix:
18-
python-version: ["3.9", "3.10", "3.11", "3.12"]
18+
python-version: ["3.10", "3.11", "3.12", "3.13"]
1919
defaults:
2020
run:
2121
shell: pwsh # Use PowerShell for all run steps

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ cd aider
5050

5151
It is recommended to create a virtual environment outside of the repository to keep your development environment isolated.
5252

53-
#### Using `venv` (Python 3.9 and later)
53+
#### Using `venv` (Python 3.10 and later)
5454

5555
```
5656
python -m venv /path/to/venv
@@ -155,7 +155,7 @@ The built documentation will be available in the `aider/website/_site` directory
155155

156156
### Python Compatibility
157157

158-
Aider supports Python versions 3.9, 3.10, 3.11, and 3.12. When contributing code, ensure compatibility with these supported Python versions.
158+
Aider supports Python versions 3.10, 3.11, 3.12, and 3.13. When contributing code, ensure compatibility with these supported Python versions.
159159

160160
### Code Style
161161

@@ -188,7 +188,7 @@ pytest tests/basic/test_coder.py::TestCoder::test_specific_case
188188

189189
The project uses GitHub Actions for continuous integration. The testing workflows are defined in the following files:
190190

191-
- `.github/workflows/ubuntu-tests.yml`: Runs tests on Ubuntu for Python versions 3.9 through 3.12.
191+
- `.github/workflows/ubuntu-tests.yml`: Runs tests on Ubuntu for Python versions 3.10 through 3.13.
192192
- `.github/workflows/windows-tests.yml`: Runs that on Windows
193193

194194
These workflows are triggered on push and pull request events to the `main` branch, ignoring changes to the `aider/website/**` and `README.md` files.

aider/website/docs/install.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ python -m pip install pipx # If you need to install pipx
7575
pipx install aider-chat
7676
```
7777

78-
You can use pipx to install aider with python versions 3.9-3.12.
78+
You can use pipx to install aider with python versions 3.10-3.13.
7979

8080
Also see the
8181
[docs on other methods for installing pipx itself](https://pipx.pypa.io/stable/installation/).
@@ -93,7 +93,7 @@ using a
9393
to keep aider's dependencies separated.
9494

9595

96-
You can use pip to install aider with python versions 3.9-3.12.
96+
You can use pip to install aider with python versions 3.10-3.13.
9797

9898
```bash
9999
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
@@ -112,4 +112,3 @@ they often install aider with incorrect dependencies.
112112

113113
There are some [optional install steps](/docs/install/optional.html) you could consider.
114114
See the [usage instructions](https://aider.chat/docs/usage.html) to start coding with aider.
115-

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ classifiers = [
1212
"Programming Language :: Python :: 3.10",
1313
"Programming Language :: Python :: 3.11",
1414
"Programming Language :: Python :: 3.12",
15-
"Programming Language :: Python :: 3.9",
15+
"Programming Language :: Python :: 3.13",
1616
"Programming Language :: Python",
1717
"Topic :: Software Development",
1818
]
19-
requires-python = ">=3.9,<3.13"
19+
requires-python = ">=3.10,<3.14"
2020
dynamic = ["dependencies", "optional-dependencies", "version"]
2121

2222
[project.urls]

requirements.txt

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ httpx==0.28.1
115115
# -c requirements/common-constraints.txt
116116
# litellm
117117
# openai
118-
huggingface-hub==0.30.1
118+
huggingface-hub==0.30.2
119119
# via
120120
# -c requirements/common-constraints.txt
121121
# tokenizers
@@ -156,7 +156,7 @@ jsonschema-specifications==2024.10.1
156156
# via
157157
# -c requirements/common-constraints.txt
158158
# jsonschema
159-
litellm==1.65.3
159+
litellm==1.65.4.post1
160160
# via
161161
# -c requirements/common-constraints.txt
162162
# -r requirements/requirements.in
@@ -189,16 +189,16 @@ multidict==6.3.2
189189
# -c requirements/common-constraints.txt
190190
# aiohttp
191191
# yarl
192-
networkx==3.2.1
192+
networkx==3.4.2
193193
# via
194194
# -c requirements/common-constraints.txt
195195
# -r requirements/requirements.in
196-
numpy==1.26.4
196+
numpy==2.2.4
197197
# via
198198
# -c requirements/common-constraints.txt
199199
# scipy
200200
# soundfile
201-
openai==1.70.0
201+
openai==1.71.0
202202
# via
203203
# -c requirements/common-constraints.txt
204204
# litellm
@@ -220,10 +220,6 @@ pillow==11.1.0
220220
# via
221221
# -c requirements/common-constraints.txt
222222
# -r requirements/requirements.in
223-
pip==25.0.1
224-
# via
225-
# -c requirements/common-constraints.txt
226-
# -r requirements/requirements.in
227223
posthog==3.23.0
228224
# via
229225
# -c requirements/common-constraints.txt
@@ -253,7 +249,7 @@ pycparser==2.22
253249
# via
254250
# -c requirements/common-constraints.txt
255251
# cffi
256-
pydantic==2.11.2
252+
pydantic==2.11.3
257253
# via
258254
# -c requirements/common-constraints.txt
259255
# litellm
@@ -320,7 +316,7 @@ rpds-py==0.24.0
320316
# -c requirements/common-constraints.txt
321317
# jsonschema
322318
# referencing
323-
scipy==1.13.1
319+
scipy==1.15.2
324320
# via
325321
# -c requirements/common-constraints.txt
326322
# -r requirements/requirements.in
@@ -368,9 +364,6 @@ tqdm==4.67.1
368364
# -c requirements/common-constraints.txt
369365
# huggingface-hub
370366
# openai
371-
# via
372-
# -c requirements/common-constraints.txt
373-
# tree-sitter-language-pack
374367
tree-sitter-c-sharp==0.23.1
375368
# via
376369
# -c requirements/common-constraints.txt
@@ -379,7 +372,7 @@ tree-sitter-embedded-template==0.23.2
379372
# via
380373
# -c requirements/common-constraints.txt
381374
# tree-sitter-language-pack
382-
tree-sitter-language-pack==0.6.1
375+
tree-sitter-language-pack==0.7.0
383376
# via
384377
# -c requirements/common-constraints.txt
385378
# grep-ast
@@ -390,13 +383,11 @@ tree-sitter-yaml==0.7.0
390383
typing-extensions==4.13.1
391384
# via
392385
# -c requirements/common-constraints.txt
393-
# anyio
394386
# beautifulsoup4
395387
# huggingface-hub
396388
# openai
397389
# pydantic
398390
# pydantic-core
399-
# referencing
400391
# typing-inspection
401392
typing-inspection==0.4.0
402393
# via
@@ -407,22 +398,25 @@ urllib3==2.3.0
407398
# -c requirements/common-constraints.txt
408399
# mixpanel
409400
# requests
410-
watchfiles==1.0.4
401+
watchfiles==1.0.5
411402
# via
412403
# -c requirements/common-constraints.txt
413404
# -r requirements/requirements.in
414405
wcwidth==0.2.13
415406
# via
416407
# -c requirements/common-constraints.txt
417408
# prompt-toolkit
418-
yarl==1.18.3
409+
yarl==1.19.0
419410
# via
420411
# -c requirements/common-constraints.txt
421412
# aiohttp
422413
zipp==3.21.0
423414
# via
424415
# -c requirements/common-constraints.txt
425416
# importlib-metadata
426-
417+
427418
tree-sitter==0.23.2; python_version < "3.10"
428419
tree-sitter==0.24.0; python_version >= "3.10"
420+
421+
# Remove if Python 3.13 support https://github.com/jiaaro/pydub/pull/816 gets released
422+
audioop-lts>=0.2.1; python_version >= "3.13"

requirements/common-constraints.txt

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ httpx==0.28.1
164164
# litellm
165165
# llama-index-core
166166
# openai
167-
huggingface-hub[inference]==0.30.1
167+
huggingface-hub[inference]==0.30.2
168168
# via
169169
# llama-index-embeddings-huggingface
170170
# sentence-transformers
@@ -212,7 +212,7 @@ jsonschema-specifications==2024.10.1
212212
# via jsonschema
213213
kiwisolver==1.4.8
214214
# via matplotlib
215-
litellm==1.65.3
215+
litellm==1.65.4.post1
216216
# via -r requirements/requirements.in
217217
llama-index-core==0.12.26
218218
# via
@@ -248,11 +248,11 @@ multiprocess==0.70.17
248248
# via pathos
249249
mypy-extensions==1.0.0
250250
# via typing-inspect
251-
narwhals==1.33.0
251+
narwhals==1.34.0
252252
# via altair
253253
nest-asyncio==1.6.0
254254
# via llama-index-core
255-
networkx==3.2.1
255+
networkx==3.4.2
256256
# via
257257
# -r requirements/requirements.in
258258
# llama-index-core
@@ -261,7 +261,7 @@ nltk==3.9.1
261261
# via llama-index-core
262262
nodeenv==1.9.1
263263
# via pre-commit
264-
numpy==1.26.4
264+
numpy==2.2.4
265265
# via
266266
# -r requirements/requirements-help.in
267267
# contourpy
@@ -274,7 +274,7 @@ numpy==1.26.4
274274
# soundfile
275275
# streamlit
276276
# transformers
277-
openai==1.70.0
277+
openai==1.71.0
278278
# via litellm
279279
packaging==24.2
280280
# via
@@ -307,10 +307,6 @@ pillow==11.1.0
307307
# matplotlib
308308
# sentence-transformers
309309
# streamlit
310-
pip==25.0.1
311-
# via
312-
# -r requirements/requirements.in
313-
# pip-tools
314310
pip-tools==7.4.1
315311
# via -r requirements/requirements-dev.in
316312
platformdirs==4.3.7
@@ -360,7 +356,7 @@ pycodestyle==2.13.0
360356
# via flake8
361357
pycparser==2.22
362358
# via cffi
363-
pydantic==2.11.2
359+
pydantic==2.11.3
364360
# via
365361
# banks
366362
# litellm
@@ -445,7 +441,7 @@ safetensors==0.5.3
445441
# via transformers
446442
scikit-learn==1.6.1
447443
# via sentence-transformers
448-
scipy==1.13.1
444+
scipy==1.15.2
449445
# via
450446
# -r requirements/requirements.in
451447
# scikit-learn
@@ -454,8 +450,6 @@ semver==3.0.4
454450
# via -r requirements/requirements-dev.in
455451
sentence-transformers==4.0.2
456452
# via llama-index-embeddings-huggingface
457-
setuptools==78.1.0
458-
# via pip-tools
459453
shellingham==1.5.4
460454
# via typer
461455
six==1.17.0
@@ -499,7 +493,7 @@ tokenizers==0.21.1
499493
# transformers
500494
toml==0.10.2
501495
# via streamlit
502-
torch==2.2.2
496+
torch==2.6.0
503497
# via
504498
# -r requirements/requirements-help.in
505499
# sentence-transformers
@@ -513,15 +507,15 @@ tqdm==4.67.1
513507
# openai
514508
# sentence-transformers
515509
# transformers
516-
transformers==4.50.3
510+
transformers==4.51.1
517511
# via sentence-transformers
518512
tree-sitter==0.24.0
519513
# via tree-sitter-language-pack
520514
tree-sitter-c-sharp==0.23.1
521515
# via tree-sitter-language-pack
522516
tree-sitter-embedded-template==0.23.2
523517
# via tree-sitter-language-pack
524-
tree-sitter-language-pack==0.6.1
518+
tree-sitter-language-pack==0.7.0
525519
# via grep-ast
526520
tree-sitter-yaml==0.7.0
527521
# via tree-sitter-language-pack
@@ -530,15 +524,13 @@ typer==0.15.2
530524
typing-extensions==4.13.1
531525
# via
532526
# altair
533-
# anyio
534527
# beautifulsoup4
535528
# huggingface-hub
536529
# llama-index-core
537530
# openai
538531
# pydantic
539532
# pydantic-core
540533
# pyee
541-
# referencing
542534
# sentence-transformers
543535
# sqlalchemy
544536
# streamlit
@@ -558,11 +550,11 @@ urllib3==2.3.0
558550
# via
559551
# mixpanel
560552
# requests
561-
uv==0.6.12
553+
uv==0.6.13
562554
# via -r requirements/requirements-dev.in
563555
virtualenv==20.30.0
564556
# via pre-commit
565-
watchfiles==1.0.4
557+
watchfiles==1.0.5
566558
# via -r requirements/requirements.in
567559
wcwidth==0.2.13
568560
# via prompt-toolkit
@@ -572,7 +564,11 @@ wrapt==1.17.2
572564
# via
573565
# deprecated
574566
# llama-index-core
575-
yarl==1.18.3
567+
yarl==1.19.0
576568
# via aiohttp
577569
zipp==3.21.0
578570
# via importlib-metadata
571+
572+
# The following packages are considered to be unsafe in a requirements file:
573+
# pip
574+
# setuptools

requirements/pydub.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Remove if Python 3.13 support https://github.com/jiaaro/pydub/pull/816 gets released
2+
audioop-lts>=0.2.1; python_version >= "3.13"

0 commit comments

Comments
 (0)