Skip to content

Commit 24ac85f

Browse files
Merge branch 'main' into nsorted
2 parents 1790f6c + 8a1d5a0 commit 24ac85f

File tree

118 files changed

+2032
-1110
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+2032
-1110
lines changed

.github/workflows/wheels.yml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,12 @@ jobs:
9595
- [ubuntu-24.04, manylinux_x86_64]
9696
- [ubuntu-24.04, musllinux_x86_64]
9797
- [ubuntu-24.04-arm, manylinux_aarch64]
98+
- [ubuntu-24.04-arm, musllinux_aarch64]
9899
- [macos-13, macosx_x86_64]
99100
# Note: M1 images on Github Actions start from macOS 14
100101
- [macos-14, macosx_arm64]
101102
- [windows-2022, win_amd64]
103+
- [windows-11-arm, win_arm64]
102104
# TODO: support PyPy?
103105
python: [["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"], ["cp313", "3.13"], ["cp313t", "3.13"]]
104106
include:
@@ -108,6 +110,12 @@ jobs:
108110
- buildplat: [ubuntu-24.04, pyodide_wasm32]
109111
python: ["cp312", "3.12"]
110112
cibw_build_frontend: 'build'
113+
exclude:
114+
- buildplat: [windows-11-arm, win_arm64]
115+
python: ["cp310", "3.10"]
116+
# BackendUnavailable: Cannot import 'mesonpy'
117+
- buildplat: [windows-11-arm, win_arm64]
118+
python: ["cp313t", "3.13"]
111119

112120
env:
113121
IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
@@ -118,6 +126,12 @@ jobs:
118126
with:
119127
fetch-depth: 0
120128

129+
- name: Set up MSVC environment for ARM64
130+
if: matrix.buildplat[1] == 'win_arm64'
131+
uses: ilammy/msvc-dev-cmd@v1
132+
with:
133+
arch: arm64
134+
121135
# TODO: Build wheels from sdist again
122136
# There's some sort of weird race condition?
123137
# within Github that makes the sdist be missing files
@@ -155,9 +169,13 @@ jobs:
155169
env:
156170
CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
157171
CIBW_BUILD_FRONTEND: ${{ matrix.cibw_build_frontend || 'pip' }}
158-
CIBW_PLATFORM: ${{ matrix.buildplat[1] == 'pyodide_wasm32' && 'pyodide' || 'auto' }}
172+
CIBW_PLATFORM: ${{ (matrix.buildplat[1] == 'pyodide_wasm32' && 'pyodide') || (matrix.buildplat[1] == 'win_arm64' && 'windows') || 'auto' }}
173+
CIBW_ARCHS: ${{ matrix.buildplat[1] == 'win_arm64' && 'ARM64' || 'auto' }}
174+
CIBW_BEFORE_BUILD_WINDOWS: 'python -m pip install delvewheel'
159175

160-
- name: Set up Python
176+
- name: Set up Python for validation/upload (non-ARM64 Windows & other OS)
177+
# micromamba is not available for ARM64 Windows
178+
if: matrix.buildplat[1] != 'win_arm64'
161179
uses: mamba-org/setup-micromamba@v2
162180
with:
163181
environment-name: wheel-env
@@ -170,6 +188,12 @@ jobs:
170188
cache-downloads: true
171189
cache-environment: true
172190

191+
- name: Install wheel for win_arm64
192+
# installing wheel here because micromamba step was skipped
193+
if: matrix.buildplat[1] == 'win_arm64'
194+
shell: bash -el {0}
195+
run: python -m pip install wheel
196+
173197
- name: Validate wheel RECORD
174198
shell: bash -el {0}
175199
run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ci:
1919
skip: [pyright, mypy]
2020
repos:
2121
- repo: https://github.com/astral-sh/ruff-pre-commit
22-
rev: v0.11.8
22+
rev: v0.11.12
2323
hooks:
2424
- id: ruff
2525
args: [--exit-non-zero-on-fix]
@@ -74,7 +74,7 @@ repos:
7474
hooks:
7575
- id: isort
7676
- repo: https://github.com/asottile/pyupgrade
77-
rev: v3.19.1
77+
rev: v3.20.0
7878
hooks:
7979
- id: pyupgrade
8080
args: [--py310-plus]
@@ -95,14 +95,14 @@ repos:
9595
- id: sphinx-lint
9696
args: ["--enable", "all", "--disable", "line-too-long"]
9797
- repo: https://github.com/pre-commit/mirrors-clang-format
98-
rev: v20.1.3
98+
rev: v20.1.5
9999
hooks:
100100
- id: clang-format
101101
files: ^pandas/_libs/src|^pandas/_libs/include
102102
args: [-i]
103103
types_or: [c, c++]
104104
- repo: https://github.com/trim21/pre-commit-mirror-meson
105-
rev: v1.8.0
105+
rev: v1.8.1
106106
hooks:
107107
- id: meson-fmt
108108
args: ['--inplace']

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
-----------------
77

