Skip to content

Commit b5678f9

Browse files
committed
Merging main
2 parents 9a7d2b0 + 8f7080b commit b5678f9

File tree

969 files changed

+28456
-22594
lines changed

Some content is hidden

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

969 files changed

+28456
-22594
lines changed

.circleci/config.yml

Lines changed: 57 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,66 @@
11
version: 2.1
22

33
jobs:
4-
test-arm:
4+
test-linux-arm:
55
machine:
66
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
21-
linux-musl:
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:
2240
docker:
2341
- image: quay.io/pypa/musllinux_1_1_aarch64
2442
resource_class: arm.large
2543
steps:
2644
# Install pkgs first to have git in the image
2745
# (needed for checkout)
28-
- run: |
29-
apk update
30-
apk add git
31-
apk add musl-locales
46+
- run:
47+
name: Install System Packages
48+
command: |
49+
apk update
50+
apk add git
51+
apk add musl-locales
3252
- checkout
33-
- run: |
34-
/opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev
35-
. ~/virtualenvs/pandas-dev/bin/activate
36-
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
37-
python -m pip install --no-cache-dir versioneer[toml] cython numpy python-dateutil pytz pytest>=7.3.2 pytest-xdist>=2.2.0 hypothesis>=6.46.1
38-
python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror"
39-
python -m pip list --no-cache-dir
40-
- run: |
41-
. ~/virtualenvs/pandas-dev/bin/activate
42-
export PANDAS_CI=1
43-
python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
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
4464
build-aarch64:
4565
parameters:
4666
cibw-build:
@@ -71,33 +91,24 @@ jobs:
7191
name: Build aarch64 wheels
7292
no_output_timeout: 30m # Sometimes the tests won't generate any output, make sure the job doesn't get killed by that
7393
command: |
74-
pip3 install cibuildwheel==2.15.0
75-
# When this is a nightly wheel build, allow picking up NumPy 2.0 dev wheels:
76-
if [[ "$IS_SCHEDULE_DISPATCH" == "true" || "$IS_PUSH" != 'true' ]]; then
77-
export CIBW_ENVIRONMENT="PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
78-
fi
79-
cibuildwheel --prerelease-pythons --output-dir wheelhouse
94+
pip3 install cibuildwheel==2.20.0
95+
cibuildwheel --output-dir wheelhouse
8096
8197
environment:
8298
CIBW_BUILD: << parameters.cibw-build >>
8399

84100
- run:
85101
name: Install Anaconda Client & Upload Wheels
102+
shell: /bin/bash -exo pipefail
86103
command: |
87-
echo "Install Mambaforge"
88-
MAMBA_URL="https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-Linux-aarch64.sh"
89-
echo "Downloading $MAMBA_URL"
90-
wget -q $MAMBA_URL -O minimamba.sh
91-
chmod +x minimamba.sh
92-
93-
MAMBA_DIR="$HOME/miniconda3"
94-
rm -rf $MAMBA_DIR
95-
./minimamba.sh -b -p $MAMBA_DIR
96-
97-
export PATH=$MAMBA_DIR/bin:$PATH
98-
99-
mamba install -y -c conda-forge anaconda-client
100-
104+
MINI_URL="https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-aarch64.sh"
105+
wget -q $MINI_URL -O Miniforge3.sh
106+
chmod +x Miniforge3.sh
107+
MINI_DIR="$HOME/miniconda3"
108+
rm -rf $MINI_DIR
109+
./Miniforge3.sh -b -p $MINI_DIR
110+
export PATH=$MINI_DIR/bin:$PATH
111+
conda install -y -c conda-forge anaconda-client
101112
source ci/upload_wheels.sh
102113
set_upload_vars
103114
upload_wheels
@@ -111,14 +122,14 @@ workflows:
111122
not:
112123
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
113124
jobs:
114-
- test-arm
125+
- test-linux-arm
115126
test-musl:
116127
# Don't run trigger this one when scheduled pipeline runs
117128
when:
118129
not:
119130
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
120131
jobs:
121-
- linux-musl
132+
- test-linux-musl
122133
build-wheels:
123134
jobs:
124135
- build-aarch64:
@@ -127,11 +138,9 @@ workflows:
127138
only: /^v.*/
128139
matrix:
129140
parameters:
130-
cibw-build: ["cp39-manylinux_aarch64",
131-
"cp310-manylinux_aarch64",
141+
cibw-build: ["cp310-manylinux_aarch64",
132142
"cp311-manylinux_aarch64",
133143
"cp312-manylinux_aarch64",
134-
"cp39-musllinux_aarch64",
135144
"cp310-musllinux_aarch64",
136145
"cp311-musllinux_aarch64",
137146
"cp312-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 & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ inputs:
44
editable:
55
description: Whether to build pandas in editable mode (default true)
66
default: true
7-
meson_args:
8-
description: Extra flags to pass to meson
9-
required: false
10-
cflags_adds:
11-
description: Items to append to the CFLAGS variable
12-
required: false
137
runs:
148
using: composite
159
steps:
@@ -28,14 +22,20 @@ runs:
2822
fi
2923
shell: bash -el {0}
3024

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+
3132
- name: Build Pandas
3233
run: |
33-
export CFLAGS="$CFLAGS ${{ inputs.cflags_adds }}"
3434
if [[ ${{ inputs.editable }} == "true" ]]; then
35-
pip install -e . --no-build-isolation -v --no-deps ${{ inputs.meson_args }} \
36-
--config-settings=setup-args="--werror"
35+
pip install -e . --no-build-isolation -v --no-deps \
36+
-Csetup-args="--werror"
3737
else
38-
pip install . --no-build-isolation -v --no-deps ${{ inputs.meson_args }} \
39-
--config-settings=setup-args="--werror"
38+
pip install . --no-build-isolation -v --no-deps \
39+
-Csetup-args="--werror"
4040
fi
4141
shell: bash -el {0}

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

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
name: Run tests and report results
2-
inputs:
3-
preload:
4-
description: Preload arguments for sanitizer
5-
required: false
6-
asan_options:
7-
description: Arguments for Address Sanitizer (ASAN)
8-
required: false
92
runs:
103
using: composite
114
steps:
125
- name: Test
13-
run: ${{ inputs.asan_options }} ${{ inputs.preload }} ci/run_tests.sh
6+
run: ci/run_tests.sh
147
shell: bash -el {0}
158

169
- name: Publish test results
17-
uses: actions/upload-artifact@v3
10+
uses: actions/upload-artifact@v4
1811
with:
1912
name: Test results
2013
path: test-data.xml
2114
if: failure()
2215

2316
- name: Upload coverage to Codecov
24-
uses: codecov/codecov-action@v3
17+
uses: codecov/codecov-action@v4
2518
with:
2619
flags: unittests
2720
name: codecov-pandas

0 commit comments

Comments
 (0)