Skip to content

Commit 9f02dcd

Browse files
Merge remote-tracking branch 'upstream/main' into ci-pyarrow-no-infer-string
2 parents 6aa6ac0 + 757fa84 commit 9f02dcd

141 files changed

Lines changed: 9777 additions & 4784 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.

.github/actions/setup-conda/action.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

.github/workflows/code-checks.yml

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,22 @@ on:
1010
- main
1111
- 3.0.x
1212

13-
env:
14-
ENV_FILE: environment.yml
13+
defaults:
14+
run:
15+
shell: bash -euox pipefail {0}
1516

1617
permissions: {}
1718

18-
# pre-commit run by https://pre-commit.ci/
1919
jobs:
20-
docstring_typing_manual_hooks:
21-
name: Docstring validation, typing, and other manual pre-commit hooks
20+
doctest:
21+
name: Doctests
2222
runs-on: ubuntu-24.04
2323
permissions:
2424
contents: read
25-
defaults:
26-
run:
27-
shell: bash -el {0}
2825

2926
concurrency:
3027
# https://github.blesdmm.dns-dynamic.netmunity/t/concurrecy-not-work-for-push/183068/7
31-
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-code-checks
28+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-doctests
3229
cancel-in-progress: true
3330

3431
steps:
@@ -37,51 +34,63 @@ jobs:
3734
with:
3835
fetch-depth: 0
3936

40-
- name: Set up Conda
41-
uses: ./.github/actions/setup-conda
42-
43-
- name: Build Pandas
44-
id: build
45-
uses: ./.github/actions/build_pandas
37+
- name: Create virtual environment with Pixi
38+
uses: ./.github/actions/setup-pixi
39+
with:
40+
environment: "doctests"
4641

47-
# The following checks are independent of each other and should still be run if one fails
48-
- name: Extra installs
49-
# https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions-azure-pipelines-travis-ci-and-gitlab-ci-cd
50-
run: sudo apt-get update && sudo apt-get install -y libegl1 libopengl0
42+
- name: Build pandas
43+
run: |
44+
pixi run \
45+
--environment doctests \
46+
build-pandas \
47+
--editable \
48+
-Csetup-args="--werror"
5149
5250
- name: Run doctests
53-
run: cd ci && ./code_checks.sh doctests
54-
if: ${{ steps.build.outcome == 'success' && always() }}
51+
run: pixi run --environment doctests ci-doctests
5552

56-
- name: Run checks on imported code
57-
run: ci/code_checks.sh code
58-
if: ${{ steps.build.outcome == 'success' && always() }}
53+
- name: Run scripts tests
54+
run: pixi run --environment doctests ci-scripts-tests
5955

60-
- name: Use existing environment for type checking
61-
run: |
62-
echo $PATH >> $GITHUB_PATH
63-
echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV
64-
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
65-
if: ${{ steps.build.outcome == 'success' && always() }}
56+
type-checking:
57+
name: Type Checking
58+
runs-on: ubuntu-24.04
59+
permissions:
60+
contents: read
61+
62+
concurrency:
63+
# https://github.blesdmm.dns-dynamic.netmunity/t/concurrecy-not-work-for-push/183068/7
64+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-typechecking
65+
cancel-in-progress: true
6666

67-
- name: Typing
68-
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
67+
steps:
68+
- name: Checkout
69+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
6970
with:
70-
extra_args: --verbose --hook-stage manual --all-files
71-
if: ${{ steps.build.outcome == 'success' && always() }}
71+
fetch-depth: 0
7272

73-
- name: Run docstring validation script tests
74-
run: pytest scripts
75-
if: ${{ steps.build.outcome == 'success' && always() }}
73+
- name: Create virtual environment with Pixi
74+
uses: ./.github/actions/setup-pixi
75+
with:
76+
environment: "typing"
77+
78+
- name: Build pandas
79+
run: |
80+
pixi run \
81+
--environment typing \
82+
build-pandas \
83+
--editable \
84+
-Csetup-args="--werror"
85+
86+
- name: Typing Checks
87+
run: pixi run --environment typing ci-typing
7688

7789
asv-benchmarks:
7890
name: ASV Benchmarks
7991
runs-on: ubuntu-24.04
8092
permissions:
8193
contents: read
82-
defaults:
83-
run:
84-
shell: bash -euox pipefail {0}
8594

8695
concurrency:
8796
# https://github.blesdmm.dns-dynamic.netmunity/t/concurrecy-not-work-for-push/183068/7
@@ -124,19 +133,15 @@ jobs:
124133
steps:
125134
- name: Checkout
126135
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
127-
with:
128-
fetch-depth: 0
129136

130137
- name: Setup Python
131138
id: setup_python
132139
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
133140
with:
134141
python-version: '3.11'
135142
cache: 'pip'
143+
pip-install: '-r requirements-dev.txt'
136144
cache-dependency-path: 'requirements-dev.txt'
137145

138-
- name: Install requirements-dev.txt
139-
run: pip install -r requirements-dev.txt
140-
141146
- name: Check Pip Cache Hit
142147
run: echo ${{ steps.setup_python.outputs.cache-hit }}

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ jobs:
2727

