Skip to content

Commit 16119e7

Browse files
Merge remote-tracking branch 'upstream/main' into set-__module__-scalars
2 parents e8e7bbd + b290bf0 commit 16119e7

File tree

607 files changed

+14680
-12686
lines changed

Some content is hidden

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

607 files changed

+14680
-12686
lines changed

.circleci/config.yml

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,64 @@
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 -exuo pipefail
19+
command: |
20+
MAMBA_URL="https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Linux-aarch64.sh"
21+
wget -q $MAMBA_URL -O minimamba.sh
22+
chmod +x minimamba.sh
23+
MAMBA_DIR="$HOME/miniconda3"
24+
rm -rf $MAMBA_DIR
25+
./minimamba.sh -b -p $MAMBA_DIR
26+
export PATH=$MAMBA_DIR/bin:$PATH
27+
conda info -a
28+
conda env create -q -n pandas-dev -f $ENV_FILE
29+
conda list -n pandas-dev
30+
source activate pandas-dev
31+
if pip show pandas 1>/dev/null; then
32+
pip uninstall -y pandas
33+
fi
34+
python -m pip install --no-build-isolation -ve . --config-settings=setup-args="--werror"
35+
PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH
36+
ci/run_tests.sh
37+
test-linux-musl:
2238
docker:
2339
- image: quay.io/pypa/musllinux_1_1_aarch64
2440
resource_class: arm.large
2541
steps:
2642
# Install pkgs first to have git in the image
2743
# (needed for checkout)
28-
- run: |
29-
apk update
30-
apk add git
31-
apk add musl-locales
44+
- run:
45+
name: Install System Packages
46+
command: |
47+
apk update
48+
apk add git
49+
apk add musl-locales
3250
- 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
51+
- run:
52+
name: Install Environment and Run Tests
53+
command: |
54+
/opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev
55+
. ~/virtualenvs/pandas-dev/bin/activate
56+
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
57+
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
58+
python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror"
59+
python -m pip list --no-cache-dir
60+
export PANDAS_CI=1
61+
python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
4462
build-aarch64:
4563
parameters:
4664
cibw-build:
@@ -71,11 +89,7 @@ jobs:
7189
name: Build aarch64 wheels
7290
no_output_timeout: 30m # Sometimes the tests won't generate any output, make sure the job doesn't get killed by that
7391
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
92+
pip3 install cibuildwheel==2.18.1
7993
cibuildwheel --prerelease-pythons --output-dir wheelhouse
8094
8195
environment:
@@ -85,7 +99,7 @@ jobs:
8599
name: Install Anaconda Client & Upload Wheels
86100
command: |
87101
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"
102+
MAMBA_URL="https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Linux-aarch64.sh"
89103
echo "Downloading $MAMBA_URL"
90104
wget -q $MAMBA_URL -O minimamba.sh
91105
chmod +x minimamba.sh
@@ -111,14 +125,14 @@ workflows:
111125
not:
112126
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
113127
jobs:
114-
- test-arm
128+
- test-linux-arm
115129
test-musl:
116130
# Don't run trigger this one when scheduled pipeline runs
117131
when:
118132
not:
119133
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
120134
jobs:
121-
- linux-musl
135+
- test-linux-musl
122136
build-wheels:
123137
jobs:
124138
- build-aarch64:

.circleci/setup_env.sh

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

.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/workflows/cache-cleanup-weekly.yml renamed to .github/workflows/cache-cleanup-daily.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
name: Purge caches once a week
1+
name: Purge caches daily
22
on:
33
schedule:
4-
# 4:10 UTC on Sunday
5-
- cron: "10 4 * * 0"
4+
# 4:10 UTC daily
5+
- cron: "10 4 * * *"
66

77
jobs:
88
cleanup:

.github/workflows/code-checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
8686
if: ${{ steps.build.outcome == 'success' && always() }}
8787

88-
- name: Typing + pylint
88+
- name: Typing
8989
uses: pre-commit/[email protected]
9090
with:
9191
extra_args: --verbose --hook-stage manual --all-files

