Skip to content

Commit e7e1d0b

Browse files
Merge remote-tracking branch 'upstream/main' into 55837
2 parents 868850f + e3e198f commit e7e1d0b

File tree

1,419 files changed

+68732
-63126
lines changed

Some content is hidden

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

1,419 files changed

+68732
-63126
lines changed

.circleci/config.yml

Lines changed: 86 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,72 @@
11
version: 2.1
22

33
jobs:
4-
test-arm:
4+
test-linux-arm:
55
machine:
6-
image: ubuntu-2004:2022.04.1
6+
image: default
77
resource_class: arm.large
88
environment:
9-
ENV_FILE: ci/deps/circle-310-arm64.yaml
9+
ENV_FILE: ci/deps/circle-311-arm64.yaml
1010
PYTEST_WORKERS: auto
1111
PATTERN: "not single_cpu and not slow and not network and not clipboard and not arm_slow and not db"
1212
PYTEST_TARGET: "pandas"
1313
PANDAS_CI: "1"
1414
steps:
1515
- checkout
16-
- run: .circleci/setup_env.sh
17-
- run: >
18-
PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH
19-
LD_PRELOAD=$HOME/miniconda3/envs/pandas-dev/lib/libgomp.so.1:$LD_PRELOAD
20-
ci/run_tests.sh
16+
- run:
17+
name: Install Environment and Run Tests
18+
shell: /bin/bash -exo pipefail
19+
# https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions-azure-pipelines-travis-ci-and-gitlab-ci-cd
20+
command: |
21+
MINI_URL="https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-aarch64.sh"
22+
wget -q $MINI_URL -O Miniforge3.sh
23+
chmod +x Miniforge3.sh
24+
MINI_DIR="$HOME/miniconda3"
25+
rm -rf $MINI_DIR
26+
./Miniforge3.sh -b -p $MINI_DIR
27+
export PATH=$MINI_DIR/bin:$PATH
28+
conda info -a
29+
conda env create -q -n pandas-dev -f $ENV_FILE
30+
conda list -n pandas-dev
31+
source activate pandas-dev
32+
if pip show pandas 1>/dev/null; then
33+
pip uninstall -y pandas
34+
fi
35+
python -m pip install --no-build-isolation -ve . -Csetup-args="--werror"
36+
PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH
37+
sudo apt-get update && sudo apt-get install -y libegl1 libopengl0
38+
ci/run_tests.sh
39+
test-linux-musl:
40+
docker:
41+
- image: quay.io/pypa/musllinux_1_1_aarch64
42+
resource_class: arm.large
43+
steps:
44+
# Install pkgs first to have git in the image
45+
# (needed for checkout)
46+
- run:
47+
name: Install System Packages
48+
command: |
49+
apk update
50+
apk add git
51+
apk add musl-locales
52+
- checkout
53+
- run:
54+
name: Install Environment and Run Tests
55+
command: |
56+
/opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev
57+
. ~/virtualenvs/pandas-dev/bin/activate
58+
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
59+
python -m pip install --no-cache-dir versioneer[toml] cython numpy python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
60+
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
61+
python -m pip list --no-cache-dir
62+
export PANDAS_CI=1
63+
python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
2164
build-aarch64:
2265
parameters:
2366
cibw-build:
2467
type: string
2568
machine:
26-
image: ubuntu-2004:2022.04.1
69+
image: default
2770
resource_class: arm.large
2871
environment:
2972
TRIGGER_SOURCE: << pipeline.trigger_source >>
@@ -48,33 +91,30 @@ jobs:
4891
name: Build aarch64 wheels
4992
no_output_timeout: 30m # Sometimes the tests won't generate any output, make sure the job doesn't get killed by that
5093
command: |
51-
pip3 install cibuildwheel==2.15.0
52-
# When this is a nightly wheel build, allow picking up NumPy 2.0 dev wheels:
53-
if [[ "$IS_SCHEDULE_DISPATCH" == "true" || "$IS_PUSH" != 'true' ]]; then
54-
export CIBW_ENVIRONMENT="PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
94+
pip3 install cibuildwheel==2.20.0
95+
if [[ $CIBW_BUILD == cp313t* ]]; then
96+
# TODO: temporarily run 3.13 free threaded builds without build isolation
97+
# since we need pre-release cython
98+
CIBW_BUILD_FRONTEND="pip; args: --no-build-isolation" cibuildwheel --output-dir wheelhouse
99+
else
100+
cibuildwheel --output-dir wheelhouse
55101
fi
56-
cibuildwheel --prerelease-pythons --output-dir wheelhouse
57102
58103
environment:
59104
CIBW_BUILD: << parameters.cibw-build >>
60105

