Skip to content

Commit 4025314

Browse files
committed
Add Python 3.14 and pandas 3 support
Updates the project for the new runtime stack by dropping Python 3.10, adding Python 3.14 in CI/publishing, and tightening supported Python to >=3.11,<3.15. Bumps core dependencies (setuptools, numpy, pandas, numba, maturin) and aligns the Rust extension with newer pyo3/numpy/rand APIs, including broad migration from deprecated bound/allow_threads patterns. Also adjusts Python-side wrappers, indexing, mapping, records, and generic accessors for pandas 3 dtype/behavior changes, and updates tests/conftest normalization logic to keep assertions stable across newer pandas/string/datetime handling.
1 parent 275a7d3 commit 4025314

25 files changed

Lines changed: 738 additions & 669 deletions

.github/workflows/pypi.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ jobs:
7777
fail-fast: false
7878
matrix:
7979
include:
80-
- os: ubuntu-latest
81-
target: x86_64-unknown-linux-gnu
82-
python-version: "3.10"
8380
- os: ubuntu-latest
8481
target: x86_64-unknown-linux-gnu
8582
python-version: "3.11"
@@ -90,8 +87,8 @@ jobs:
9087
target: x86_64-unknown-linux-gnu
9188
python-version: "3.13"
9289
- os: ubuntu-latest
93-
target: aarch64-unknown-linux-gnu
94-
python-version: "3.10"
90+
target: x86_64-unknown-linux-gnu
91+
python-version: "3.14"
9592
- os: ubuntu-latest
9693
target: aarch64-unknown-linux-gnu
9794
python-version: "3.11"
@@ -101,9 +98,9 @@ jobs:
10198
- os: ubuntu-latest
10299
target: aarch64-unknown-linux-gnu
103100
python-version: "3.13"
104-
- os: macos-latest
105-
target: x86_64-apple-darwin
106-
python-version: "3.10"
101+
- os: ubuntu-latest
102+
target: aarch64-unknown-linux-gnu
103+
python-version: "3.14"
107104
- os: macos-latest
108105
target: x86_64-apple-darwin
109106
python-version: "3.11"
@@ -114,8 +111,8 @@ jobs:
114111
target: x86_64-apple-darwin
115112
python-version: "3.13"
116113
- os: macos-latest
117-
target: aarch64-apple-darwin
118-
python-version: "3.10"
114+
target: x86_64-apple-darwin
115+
python-version: "3.14"
119116
- os: macos-latest
120117
target: aarch64-apple-darwin
121118
python-version: "3.11"
@@ -125,9 +122,9 @@ jobs:
125122
- os: macos-latest
126123
target: aarch64-apple-darwin
127124
python-version: "3.13"
128-
- os: windows-latest
129-
target: x86_64-pc-windows-msvc
130-
python-version: "3.10"
125+
- os: macos-latest
126+
target: aarch64-apple-darwin
127+
python-version: "3.14"
131128
- os: windows-latest
132129
target: x86_64-pc-windows-msvc
133130
python-version: "3.11"
@@ -137,6 +134,9 @@ jobs:
137134
- os: windows-latest
138135
target: x86_64-pc-windows-msvc
139136
python-version: "3.13"
137+
- os: windows-latest
138+
target: x86_64-pc-windows-msvc
139+
python-version: "3.14"
140140

141141
steps:
142142
- name: Checkout release tag

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
os: [ubuntu-latest, windows-latest, macos-latest]
24-
python-version: ["3.10", "3.11", "3.12", "3.13"]
24+
python-version: ["3.11", "3.12", "3.13", "3.14"]
2525

2626
steps:
2727
- uses: actions/checkout@v4
@@ -51,7 +51,7 @@ jobs:
5151
fail-fast: false
5252
matrix:
5353
os: [ubuntu-latest, windows-latest, macos-latest]
54-
python-version: ["3.10", "3.11", "3.12", "3.13"]
54+
python-version: ["3.11", "3.12", "3.13", "3.14"]
5555

5656
steps:
5757
- uses: actions/checkout@v4

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[build-system]
2-
requires = ["setuptools>=61.0"]
2+
requires = ["setuptools>=83.0"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
@@ -11,30 +11,30 @@ license-files = ["LICENSE.md"]
1111
authors = [
1212
{name = "Oleg Polakow", email = "olegpolakow@vectorbt.pro"}
1313
]
14-
requires-python = ">=3.10"
14+
requires-python = ">=3.11,<3.15"
1515
classifiers = [
1616
"Development Status :: 5 - Production/Stable",
1717
"Intended Audience :: Developers",
1818
"Intended Audience :: Financial and Insurance Industry",
19-
"Programming Language :: Python :: 3.10",
2019
"Programming Language :: Python :: 3.11",
2120
"Programming Language :: Python :: 3.12",
2221
"Programming Language :: Python :: 3.13",
22+
"Programming Language :: Python :: 3.14",
2323
"Operating System :: OS Independent",
2424
"Intended Audience :: Science/Research",
2525
"Topic :: Software Development",
2626
"Topic :: Office/Business :: Financial",
2727
"Topic :: Scientific/Engineering :: Information Analysis",
2828
]
2929
dependencies = [
30-
"numpy>=1.23",
31-
"pandas>=2.0,<3.0",
30+
"numpy>=2.4.6",
31+
"pandas>=3.0.3,<4.0",
3232
"scipy",
3333
"matplotlib",
3434
"plotly>=4.12.0",
3535
"ipywidgets>=7.0.0",
3636
"anywidget",
37-
"numba>=0.60",
37+
"numba>=0.66",
3838
"dill",
3939
"tqdm",
4040
"dateparser",
@@ -70,7 +70,7 @@ test = [
7070
]
7171
test-rust = [
7272
"vectorbt[test]",
73-
"maturin>=1.7,<2.0",
73+
"maturin>=1.14,<2.0",
7474
]
7575
docs = [
7676
"mkdocs-material",

0 commit comments

Comments
 (0)