Skip to content

Commit c256aa1

Browse files
committed
Merge remote-tracking branch 'upstream/main' into feat/pep770-sbom
2 parents d7ede50 + f625e18 commit c256aa1

348 files changed

Lines changed: 18152 additions & 8351 deletions

File tree

Some content is hidden

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

.clang-format

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/workflows/code-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.3.x
7+
- 3.0.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.3.x
11+
- 3.0.x
1212

1313
env:
1414
ENV_FILE: environment.yml

.github/workflows/docbuild-and-upload.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.3.x
7+
- 3.0.x
88
tags:
99
- '*'
1010
pull_request:
1111
branches:
1212
- main
13-
- 2.3.x
13+
- 3.0.x
1414
workflow_dispatch:
1515
inputs:
1616
version:

.github/workflows/package-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.3.x
7+
- 3.0.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.3.x
11+
- 3.0.x
1212
types: [ labeled, opened, synchronize, reopened ]
1313

1414
permissions:

.github/workflows/unit-tests.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.3.x
7+
- 3.0.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.3.x
11+
- 3.0.x
1212
paths-ignore:
1313
- "doc/**"
1414
- "web/**"
@@ -167,7 +167,9 @@ jobs:
167167
id: build
168168
uses: ./.github/actions/build_pandas
169169
with:
170-
# xref https://github.com/cython/cython/issues/6870
170+
# python3.14t/cpython/pyatomic_gcc.h:63:10:
171+
# error: ‘__atomic_fetch_add_8’
172+
# writing 8 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=]
171173
werror: ${{ matrix.name != 'Freethreading' }}
172174

173175
- name: Test (not single_cpu)
@@ -241,14 +243,12 @@ jobs:
241243
fi
242244
- name: Build environment and Run Tests
243245
# https://github.com/numpy/numpy/issues/24703#issuecomment-1722379388
244-
# Note: Pinned to Cython 3.0.10 to avoid numerical instability in 32-bit environments
245-
# https://github.com/pandas-dev/pandas/pull/61423
246246
run: |
247247
/opt/python/cp313-cp313/bin/python -m venv ~/virtualenvs/pandas-dev
248248
. ~/virtualenvs/pandas-dev/bin/activate
249249
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
250250
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
251-
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
251+
python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytest>=8.3.4 pytest-xdist>=3.6.1 hypothesis>=6.116.0
252252
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
253253
python -m pip list --no-cache-dir
254254
PANDAS_CI=1 python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml

.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.14.7
22+
rev: v0.14.10
2323
hooks:
2424
- id: ruff
2525
args: [--exit-non-zero-on-fix]
@@ -92,14 +92,14 @@ repos:
9292
- id: sphinx-lint
9393
args: ["--enable", "all", "--disable", "line-too-long"]
9494
- repo: https://github.com/pre-commit/mirrors-clang-format
95-
rev: v21.1.6
95+
rev: v21.1.8
9696
hooks:
9797
- id: clang-format
9898
files: ^pandas/_libs/src|^pandas/_libs/include
99-
args: [-i]
99+
args: ['-i', '--style', '{IndentPPDirectives: AfterHash}']
100100
types_or: [c, c++]
101101
- repo: https://github.com/trim21/pre-commit-mirror-meson
102-
rev: v1.9.1
102+
rev: v1.10.0
103103
hooks:
104104
- id: meson-fmt
105105
args: ['--inplace']

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ BSD 3-Clause License
33
Copyright (c) 2008-2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
44
All rights reserved.
55

6-
Copyright (c) 2011-2025, Open source contributors.
6+
Copyright (c) 2011-2026, Open source contributors.
77

88
Redistribution and use in source and binary forms, with or without
99
modification, are permitted provided that the following conditions are met:

asv_bench/benchmarks/categoricals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def setup(self):
2929
self.datetimes_with_nat = self.datetimes.copy()
3030
self.datetimes_with_nat.iloc[-1] = pd.NaT
3131

32-
self.values_some_nan = list(np.tile(self.categories + [np.nan], N))
32+
self.values_some_nan = list(np.tile([*self.categories, np.nan], N))
3333
self.values_all_nan = [np.nan] * len(self.values)
3434
self.values_all_int8 = np.ones(N, "int8")
3535
self.categorical = pd.Categorical(self.values, self.categories)

asv_bench/benchmarks/ctors.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ def list_of_lists(arr):
3939

4040

4141
def list_of_tuples_with_none(arr):
42-
return [(i, -i) for i in arr][:-1] + [None]
42+
return [*[(i, -i) for i in arr][:-1], None]
4343

4444

4545
def list_of_lists_with_none(arr):
46-
return [[i, -i] for i in arr][:-1] + [None]
46+
return [*[[i, -i] for i in arr][:-1], None]
4747

4848

4949
class SeriesConstructors:

asv_bench/benchmarks/hash_functions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class Unique:
4444
param_names = ["dtype"]
4545

4646
def setup(self, dtype):
47-
self.ser = pd.Series(([1, pd.NA, 2] + list(range(100_000))) * 3, dtype=dtype)
48-
self.ser_unique = pd.Series(list(range(300_000)) + [pd.NA], dtype=dtype)
47+
self.ser = pd.Series(([1, pd.NA, 2, *range(100000)]) * 3, dtype=dtype)
48+
self.ser_unique = pd.Series([*range(300000), pd.NA], dtype=dtype)
4949

5050
def time_unique_with_duplicates(self, exponent):
5151
pd.unique(self.ser)
@@ -62,7 +62,7 @@ class NumericSeriesIndexing:
6262
param_names = ["dtype", "N"]
6363

6464
def setup(self, dtype, N):
65-
vals = np.array(list(range(55)) + [54] + list(range(55, N - 1)), dtype=dtype)
65+
vals = np.array([*range(55), 54, *range(55, N - 1)], dtype=dtype)
6666
indices = pd.Index(vals)
6767
self.data = pd.Series(np.arange(N), index=indices)
6868

@@ -79,7 +79,7 @@ class NumericSeriesIndexingShuffled:
7979
param_names = ["dtype", "N"]
8080

8181
def setup(self, dtype, N):
82-
vals = np.array(list(range(55)) + [54] + list(range(55, N - 1)), dtype=dtype)
82+
vals = np.array([*range(55), 54, *range(55, N - 1)], dtype=dtype)
8383
np.random.shuffle(vals)
8484
indices = pd.Index(vals)
8585
self.data = pd.Series(np.arange(N), index=indices)

0 commit comments

Comments
 (0)