Skip to content

Commit 701737b

Browse files
igerberclaude
andcommitted
Add Python 3.13 support with upper version cap
Add 3.13 to build matrices (publish.yml), CI test matrix (rust-test.yml), classifiers (pyproject.toml), and docs (README.md). Cap requires-python at <3.14 to prevent broken installs on untested versions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f966182 commit 701737b

4 files changed

Lines changed: 12 additions & 8 deletions

File tree

.github/workflows/publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Build wheels
2323
run: |
2424
export PATH="$HOME/.cargo/bin:$PATH"
25-
for pyver in 39 310 311 312; do
25+
for pyver in 39 310 311 312 313; do
2626
pybin="/opt/python/cp${pyver}-cp${pyver}/bin/python"
2727
if [ -f "$pybin" ]; then
2828
/opt/python/cp312-cp312/bin/maturin build --release --out dist -i "$pybin" --features extension-module
@@ -42,7 +42,7 @@ jobs:
4242
runs-on: macos-14
4343
strategy:
4444
matrix:
45-
python-version: ['3.9', '3.10', '3.11', '3.12']
45+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
4646
steps:
4747
- uses: actions/checkout@v4
4848

@@ -72,7 +72,7 @@ jobs:
7272
runs-on: windows-latest
7373
strategy:
7474
matrix:
75-
python-version: ['3.9', '3.10', '3.11', '3.12']
75+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
7676
steps:
7777
- uses: actions/checkout@v4
7878

.github/workflows/rust-test.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,25 +45,27 @@ jobs:
4545

4646
# Build and test with Python on multiple platforms
4747
python-tests:
48-
name: Python Tests (${{ matrix.os }})
48+
name: Python Tests (${{ matrix.os }}, py${{ matrix.python-version }})
4949
runs-on: ${{ matrix.os }}
5050
strategy:
5151
fail-fast: false
5252
matrix:
5353
os: [ubuntu-latest, macos-latest, windows-latest]
54+
python-version: ['3.11', '3.13']
5455

5556
steps:
5657
- uses: actions/checkout@v4
5758

5859
- name: Set up Python
5960
uses: actions/setup-python@v5
6061
with:
61-
python-version: '3.11'
62+
python-version: ${{ matrix.python-version }}
6263

6364
- name: Install Rust toolchain
6465
uses: dtolnay/rust-toolchain@stable
6566

6667
- name: Install test dependencies
68+
# Keep in sync with pyproject.toml [project.dependencies] and [project.optional-dependencies.dev]
6769
run: pip install pytest pytest-xdist numpy pandas scipy
6870

6971
- name: Build and install with maturin
@@ -141,9 +143,10 @@ jobs:
141143
- name: Set up Python
142144
uses: actions/setup-python@v5
143145
with:
144-
python-version: '3.11'
146+
python-version: '3.13'
145147

146148
- name: Install dependencies
149+
# Keep in sync with pyproject.toml [project.dependencies] and [project.optional-dependencies.dev]
147150
run: pip install numpy pandas scipy pytest pytest-xdist
148151

149152
- name: Verify pure Python mode

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2452,7 +2452,7 @@ Returns DataFrame with columns: `unit`, `quality_score`, `outcome_trend_score`,
24522452

24532453
## Requirements
24542454

2455-
- Python >= 3.9
2455+
- Python 3.9 - 3.13
24562456
- numpy >= 1.20
24572457
- pandas >= 1.3
24582458
- scipy >= 1.7

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ version = "2.3.1"
88
description = "A library for Difference-in-Differences causal inference analysis"
99
readme = "README.md"
1010
license = "MIT"
11-
requires-python = ">=3.9"
11+
requires-python = ">=3.9,<3.14"
1212
authors = [
1313
{name = "diff-diff contributors"}
1414
]
@@ -28,6 +28,7 @@ classifiers = [
2828
"Programming Language :: Python :: 3.10",
2929
"Programming Language :: Python :: 3.11",
3030
"Programming Language :: Python :: 3.12",
31+
"Programming Language :: Python :: 3.13",
3132
"Topic :: Scientific/Engineering :: Mathematics",
3233
]
3334
dependencies = [

0 commit comments

Comments
 (0)