2828
steps:
2929
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
30-
- uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
30+
- uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
3131
with:
3232
languages: ${{ matrix.language }}
33-
- uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
34-
- uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
33+
- uses: github/codeql-action/autobuild@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
34+
- uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4

.github/workflows/unit-tests.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,13 @@ jobs:
167167
${{ ! (matrix.name == 'Freethreading' || matrix.name == 'Minimum Versions') && '-Csetup-args="--werror"' || '' }}
168168
shell: bash -euox pipefail {0}
169169

170+
- name: Import check
171+
run: |
172+
pixi run \
173+
--environment ${{ matrix.environment }} \
174+
ci-check-import
175+
shell: bash -euox pipefail {0}
176+
170177
- name: Test (not single_cpu)
171178
uses: ./.github/actions/run-tests
172179
id: test-not-single-cpu

.github/workflows/update-pixi-lock.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,22 @@ jobs:
3030
manifest-path: pixi.toml
3131
run-install: false
3232

33-
- name: Generate lock files
34-
id: check-lock-file
35-
run: pixi update
33+
- name: Update lock files
34+
run: |
35+
echo -e "Scheduled update by \`.github/workflows/update-pixi-lock.yml\`.\n\nClose and re-open the PR to trigger CI. If CI jobs fail, modify this pull request as needed.\n\n" > diff.md
36+
pixi update --json | pixi exec pixi-diff-to-markdown >> diff.md
3637
3738
# There should be an update since pixi.toml references nightly packages
3839
# or use https://github.com/prefix-dev/pixi/issues/5813
3940
- name: Create pull request
4041
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
4142
with:
4243
commit-message: Update pixi.lock
44+
add-paths: pixi.lock
4345
# author same as default committer for this action
4446
author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
4547
branch: "ci/update-pixi-lock"
4648
delete-branch: true
4749
title: "CI: Update pixi.lock"
48-
body: |
49-
Scheduled update by `.github/workflows/update-pixi-lock.yml`
50-
51-
If CI jobs fail, modify this pull request as needed.
50+
body-path: diff.md
5251
labels: "CI"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
tags
2525
.cache/
2626
.vscode/
27+
.pixi/
2728

2829
# Compiled source #
2930
###################

.pre-commit-config.yaml

Lines changed: 5 additions & 5 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.15.9
22+
rev: v0.15.12
2323
hooks:
2424
- id: ruff
2525
args: [--exit-non-zero-on-fix]
@@ -67,7 +67,7 @@ repos:
6767
- id: trailing-whitespace
6868
args: [--markdown-linebreak-ext=md]
6969
- repo: https://github.com/PyCQA/isort
70-
rev: 8.0.1
70+
rev: 9.0.0a3
7171
hooks:
7272
- id: isort
7373
- repo: https://github.com/asottile/pyupgrade
@@ -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: v22.1.2
95+
rev: v22.1.4
9696
hooks:
9797
- id: clang-format
9898
files: ^pandas/_libs/src|^pandas/_libs/include
9999
args: ['-i', '--style', '{IndentPPDirectives: AfterHash}']
100100
types_or: [c, c++]
101101
- repo: https://github.com/trim21/pre-commit-mirror-meson
102-
rev: v1.10.2
102+
rev: v1.11.1
103103
hooks:
104104
- id: meson-fmt
105105
args: ['--inplace']
@@ -132,7 +132,7 @@ repos:
132132
- id: mypy
133133
# note: assumes python env is setup and activated
134134
name: mypy
135-
entry: mypy
135+
entry: python -m mypy
136136
language: system
137137
pass_filenames: false
138138
types: [python]

LICENSES/NERI_SCHNEIDER_LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2022 Cassio Neri <cassio.neri@gmail.com>
4+
Copyright (c) 2022 Lorenz Schneider <schneider@em-lyon.com>
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
SOFTWARE.

asv_bench/asv.conf.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@
88
"show_commit_url": "https://github.com/pandas-dev/pandas/commit/",
99
"matrix": {
1010
"pip+build": [],
11+
"versioneer[toml]": [],
1112
"Cython": [],
1213
"matplotlib": [],
1314
"sqlalchemy": [],
1415
"scipy": [],
1516
"numba": [],
1617
"numexpr": [],
17-
"pytables": [],
18+
"pytables": [null, ""],
19+
"tables": [null, ""],
1820
"pyarrow": [],
1921
"openpyxl": [],
2022
"xlsxwriter": [],
@@ -24,11 +26,17 @@
2426
"meson-python": [],
2527
"python-build": []
2628
},
29+
"exclude": [
30+
{"environment_type": "conda|rattler", "tables": ""},
31+
{"environment_type": "conda|rattler", "pytables": null},
32+
{"environment_type": "(?!(?:conda|rattler)).*", "tables": null},
33+
{"environment_type": "(?!(?:conda|rattler)).*", "pytables": ""}
34+
],
2735
"conda_channels": ["conda-forge"],
2836
"build_cache_size": 8,
2937
"regressions_first_commits": {
3038
".*": "0409521665"
3139
},
3240
"build_command":
33-
["python -m build -Cbuilddir=builddir --wheel --outdir {build_cache_dir} {build_dir}"]
41+
["python -m build -Cbuilddir=builddir --no-isolation --wheel --outdir {build_cache_dir} {build_dir}"]
3442
}

ci/code_checks.sh

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)