Skip to content

Commit 1d262ab

Browse files
committed
Merge branch 'main' of https://github.com/pandas-dev/pandas into cln_enforce_na_validation
2 parents d593ffa + 5cc3240 commit 1d262ab

File tree

202 files changed

+3057
-1356
lines changed

Some content is hidden

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

202 files changed

+3057
-1356
lines changed

.github/workflows/unit-tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ jobs:
243243
. ~/virtualenvs/pandas-dev/bin/activate
244244
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
245245
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
246-
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.116.0
246+
python -m pip install --no-cache-dir versioneer[toml] cython==3.0.10 python-dateutil pytest>=8.3.4 pytest-xdist>=3.6.1 hypothesis>=6.116.0
247247
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
248248
python -m pip list --no-cache-dir
249249
PANDAS_CI=1 python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
@@ -280,7 +280,7 @@ jobs:
280280
/opt/python/cp313-cp313/bin/python -m venv ~/virtualenvs/pandas-dev
281281
. ~/virtualenvs/pandas-dev/bin/activate
282282
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
283-
python -m pip install --no-cache-dir versioneer[toml] cython numpy python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.116.0
283+
python -m pip install --no-cache-dir versioneer[toml] cython numpy python-dateutil pytest>=8.3.4 pytest-xdist>=3.6.1 hypothesis>=6.116.0
284284
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
285285
python -m pip list --no-cache-dir
286286
@@ -352,7 +352,7 @@ jobs:
352352
python --version
353353
python -m pip install --upgrade pip setuptools wheel meson[ninja]==1.2.1 meson-python==0.13.1
354354
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy
355-
python -m pip install versioneer[toml] python-dateutil tzdata cython hypothesis>=6.116.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
355+
python -m pip install versioneer[toml] python-dateutil tzdata cython hypothesis>=6.116.0 pytest>=8.3.4 pytest-xdist>=3.6.1 pytest-cov
356356
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
357357
python -m pip list
358358

.github/workflows/wheels.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ jobs:
162162
run: echo "sdist_name=$(cd ./dist && ls -d */)" >> "$GITHUB_ENV"
163163

164164
- name: Build wheels
165-
uses: pypa/cibuildwheel@v3.1.4
165+
uses: pypa/cibuildwheel@v3.2.0
166166
with:
167167
package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }}
168168
env:
@@ -239,7 +239,7 @@ jobs:
239239

240240
steps:
241241
- name: Download all artefacts
242-
uses: actions/download-artifact@v4
242+
uses: actions/download-artifact@v5
243243
with:
244244
path: dist # everything lands in ./dist/**
245245

Dockerfile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
FROM python:3.11.13
22
WORKDIR /home/pandas
33

4+
# https://docs.docker.com/reference/dockerfile/#automatic-platform-args-in-the-global-scope
5+
ARG TARGETPLATFORM
6+
47
RUN apt-get update && \
58
apt-get --no-install-recommends -y upgrade && \
69
apt-get --no-install-recommends -y install \
@@ -13,7 +16,14 @@ RUN apt-get update && \
1316
rm -rf /var/lib/apt/lists/*
1417

1518
COPY requirements-dev.txt /tmp
16-
RUN python -m pip install --no-cache-dir --upgrade pip && \
19+
20+
RUN case "$TARGETPLATFORM" in \
21+
linux/arm*) \
22+
# Drop PyQt5 for ARM GH#61037
23+
sed -i "/^pyqt5/Id" /tmp/requirements-dev.txt \
24+
;; \
25+
esac && \
26+
python -m pip install --no-cache-dir --upgrade pip && \
1727
python -m pip install --no-cache-dir -r /tmp/requirements-dev.txt
1828
RUN git config --global --add safe.directory /home/pandas
1929

asv_bench/benchmarks/algorithms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,8 @@ class SortIntegerArray:
199199
params = [10**3, 10**5]
200200

201201
def setup(self, N):
202-
data = np.arange(N, dtype=float)
203-
data[40] = np.nan
202+
data = np.arange(N, dtype=float).astype(object)
203+
data[40] = pd.NA
204204
self.array = pd.array(data, dtype="Int64")
205205

206206
def time_argsort(self, N):

asv_bench/benchmarks/frame_methods.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import numpy as np
55

66
from pandas import (
7+
NA,
78
DataFrame,
89
Index,
910
MultiIndex,
@@ -445,6 +446,8 @@ def setup(self, inplace, dtype):
445446
values[::2] = np.nan
446447
if dtype == "Int64":
447448
values = values.round()
449+
values = values.astype(object)
450+
values[::2] = NA
448451
self.df = DataFrame(values, dtype=dtype)
449452
self.fill_values = self.df.iloc[self.df.first_valid_index()].to_dict()
450453

asv_bench/benchmarks/groupby.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,10 @@ def setup(self, dtype, method, with_nans):
689689
null_vals = vals.astype(float, copy=True)
690690
null_vals[::2, :] = np.nan
691691
null_vals[::3, :] = np.nan
692+
if dtype in ["Int64", "Float64"]:
693+
null_vals = null_vals.astype(object)
694+
null_vals[::2, :] = NA
695+
null_vals[::3, :] = NA
692696
df = DataFrame(null_vals, columns=list("abcde"), dtype=dtype)
693697
df["key"] = keys
694698
self.df = df

ci/deps/actions-311-minimum_versions.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ dependencies:
1313
- meson-python=0.13.1
1414

1515
# test dependencies
16-
- pytest>=7.3.2
16+
- pytest>=8.3.4
1717
- pytest-cov
18-
- pytest-xdist>=3.4.0
19-
- pytest-localserver>=0.8.1
18+
- pytest-xdist>=3.6.1
19+
- pytest-localserver>=0.9.0
2020
- pytest-qt>=4.4.0
2121
- boto3=1.37.3
2222

ci/deps/actions-311.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ dependencies:
1111
- meson-python=0.13.1
1212

1313
# test dependencies
14-
- pytest>=7.3.2
14+
- pytest>=8.3.4
1515
- pytest-cov
16-
- pytest-xdist>=3.4.0
17-
- pytest-localserver>=0.8.1
16+
- pytest-xdist>=3.6.1
17+
- pytest-localserver>=0.9.0
1818
- pytest-qt>=4.4.0
1919
- boto3=1.37.3
2020

ci/deps/actions-312.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ dependencies:
1111
- meson-python=0.13.1
1212

1313
# test dependencies
14-
- pytest>=7.3.2
14+
- pytest>=8.3.4
1515
- pytest-cov
16-
- pytest-xdist>=3.4.0
17-
- pytest-localserver>=0.8.1
16+
- pytest-xdist>=3.6.1
17+
- pytest-localserver>=0.9.0
1818
- pytest-qt>=4.4.0
1919
- boto3=1.37.3
2020

ci/deps/actions-313-downstream_compat.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ dependencies:
1212
- meson-python=0.13.1
1313

1414
# test dependencies
15-
- pytest>=7.3.2
15+
- pytest>=8.3.4
1616
- pytest-cov
17-
- pytest-xdist>=3.4.0
18-
- pytest-localserver>=0.8.1
17+
- pytest-xdist>=3.6.1
18+
- pytest-localserver>=0.9.0
1919
- pytest-qt>=4.4.0
2020
- boto3=1.37.3
2121

0 commit comments

Comments
 (0)