61106
- run:
62107
name: Install Anaconda Client & Upload Wheels
108+
shell: /bin/bash -exo pipefail
63109
command: |
64-
echo "Install Mambaforge"
65-
MAMBA_URL="https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-Linux-aarch64.sh"
66-
echo "Downloading $MAMBA_URL"
67-
wget -q $MAMBA_URL -O minimamba.sh
68-
chmod +x minimamba.sh
69-
70-
MAMBA_DIR="$HOME/miniconda3"
71-
rm -rf $MAMBA_DIR
72-
./minimamba.sh -b -p $MAMBA_DIR
73-
74-
export PATH=$MAMBA_DIR/bin:$PATH
75-
76-
mamba install -y -c conda-forge anaconda-client
77-
110+
MINI_URL="https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-aarch64.sh"
111+
wget -q $MINI_URL -O Miniforge3.sh
112+
chmod +x Miniforge3.sh
113+
MINI_DIR="$HOME/miniconda3"
114+
rm -rf $MINI_DIR
115+
./Miniforge3.sh -b -p $MINI_DIR
116+
export PATH=$MINI_DIR/bin:$PATH
117+
conda install -y -c conda-forge anaconda-client
78118
source ci/upload_wheels.sh
79119
set_upload_vars
80120
upload_wheels
@@ -88,7 +128,14 @@ workflows:
88128
not:
89129
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
90130
jobs:
91-
- test-arm
131+
- test-linux-arm
132+
test-musl:
133+
# Don't run trigger this one when scheduled pipeline runs
134+
when:
135+
not:
136+
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
137+
jobs:
138+
- test-linux-musl
92139
build-wheels:
93140
jobs:
94141
- build-aarch64:
@@ -97,4 +144,13 @@ workflows:
97144
only: /^v.*/
98145
matrix:
99146
parameters:
100-
cibw-build: ["cp39-manylinux_aarch64", "cp310-manylinux_aarch64", "cp311-manylinux_aarch64", "cp312-manylinux_aarch64"]
147+
cibw-build: ["cp310-manylinux_aarch64",
148+
"cp311-manylinux_aarch64",
149+
"cp312-manylinux_aarch64",
150+
"cp313-manylinux_aarch64",
151+
"cp313t-manylinux_aarch64",
152+
"cp310-musllinux_aarch64",
153+
"cp311-musllinux_aarch64",
154+
"cp312-musllinux_aarch64",
155+
"cp313-musllinux_aarch64",
156+
"cp313t-musllinux_aarch64"]

.circleci/setup_env.sh

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

