Skip to content

BUG: Fix RecursionError when apply native container types as a func (… #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 76 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
cf6de58
BUG: Series.dot for arrow and nullable dtypes returns object-dtyped s…
theavey Apr 29, 2025
07039a6
CLN: Use newer numpy random Generator methods in plotting colors (#61…
mroeschke Apr 30, 2025
caa58c7
CI: Have dedicated Python 3.13 job instead of using Python dev (#61333)
mroeschke Apr 30, 2025
e55d907
DOC: Fix dark mode text visibility in Getting Started accordion (#600…
danielpintosalazar Apr 30, 2025
337d40e
DOC: Improve `api.types.is_dtype_equal` docstring (#61394)
chilin0525 May 3, 2025
7bb58a8
[pre-commit.ci] pre-commit autoupdate (#61397)
pre-commit-ci[bot] May 5, 2025
7595ed5
BUG: Fix naive timestamps inheriting timezone from previous timestamp…
myenugula May 6, 2025
2e141aa
Subplot title count fix + fix for issue introduced in earlier PR (#6…
eicchen May 7, 2025
8045c2d
DEPS: Clean unused dependencies (#61331)
mroeschke May 8, 2025
cdc5b74
DOC: removed none from docstring (#61411)
arthurlw May 8, 2025
9c5b9ee
DOC: Updated titanic.rst survived description (#61421)
arthurlw May 9, 2025
3832e85
String dtype: more informative repr (keeping brief __str__) (#61148)
jorisvandenbossche May 10, 2025
f496acf
DOC: update pandas cheat sheet with a third page (fixes #40680) (#61378)
Shoestring42 May 11, 2025
9bfbe9e
DOC: Updates to documentation - io.rst (#61429)
ConnorWallace15 May 12, 2025
839747c
BLD: Decrease size of docker image (#61430)
huisman May 12, 2025
41968a5
CI: Fix test failures in 32-bit environment (#61423)
chilin0525 May 13, 2025
e637b42
ENH: Implement pandas.read_iceberg (#61383)
datapythonista May 14, 2025
29e0146
BUG: Impossible creation of array with dtype=string (#61263)
Manju080 May 15, 2025
b2b2d04
CI: Upgrade to ubuntu-24.04, install Python free threading from conda…
mroeschke May 15, 2025
341f161
BLD: Try using shared memory utilities in Cython to reduce wheel size…
lithomas1 May 16, 2025
17f0dd6
CI: clean up wheel build workarounds now that Cython 3.1.0 is out (#6…
rgommers May 16, 2025
3543e96
DOC: Skip parallel_coordinaes, andrews_curves doctests (#61448)
mroeschke May 16, 2025
5aa78c0
DOC: fix typo in merging.rst (#61449)
wjandrea May 17, 2025
5b0767a
DOC: User Guide Page on user-defined functions (#61195)
arthurlw May 18, 2025
6177e22
API (string dtype): implement hierarchy (NA > NaN, pyarrow > python) …
jorisvandenbossche May 19, 2025
ae8ea3e
BUG: Fix DataFrame constructor misclassification of array-like with '…
iabhi4 May 19, 2025
6879598
DOC: change `pandas.DataFrame.unstack`'s `fill_value` param to scalar…
KevsterAmp May 19, 2025
801bb24
TYP: Update typing for 3.10 (#61453)
Dr-Irv May 19, 2025
eca6bd3
PERF: Restore old performances with .isin() on columns typed as np.ui…
pbrochart May 19, 2025
7d8f5bd
DOC: fix two mistakes in missing_data.rst (#61461)
gogowitsch May 19, 2025
09a17c7
CLN: Expose arguments in DataFrame.query (#61413)
loicdiridollou May 20, 2025
c75171a
BUG: Fix #57608: queries on categorical string columns in HDFStore.se…
SofiaSM45 May 20, 2025
fe60f43
DOC: Fix pivot_table and index.name descriptions (#61455)
cmp0xff May 20, 2025
6a2da7a
BUG: round on object columns no longer raises a TypeError (#61399)
KevsterAmp May 21, 2025
1321954
DOC: Expand on different Getitem uses (#60806)
afeld May 21, 2025
e2bd8e6
Wheels for win_arm64 (#61463)
khmyznikov May 21, 2025
cfe54bd
Bug cov nat (#60898)
fbourgey May 23, 2025
09e6754
DOC: Fix incorrect reST markups in What's new (#61492)
koyuki7w May 26, 2025
50e23e7
DOC: Fix sparse and dense array memory usage comparison. (#61495)
JMRaczynski May 26, 2025
f8d93d8
DOC: Restructure and expand UDF page (#61470)
datapythonista May 27, 2025
46e1c60
DOC: Fixes dangling parenthesis in `.rst` files (#61501)
mattpopovich May 27, 2025
1ccdfe6
DOC: use Hashable instead of label (#61500)
cmp0xff May 27, 2025
71885ec
DOC: Typo in shared_docs (#61497)
wjandrea May 27, 2025
97897e1
CLN Replace direct import of closing with qualified contextlib usage …
mheguy May 27, 2025
f2f24a9
ENH: Support third-party execution engines in Series.map (#61467)
datapythonista May 27, 2025
f45cc97
ENH: Added dict support for `pd.set_option` (#61151)
arthurlw May 29, 2025
f31a4b1
BUGFIX: escape `quotechar` when `escapechar` is not None (even if quo…
KevsterAmp May 30, 2025
2378141
BUG: Fix inconsistent returned objects when applying groupby aggregat…
arthurlw May 30, 2025
8981a0f
BUG: Raise clear error for duplicate id_vars in melt (GH61475) (#61484)
ZanirP May 30, 2025
3555dbc
BUG: Fix DatetimeIndex timezone preservation when joining indexes wit…
myenugula May 30, 2025
c708e15
TST: Use external_error_raised for numpy-raised test_error_invalid_va…
mroeschke May 30, 2025
7b72112
DOC: Typo fix for .astype() in cheatsheet (#61528)
brchristian Jun 2, 2025
9069247
DOC: fix ES01 for pandas.plotting.autocorrelation_plot (#61526)
tuhinsharma121 Jun 2, 2025
279f597
BUG: Fix sorting by column named None in DataFrame.sort_values (GH#61…
iabhi4 Jun 2, 2025
4a09336
DOC: Improve lookup documentation (#61471)
stevenae Jun 2, 2025
25e6462
[pre-commit.ci] pre-commit autoupdate (#61536)
pre-commit-ci[bot] Jun 2, 2025
2cc6b1d
DOC: Move PyCapsule whatsnew note from v3.0.0 to v2.3.0 (#61553)
MarcoGorelli Jun 4, 2025
cb8ac5e
TST: Add error message for test_groupby_raises_category_on_category f…
mroeschke Jun 4, 2025
5c286b7
BUILD: Bump Cython to 3.1 (#61519)
rhshadrach Jun 4, 2025
1f6f42a
DOC: Set date for v2.3.0.rst whatsnew (#61560)
mroeschke Jun 4, 2025
e413e0f
WEB: Update versions.json for 2.3 (#61562)
mroeschke Jun 5, 2025
05f032c
BUG: Fix JSON typo that breaks javascript in the docs (#61572)
datapythonista Jun 5, 2025
1907822
DOC: Fix typos (#61580)
omahs Jun 6, 2025
eea6d0e
WEB: Refine PDEP presentation (#58791)
rhshadrach Jun 6, 2025
297bec4
BUG: Raise MergeError when suffixes result in duplicate column names …
Farsidetfs Jun 6, 2025
a62553e
DOC: Fix typo in to_html and to_string docs (#61555)
datapythonista Jun 6, 2025
90a18fc
BUILD: Add wheels for musllinux_aarch64 (#61567)
cdce8p Jun 6, 2025
6a9d50c
Avoid re-enabling the GIL at runtime (#61589)
lysnikolaou Jun 6, 2025
085e18f
CI: Update Python version to 3.11 in environment.yml (#61592)
datapythonista Jun 6, 2025
e6da5f2
WEB: Moving maintainers to inactive status (#61591)
datapythonista Jun 6, 2025
2096b28
DOC: Validate versions.json before building docs #61573 (#61578)
iabhi4 Jun 7, 2025
e2558d8
WEB: Restore website width and improve table of contents style (#61593)
datapythonista Jun 8, 2025
7d542b4
WEB: remove "String data type" from "Roadmap points pending a PDEP" s…
simonjayhawkins Jun 8, 2025
de357d3
Update whatsnew for issue #53115 (#61586)
fbourgey Jun 9, 2025
b8371f5
ENH: Implement to_iceberg (#61507)
datapythonista Jun 9, 2025
1390f74
BUG: Fix RecursionError when apply native container types as a func (…
heoh Jun 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,3 @@ pandas/tests/io/parser/data export-ignore

# Include cibw script in sdist since it's needed for building wheels
scripts/cibw_before_build.sh -export-ignore
scripts/cibw_before_build_windows.sh -export-ignore
scripts/cibw_before_test_windows.sh -export-ignore
7 changes: 5 additions & 2 deletions .github/actions/build_pandas/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ inputs:
editable:
description: Whether to build pandas in editable mode (default true)
default: true
werror:
description: Enable werror flag for build
default: true
runs:
using: composite
steps:
Expand All @@ -26,9 +29,9 @@ runs:
run: |
if [[ ${{ inputs.editable }} == "true" ]]; then
pip install -e . --no-build-isolation -v --no-deps \
-Csetup-args="--werror"
${{ inputs.werror == 'true' && '-Csetup-args="--werror"' || '' }}
else
pip install . --no-build-isolation -v --no-deps \
-Csetup-args="--werror"
${{ inputs.werror == 'true' && '-Csetup-args="--werror"' || '' }}
fi
shell: bash -el {0}
8 changes: 4 additions & 4 deletions .github/workflows/code-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ permissions:
jobs:
docstring_typing_manual_hooks:
name: Docstring validation, typing, and other manual pre-commit hooks
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:

asv-benchmarks:
name: ASV Benchmarks
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:

build_docker_dev_environment:
name: Build Docker Dev Environment
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -el {0}
Expand All @@ -160,7 +160,7 @@ jobs:

requirements-dev-text-installable:
name: Test install requirements-dev.txt
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

concurrency:
# https://github.yungao-tech.community/t/concurrecy-not-work-for-push/183068/7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ permissions:

jobs:
analyze:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/comment-commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:

jobs:
issue_assign:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: (!github.event.issue.pull_request) && github.event.comment.body == 'take'
concurrency:
group: ${{ github.actor }}-issue-assign
Expand All @@ -19,7 +19,7 @@ jobs:
echo "Assigning issue ${{ github.event.issue.number }} to ${{ github.event.comment.user.login }}"
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"assignees": ["${{ github.event.comment.user.login }}"]}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees
preview_docs:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: github.event.issue.pull_request && github.event.comment.body == '/preview'
concurrency:
group: ${{ github.actor }}-preview-docs
Expand All @@ -29,7 +29,7 @@ jobs:
previewer-server: "https://pandas.pydata.org/preview"
artifact-job: "Doc Build and Upload"
asv_run:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
# TODO: Support more benchmarking options later, against different branches, against self, etc
if: github.event.issue.pull_request && startsWith(github.event.comment.body, '@github-actions benchmark')
defaults:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deprecation-tracking-bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
deprecation_update:
permissions:
issues: write
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
DEPRECATION_TRACKER_ISSUE: 56596
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docbuild-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ permissions:
jobs:
web_and_docs:
name: Doc Build and Upload
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

concurrency:
# https://github.yungao-tech.community/t/concurrecy-not-work-for-push/183068/7
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/package-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ defaults:
jobs:
pip:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
extra: ["test", "pyarrow", "performance", "computation", "fss", "aws", "gcp", "excel", "parquet", "feather", "hdf5", "spss", "postgresql", "mysql", "sql-other", "html", "xml", "plot", "output-formatting", "clipboard", "compression", "all"]
Expand Down Expand Up @@ -50,7 +50,7 @@ jobs:
shell: bash -el {0}
conda_forge_recipe:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ['3.10', '3.11']
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
permissions:
pull-requests: write
if: github.repository_owner == 'pandas-dev'
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/stale@v9
with:
Expand Down
87 changes: 27 additions & 60 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ jobs:
timeout-minutes: 90
strategy:
matrix:
platform: [ubuntu-22.04, ubuntu-24.04-arm]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml]
platform: [ubuntu-24.04, ubuntu-24.04-arm]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
# Prevent the include jobs from overriding other jobs
pattern: [""]
pandas_future_infer_string: ["0"]
Expand All @@ -36,11 +36,15 @@ jobs:
env_file: actions-311-downstream_compat.yaml
pattern: "not slow and not network and not single_cpu"
pytest_target: "pandas/tests/test_downstream.py"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Minimum Versions"
env_file: actions-310-minimum_versions.yaml
pattern: "not slow and not network and not single_cpu"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Freethreading"
env_file: actions-313-freethreading.yaml
pattern: "not slow and not network and not single_cpu"
platform: ubuntu-24.04
- name: "Locale: it_IT"
env_file: actions-311.yaml
pattern: "not slow and not network and not single_cpu"
Expand All @@ -51,7 +55,7 @@ jobs:
# Also install it_IT (its encoding is ISO8859-1) but do not activate it.
# It will be temporarily activated during tests with locale.setlocale
extra_loc: "it_IT"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Locale: zh_CN"
env_file: actions-311.yaml
pattern: "not slow and not network and not single_cpu"
Expand All @@ -62,30 +66,30 @@ jobs:
# Also install zh_CN (its encoding is gb2312) but do not activate it.
# It will be temporarily activated during tests with locale.setlocale
extra_loc: "zh_CN"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Future infer strings"
env_file: actions-312.yaml
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Future infer strings (without pyarrow)"
env_file: actions-311.yaml
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Pypy"
env_file: actions-pypy-39.yaml
pattern: "not slow and not network and not single_cpu"
test_args: "--max-worker-restart 0"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Numpy Dev"
env_file: actions-311-numpydev.yaml
pattern: "not slow and not network and not single_cpu"
test_args: "-W error::DeprecationWarning -W error::FutureWarning"
platform: ubuntu-22.04
platform: ubuntu-24.04
- name: "Pyarrow Nightly"
env_file: actions-311-pyarrownightly.yaml
pattern: "not slow and not network and not single_cpu"
pandas_future_infer_string: "1"
platform: ubuntu-22.04
platform: ubuntu-24.04
fail-fast: false
name: ${{ matrix.name || format('{0} {1}', matrix.platform, matrix.env_file) }}
env:
Expand Down Expand Up @@ -165,6 +169,9 @@ jobs:
- name: Build Pandas
id: build
uses: ./.github/actions/build_pandas
with:
# xref https://github.com/cython/cython/issues/6870
werror: ${{ matrix.name != 'Freethreading' }}
# TODO: Re-enable once Pypy has Pypy 3.10 on conda-forge
if: ${{ matrix.name != 'Pypy' }}

Expand All @@ -188,7 +195,7 @@ jobs:
matrix:
# Note: Don't use macOS latest since macos 14 appears to be arm64 only
os: [macos-13, macos-14, windows-latest]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml]
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{ format('{0} {1}', matrix.os, matrix.env_file) }}
Expand Down Expand Up @@ -220,7 +227,7 @@ jobs:
uses: ./.github/actions/run-tests

Linux-32-bit:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: quay.io/pypa/manylinux2014_i686
options: --platform linux/386
Expand All @@ -241,12 +248,14 @@ jobs:
fi
- name: Build environment and Run Tests
# https://github.com/numpy/numpy/issues/24703#issuecomment-1722379388
# Note: Pinned to Cython 3.0.10 to avoid numerical instability in 32-bit environments
# https://github.com/pandas-dev/pandas/pull/61423
run: |
/opt/python/cp313-cp313/bin/python -m venv ~/virtualenvs/pandas-dev
. ~/virtualenvs/pandas-dev/bin/activate
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
python -m pip install --no-cache-dir versioneer[toml] cython==3.0.10 python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
python -m pip list --no-cache-dir
PANDAS_CI=1 python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
Expand All @@ -256,7 +265,7 @@ jobs:
cancel-in-progress: true

Linux-Musl:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: quay.io/pypa/musllinux_1_2_x86_64
steps:
Expand Down Expand Up @@ -316,7 +325,7 @@ jobs:
# To freeze this file, uncomment out the ``if: false`` condition, and migrate the jobs
# to the corresponding posix/windows-macos/sdist etc. workflows.
# Feel free to modify this comment as necessary.
# if: false # Uncomment this to freeze the workflow, comment it to unfreeze
if: false
defaults:
run:
shell: bash -eou pipefail {0}
Expand All @@ -325,7 +334,7 @@ jobs:
fail-fast: false
matrix:
# Separate out macOS 13 and 14, since macOS 14 is arm64 only
os: [ubuntu-22.04, macOS-13, macOS-14, windows-latest]
os: [ubuntu-24.04, macOS-13, macOS-14, windows-latest]

timeout-minutes: 90

Expand Down Expand Up @@ -362,48 +371,6 @@ jobs:
- name: Run Tests
uses: ./.github/actions/run-tests

python-freethreading:
defaults:
run:
shell: bash -eou pipefail {0}
runs-on: ubuntu-22.04

timeout-minutes: 90

concurrency:
# https://github.yungao-tech.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-python-freethreading-dev
cancel-in-progress: true

env:
PYTEST_WORKERS: "auto"
PANDAS_CI: 1
PATTERN: "not slow and not network and not clipboard and not single_cpu"
PYTEST_TARGET: pandas

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python Free-threading Version
uses: deadsnakes/action@v3.2.0
with:
python-version: 3.13-dev
nogil: true

- name: Build Environment
run: |
python --version
python -m pip install --upgrade pip setuptools wheel numpy meson[ninja]==1.2.1 meson-python==0.13.1
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython
python -m pip install versioneer[toml] python-dateutil pytz tzdata hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
python -m pip list

- name: Run Tests
uses: ./.github/actions/run-tests

# NOTE: this job must be kept in sync with the Pyodide build job in wheels.yml
emscripten:
# Note: the Python version, Emscripten toolchain version are determined
Expand All @@ -413,7 +380,7 @@ jobs:
# The Node.js version can be determined via Pyodide:
# https://pyodide.org/en/stable/usage/index.html#node-js
name: Pyodide build
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency:
# https://github.yungao-tech.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
Expand Down
Loading
Loading