.github/workflows/unit-tests.yml

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ jobs:
314314
timeout-minutes: 90
315315

316316
concurrency:
317-
#https://github.community/t/concurrecy-not-work-for-push/183068/7
317+
# https://github.community/t/concurrecy-not-work-for-push/183068/7
318318
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.os }}-${{ matrix.pytest_target }}-dev
319319
cancel-in-progress: true
320320

@@ -346,3 +346,62 @@ jobs:
346346
347347
- name: Run Tests
348348
uses: ./.github/actions/run-tests
349+
350+
emscripten:
351+
# Note: the Python version, Emscripten toolchain version are determined
352+
# by the Pyodide version. The appropriate versions can be found in the
353+
# Pyodide repodata.json "info" field, or in the Makefile.envs file:
354+
# https://github.com/pyodide/pyodide/blob/stable/Makefile.envs#L2
355+
# The Node.js version can be determined via Pyodide:
356+
# https://pyodide.org/en/stable/usage/index.html#node-js
357+
name: Pyodide build
358+
runs-on: ubuntu-22.04
359+
concurrency:
360+
# https://github.community/t/concurrecy-not-work-for-push/183068/7
361+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
362+
cancel-in-progress: true
363+
steps:
364+
- name: Checkout pandas Repo
365+
uses: actions/checkout@v4
366+
with:
367+
fetch-depth: 0
368+
369+
- name: Set up Python for Pyodide
370+
id: setup-python
371+
uses: actions/setup-python@v5
372+
with:
373+
python-version: '3.11.3'
374+
375+
- name: Set up Emscripten toolchain
376+
uses: mymindstorm/setup-emsdk@v14
377+
with:
378+
version: '3.1.46'
379+
actions-cache-folder: emsdk-cache
380+
381+
- name: Install pyodide-build
382+
run: pip install "pyodide-build==0.25.1"
383+
384+
- name: Build pandas for Pyodide
385+
run: |
386+
pyodide build
387+
388+
- name: Set up Node.js
389+
uses: actions/setup-node@v4
390+
with:
391+
node-version: '18'
392+
393+
- name: Set up Pyodide virtual environment
394+
run: |
395+
pyodide venv .venv-pyodide
396+
source .venv-pyodide/bin/activate
397+
pip install dist/*.whl
398+
399+
- name: Test pandas for Pyodide
400+
env:
401+
PANDAS_CI: 1
402+
run: |
403+
source .venv-pyodide/bin/activate
404+
pip install pytest hypothesis
405+
# do not import pandas from the checked out repo
406+
cd ..
407+
python -c 'import pandas as pd; pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db"])'

.github/workflows/wheels.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -139,27 +139,14 @@ jobs:
139139
shell: bash -el {0}
140140
run: echo "sdist_name=$(cd ./dist && ls -d */)" >> "$GITHUB_ENV"
141141

142-
- name: Build normal wheels
143-
if: ${{ (env.IS_SCHEDULE_DISPATCH != 'true' || env.IS_PUSH == 'true') }}
144-
uses: pypa/[email protected]
142+
- name: Build wheels
143+
uses: pypa/[email protected]
145144
with:
146145
package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }}
147146
env:
148147
CIBW_PRERELEASE_PYTHONS: True
149148
CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
150149

151-
- name: Build nightly wheels (with NumPy pre-release)
152-
if: ${{ (env.IS_SCHEDULE_DISPATCH == 'true' && env.IS_PUSH != 'true') }}
153-
uses: pypa/[email protected]
154-
with:
155-
package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }}
156-
env:
157-
# The nightly wheels should be build witht he NumPy 2.0 pre-releases
158-
# which requires the additional URL.
159-
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
160-
CIBW_PRERELEASE_PYTHONS: True
161-
CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
162-
163150
- name: Set up Python
164151
uses: mamba-org/setup-micromamba@v1
165152
with:

0 commit comments

Comments
 (0)