.devcontainer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
// Use 'settings' to set *default* container specific settings.json values on container create.
99
// You can edit these settings after create using File > Preferences > Settings > Remote.
1010
"settings": {
11-
"terminal.integrated.shell.linux": "/bin/bash",
1211
"python.pythonPath": "/usr/local/bin/python",
1312
"python.formatting.provider": "black",
1413
"python.linting.enabled": true,

.gitattributes

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ ci export-ignore
6868
doc export-ignore
6969
gitpod export-ignore
7070
MANIFEST.in export-ignore
71-
scripts export-ignore
71+
scripts/** export-ignore
7272
typings export-ignore
7373
web export-ignore
7474
CITATION.cff export-ignore
@@ -82,3 +82,7 @@ setup.py export-ignore
8282
# csv_dir_path fixture checks the existence of the directory
8383
# exclude the whole directory to avoid running related tests in sdist
8484
pandas/tests/io/parser/data export-ignore
85+
86+
# Include cibw script in sdist since it's needed for building wheels
87+
scripts/cibw_before_build.sh -export-ignore
88+
scripts/cibw_before_test.sh -export-ignore

.github/ISSUE_TEMPLATE/pdep_vote.yaml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: PDEP Vote
2+
description: Call for a vote on a PDEP
3+
title: "VOTE: "
4+
labels: [Vote]
5+
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: >
10+
As per [PDEP-1](https://pandas.pydata.org/pdeps/0001-purpose-and-guidelines.html), the following issue template should be used when a
11+
maintainer has opened a PDEP discussion and is ready to call for a vote.
12+
- type: checkboxes
13+
attributes:
14+
label: Locked issue
15+
options:
16+
- label: >
17+
I locked this voting issue so that only voting members are able to cast their votes or
18+
comment on this issue.
19+
required: true
20+
- type: input
21+
id: PDEP-name
22+
attributes:
23+
label: PDEP number and title
24+
placeholder: >
25+
PDEP-1: Purpose and guidelines
26+
validations:
27+
required: true
28+
- type: input
29+
id: PDEP-link
30+
attributes:
31+
label: Pull request with discussion
32+
description: e.g. https://github.com/pandas-dev/pandas/pull/47444
33+
validations:
34+
required: true
35+
- type: input
36+
id: PDEP-rendered-link
37+
attributes:
38+
label: Rendered PDEP for easy reading
39+
description: e.g. https://github.com/pandas-dev/pandas/pull/47444/files?short_path=7c449e6#diff-7c449e698132205b235c501f7e47ebba38da4d2b7f9492c98f16745dba787041
40+
validations:
41+
required: true
42+
- type: input
43+
id: PDEP-number-of-discussion-participants
44+
attributes:
45+
label: Discussion participants
46+
description: >
47+
You may find it useful to list or total the number of participating members in the
48+
PDEP discussion PR. This would be the maximum possible disapprove votes.
49+
placeholder: >
50+
14 voting members participated in the PR discussion thus far.
51+
- type: input
52+
id: PDEP-vote-end
53+
attributes:
54+
label: Voting will close in 15 days.
55+
description: The voting period end date. ('Voting will close in 15 days.' will be automatically written)
56+
- type: markdown
57+
attributes:
58+
value: ---
59+
- type: textarea
60+
id: Vote
61+
attributes:
62+
label: Vote
63+
value: |
64+
Cast your vote in a comment below.
65+
* +1: approve.
66+
* 0: abstain.
67+
* Reason: A one sentence reason is required.
68+
* -1: disapprove
69+
* Reason: A one sentence reason is required.
70+
A disapprove vote requires prior participation in the linked discussion PR.
71+
72+
@pandas-dev/pandas-core
73+
validations:
74+
required: true

.github/actions/build_pandas/action.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,20 @@ runs:
2222
fi
2323
shell: bash -el {0}
2424

25+
- name: Uninstall nomkl
26+
run: |
27+
if conda list nomkl | grep nomkl 1>/dev/null; then
28+
conda remove nomkl -y
29+
fi
30+
shell: bash -el {0}
31+
2532
- name: Build Pandas
2633
run: |
2734
if [[ ${{ inputs.editable }} == "true" ]]; then
28-
pip install -e . --no-build-isolation -v --no-deps
35+
pip install -e . --no-build-isolation -v --no-deps \
36+
-Csetup-args="--werror"
2937
else
30-
pip install . --no-build-isolation -v --no-deps
38+
pip install . --no-build-isolation -v --no-deps \
39+
-Csetup-args="--werror"
3140
fi
3241
shell: bash -el {0}

.github/actions/run-tests/action.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,14 @@ runs:
77
shell: bash -el {0}
88

99
- name: Publish test results
10-
uses: actions/upload-artifact@v3
10+
uses: actions/upload-artifact@v4
1111
with:
1212
name: Test results
1313
path: test-data.xml
1414
if: failure()
1515

16-
- name: Report Coverage
17-
run: coverage report -m
18-
shell: bash -el {0}
19-
if: failure()
20-
2116
- name: Upload coverage to Codecov
22-
uses: codecov/codecov-action@v3
17+
uses: codecov/codecov-action@v4
2318
with:
2419
flags: unittests
2520
name: codecov-pandas

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,16 @@ runs:
99
- name: Install ${{ inputs.environment-file }}
1010
uses: mamba-org/setup-micromamba@v1
1111
with:
12+
# Pinning to avoid 2.0 failures
13+
micromamba-version: '1.5.10-0'
1214
environment-file: ${{ inputs.environment-file }}
1315
environment-name: test
14-
condarc-file: ci/condarc.yml
16+
condarc-file: ci/.condarc
1517
cache-environment: true
1618
cache-downloads: true
19+
20+
- name: Uninstall pyarrow
21+
if: ${{ env.REMOVE_PYARROW == '1' }}
22+
run: |
23+
micromamba remove -y pyarrow
24+
shell: bash -el {0}

.github/workflows/broken-linkcheck.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
- "doc/make.py"
1010
jobs:
1111
linkcheck:
12+
if: false
1213
runs-on: ubuntu-latest
1314
defaults:
1415
run:

0 commit comments

Comments
 (0)