8-
# pandas: powerful Python data analysis toolkit
8+
# pandas: A Powerful Python Data Analysis Toolkit
99

1010
| | |
1111
| --- | --- |

asv_bench/asv.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
// followed by the pip installed packages).
4343
"matrix": {
4444
"pip+build": [],
45-
"Cython": ["3.0"],
45+
"Cython": [],
4646
"matplotlib": [],
4747
"sqlalchemy": [],
4848
"scipy": [],

ci/deps/actions-310-minimum_versions.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies:
88

99
# build dependencies
1010
- versioneer
11-
- cython>=0.29.33
11+
- cython<4.0.0a0
1212
- meson=1.2.1
1313
- meson-python=0.13.1
1414

@@ -18,7 +18,7 @@ dependencies:
1818
- pytest-xdist>=3.4.0
1919
- pytest-localserver>=0.8.1
2020
- pytest-qt>=4.4.0
21-
- boto3
21+
- boto3=1.37.3
2222

2323
# required dependencies
2424
- python-dateutil=2.8.2

ci/deps/actions-310.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies:
66

77
# build dependencies
88
- versioneer
9-
- cython>=0.29.33
9+
- cython<4.0.0a0
1010
- meson=1.2.1
1111
- meson-python=0.13.1
1212

@@ -16,7 +16,7 @@ dependencies:
1616
- pytest-xdist>=3.4.0
1717
- pytest-localserver>=0.8.1
1818
- pytest-qt>=4.4.0
19-
- boto3
19+
- boto3=1.37.3
2020

2121
# required dependencies
2222
- python-dateutil

ci/deps/actions-311-downstream_compat.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies:
77

88
# build dependencies
99
- versioneer
10-
- cython>=0.29.33
10+
- cython<4.0.0a0
1111
- meson=1.2.1
1212
- meson-python=0.13.1
1313

@@ -17,7 +17,7 @@ dependencies:
1717
- pytest-xdist>=3.4.0
1818
- pytest-localserver>=0.8.1
1919
- pytest-qt>=4.4.0
20-
- boto3
20+
- boto3=1.37.3
2121

2222
# required dependencies
2323
- python-dateutil

ci/deps/actions-311-numpydev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies:
88
- versioneer
99
- meson=1.2.1
1010
- meson-python=0.13.1
11-
- cython>=0.29.33
11+
- cython<4.0.0a0
1212

1313
# test dependencies
1414
- pytest>=7.3.2

ci/deps/actions-311-pyarrownightly.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies:
77
# build dependencies
88
- versioneer
99
- meson=1.2.1
10-
- cython>=0.29.33
10+
- cython<4.0.0a0
1111
- meson-python=0.13.1
1212

1313
# test dependencies

ci/deps/actions-311.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies:
66

77
# build dependencies
88
- versioneer
9-
- cython>=0.29.33
9+
- cython<4.0.0a0
1010
- meson=1.2.1
1111
- meson-python=0.13.1
1212

@@ -16,7 +16,7 @@ dependencies:
1616
- pytest-xdist>=3.4.0
1717
- pytest-localserver>=0.8.1
1818
- pytest-qt>=4.4.0
19-
- boto3
19+
- boto3=1.37.3
2020

2121
# required dependencies
2222
- python-dateutil

ci/deps/actions-312.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies:
66

77
# build dependencies
88
- versioneer
9-
- cython>=0.29.33
9+
- cython<4.0.0a0
1010
- meson=1.2.1
1111
- meson-python=0.13.1
1212

@@ -16,7 +16,7 @@ dependencies:
1616
- pytest-xdist>=3.4.0
1717
- pytest-localserver>=0.8.1
1818
- pytest-qt>=4.4.0
19-
- boto3
19+
- boto3=1.37.3
2020

2121
# required dependencies
2222
- python-dateutil

ci/deps/actions-313-freethreading.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ dependencies:
77
# build dependencies
88
- setuptools
99
- versioneer
10+
- cython<4.0.0a0
1011
- meson=1.8.0
1112
- meson-python=0.18.0
1213

@@ -21,10 +22,8 @@ dependencies:
2122
# optional dependencies
2223
- hypothesis>=6.84.0
2324

24-
# Move Cython to build dependencies, once they release a version that supports freethreading
2525
- pip:
2626
# No free-threaded coveragepy (with the C-extension) on conda-forge yet
2727
- pytest-cov
2828
- "tzdata>=2022.7"
2929
- "--extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
30-
- "cython"

ci/deps/actions-313.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies:
66

77
# build dependencies
88
- versioneer
9-
- cython>=0.29.33
9+
- cython<4.0.0a0
1010
- meson=1.2.1
1111
- meson-python=0.13.1
1212

@@ -16,7 +16,7 @@ dependencies:
1616
- pytest-xdist>=3.4.0
1717
- pytest-localserver>=0.8.1
1818
- pytest-qt>=4.4.0
19-
- boto3
19+
- boto3=1.37.3
2020

2121
# required dependencies
2222
- python-dateutil

ci/deps/actions-pypy-39.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies:
99

1010
# build dependencies
1111
- versioneer
12-
- cython>=0.29.33
12+
- cython<4.0.0a0
1313
- meson=1.2.1
1414
- meson-python=0.13.1
1515

doc/cheatsheet/Pandas_Cheat_Sheet.pdf

28.6 KB
Binary file not shown.
-1 Bytes
Binary file not shown.

doc/source/development/community.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Any community member can open issues to:
7777
- Ask questions, e.g. "I noticed the behavior of a certain function
7878
changed between versions. Is this expected?".
7979

80-
Ideally, your questions should be related to how pandas works rather
80+
- Ideally, your questions should be related to how pandas works rather
8181
than how you use pandas. `StackOverflow <https://stackoverflow.com/>`_ is
8282
better suited for answering usage questions, and we ask that all usage
8383
questions are first asked on StackOverflow. Thank you for respecting our

doc/source/development/contributing.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -234,14 +234,14 @@ and merged into project to appear the in the next release. To submit a pull requ
234234
#. Write a descriptive title that includes prefixes. pandas uses a convention for title
235235
prefixes. Here are some common ones along with general guidelines for when to use them:
236236

237-
* ENH: Enhancement, new functionality
238-
* BUG: Bug fix
239-
* DOC: Additions/updates to documentation
240-
* TST: Additions/updates to tests
241-
* BLD: Updates to the build process/scripts
242-
* PERF: Performance improvement
243-
* TYP: Type annotations
244-
* CLN: Code cleanup
237+
* ENH: Enhancement, new functionality
238+
* BUG: Bug fix
239+
* DOC: Additions/updates to documentation
240+
* TST: Additions/updates to tests
241+
* BLD: Updates to the build process/scripts
242+
* PERF: Performance improvement
243+
* TYP: Type annotations
244+
* CLN: Code cleanup
245245

246246
#. Write a description of your changes in the ``Preview Discussion`` tab
247247
#. Click ``Send Pull Request``.

doc/source/development/contributing_codebase.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -444,11 +444,11 @@ be located.
444444
result = ser.loc[[3, 4]]
445445
tm.assert_series_equal(result, expected)
446446
447-
In cases like this, the test location should be based on the *underlying*
448-
method being tested. Or in the case of a test for a bugfix, the location
449-
of the actual bug. So in this example, we know that ``Series.__getitem__``
450-
calls ``Series.loc.__getitem__``, so this is *really* a test for
451-
``loc.__getitem__``. So this test belongs in ``tests.indexing.test_loc``.
447+
In cases like this, the test location should be based on the *underlying*
448+
method being tested. Or in the case of a test for a bugfix, the location
449+
of the actual bug. So in this example, we know that ``Series.__getitem__``
450+
calls ``Series.loc.__getitem__``, so this is *really* a test for
451+
``loc.__getitem__``. So this test belongs in ``tests.indexing.test_loc``.
452452

453453
6. Is your test for a DataFrame or Series method?
454454

doc/source/development/contributing_environment.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ This option allows you to configure where meson stores your built C extensions,
251251
Sometimes, it might be useful to compile pandas with debugging symbols, when debugging C extensions.
252252
Appending ``-Csetup-args="-Ddebug=true"`` will do the trick.
253253

254-
With pip, it is possible to chain together multiple config settings (for example specifying both a build directory
254+
With pip, it is possible to chain together multiple config settings. For example, specifying both a build directory
255255
and building with debug symbols would look like
256256
``-Cbuilddir="your builddir here" -Csetup-args="-Dbuildtype=debug"``.
257257

doc/source/development/contributing_gitpod.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ Option 1: using Liveserve
158158
file and click on **Open with Live Serve**. Alternatively, you can open the
159159
file in the editor and click on the **Go live** button on the status bar.
160160

161-
.. image:: ./gitpod-imgs/vscode-statusbar.png
162-
:alt: Gitpod workspace VSCode start live serve screenshot
161+
.. image:: ./gitpod-imgs/vscode-statusbar.png
162+
:alt: Gitpod workspace VSCode start live serve screenshot
163163

164164
#. A simple browser will open to the right-hand side of the editor. We recommend
165165
closing it and click on the **Open in browser** button in the pop-up.
@@ -182,13 +182,13 @@ uses the rst extension with docutils.
182182
:kbd:`Ctrl-Shift-P` in Linux and Windows. Start typing "restructured"
183183
and choose either "Open preview" or "Open preview to the Side".
184184

185-
.. image:: ./gitpod-imgs/vscode-rst.png
186-
:alt: Gitpod workspace VSCode open rst screenshot
185+
.. image:: ./gitpod-imgs/vscode-rst.png
186+
:alt: Gitpod workspace VSCode open rst screenshot
187187

188188
#. As you work on the document, you will see a live rendering of it on the editor.
189189

190-
.. image:: ./gitpod-imgs/rst-rendering.png
191-
:alt: Gitpod workspace VSCode rst rendering screenshot
190+
.. image:: ./gitpod-imgs/rst-rendering.png
191+
:alt: Gitpod workspace VSCode rst rendering screenshot
192192

193193
If you want to see the final output with the ``html`` theme you will need to
194194
rebuild the docs with ``make html`` and use Live Serve as described in option 1.

doc/source/development/debugging_extensions.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ pandas uses Cython and C/C++ `extension modules <https://docs.python.org/3/exten
1010

1111
For Python developers with limited or no C/C++ experience this can seem a daunting task. Core developer Will Ayd has written a 3 part blog series to help guide you from the standard Python debugger into these other tools:
1212

13-
1. `Fundamental Python Debugging Part 1 - Python <https://willayd.com/fundamental-python-debugging-part-1-python.html>`_
14-
2. `Fundamental Python Debugging Part 2 - Python Extensions <https://willayd.com/fundamental-python-debugging-part-2-python-extensions.html>`_
15-
3. `Fundamental Python Debugging Part 3 - Cython Extensions <https://willayd.com/fundamental-python-debugging-part-3-cython-extensions.html>`_
13+
1. `Fundamental Python Debugging Part 1 - Python <https://willayd.com/fundamental-python-debugging-part-1-python.html>`_
14+
2. `Fundamental Python Debugging Part 2 - Python Extensions <https://willayd.com/fundamental-python-debugging-part-2-python-extensions.html>`_
15+
3. `Fundamental Python Debugging Part 3 - Cython Extensions <https://willayd.com/fundamental-python-debugging-part-3-cython-extensions.html>`_
1616

1717
Debugging locally
1818
-----------------

0 commit comments

Comments
 (0)