Skip to content

Commit 3dd874a

Browse files
Merge remote-tracking branch 'upstream/main' into multi-bug
2 parents 74f171b + 179dc14 commit 3dd874a

File tree

1,083 files changed

+38005
-41345
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,083 files changed

+38005
-41345
lines changed

.devcontainer.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
// You can edit these settings after create using File > Preferences > Settings > Remote.
1010
"settings": {
1111
"terminal.integrated.shell.linux": "/bin/bash",
12-
"python.condaPath": "/opt/conda/bin/conda",
13-
"python.pythonPath": "/opt/conda/bin/python",
12+
"python.pythonPath": "/usr/local/bin/python",
1413
"python.formatting.provider": "black",
1514
"python.linting.enabled": true,
1615
"python.linting.flake8Enabled": true,

.github/ISSUE_TEMPLATE/feature_request.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ body:
6868
attributes:
6969
label: Additional Context
7070
description: >
71-
Please provide any relevant Github issues, code examples or references that help describe and support
71+
Please provide any relevant GitHub issues, code examples or references that help describe and support
7272
the feature request.

.github/PULL_REQUEST_TEMPLATE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
- [ ] closes #xxxx (Replace xxxx with the Github issue number)
1+
- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
22
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
33
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
44
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.

.github/workflows/32-bit-linux.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ on:
55
branches:
66
- main
77
- 1.5.x
8-
- 1.4.x
98
pull_request:
109
branches:
1110
- main
1211
- 1.5.x
13-
- 1.4.x
1412
paths-ignore:
1513
- "doc/**"
1614

@@ -19,7 +17,7 @@ permissions:
1917

2018
jobs:
2119
pytest:
22-
runs-on: ubuntu-latest
20+
runs-on: ubuntu-22.04
2321
steps:
2422
- name: Checkout
2523
uses: actions/checkout@v3
@@ -40,7 +38,8 @@ jobs:
4038
/opt/python/cp38-cp38/bin/python -m venv ~/virtualenvs/pandas-dev && \
4139
. ~/virtualenvs/pandas-dev/bin/activate && \
4240
python -m pip install --no-deps -U pip wheel 'setuptools<60.0.0' && \
43-
pip install cython numpy python-dateutil pytz pytest pytest-xdist pytest-asyncio>=0.17 hypothesis && \
41+
python -m pip install versioneer[toml] && \
42+
python -m pip install cython numpy python-dateutil pytz pytest pytest-xdist pytest-asyncio>=0.17 hypothesis && \
4443
python setup.py build_ext -q -j1 && \
4544
python -m pip install --no-build-isolation --no-use-pep517 -e . && \
4645
python -m pip list && \

.github/workflows/assign.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
permissions:
1212
issues: write
1313
pull-requests: write
14-
runs-on: ubuntu-latest
14+
runs-on: ubuntu-22.04
1515
steps:
1616
- if: github.event.comment.body == 'take'
1717
run: |

.github/workflows/asv-bot.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
name: "Run benchmarks"
2222
# TODO: Support more benchmarking options later, against different branches, against self, etc
2323
if: startsWith(github.event.comment.body, '@github-actions benchmark')
24-
runs-on: ubuntu-latest
24+
runs-on: ubuntu-22.04
2525
defaults:
2626
run:
2727
shell: bash -el {0}

.github/workflows/autoupdate-pre-commit-config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ jobs:
1515
pull-requests: write # for technote-space/create-pr-action to create a PR
1616
if: github.repository_owner == 'pandas-dev'
1717
name: Autoupdate pre-commit config
18-
runs-on: ubuntu-latest
18+
runs-on: ubuntu-22.04
1919
steps:
2020
- name: Set up Python
21-
uses: actions/setup-python@v3
21+
uses: actions/setup-python@v4
2222
- name: Cache multiple paths
2323
uses: actions/cache@v3
2424
with:

.github/workflows/code-checks.yml

+21-14
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ on:
55
branches:
66
- main
77
- 1.5.x
8-
- 1.4.x
98
pull_request:
109
branches:
1110
- main
1211
- 1.5.x
13-
- 1.4.x
1412

1513
env:
1614
ENV_FILE: environment.yml
@@ -22,7 +20,7 @@ permissions:
2220
jobs:
2321
pre_commit:
2422
name: pre-commit
25-
runs-on: ubuntu-latest
23+
runs-on: ubuntu-22.04
2624
concurrency:
2725
# https://github.community/t/concurrecy-not-work-for-push/183068/7
2826
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-pre-commit
@@ -32,16 +30,18 @@ jobs:
3230
uses: actions/checkout@v3
3331

3432
- name: Install Python
35-
uses: actions/setup-python@v3
33+
uses: actions/setup-python@v4
3634
with:
37-
python-version: '3.9.7'
35+
python-version: '3.9'
3836

3937
- name: Run pre-commit
4038
uses: pre-commit/[email protected]
39+
with:
40+
extra_args: --verbose --all-files
4141

42-
typing_and_docstring_validation:
43-
name: Docstring and typing validation
44-
runs-on: ubuntu-latest
42+
docstring_typing_manual_hooks:
43+
name: Docstring validation, typing, and other manual pre-commit hooks
44+
runs-on: ubuntu-22.04
4545
defaults:
4646
run:
4747
shell: bash -el {0}
@@ -81,17 +81,21 @@ jobs:
8181
run: ci/code_checks.sh docstrings
8282
if: ${{ steps.build.outcome == 'success' && always() }}
8383

84+
- name: Run check of documentation notebooks
85+
run: ci/code_checks.sh notebooks
86+
if: ${{ steps.build.outcome == 'success' && always() }}
87+
8488
- name: Use existing environment for type checking
8589
run: |
8690
echo $PATH >> $GITHUB_PATH
8791
echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV
8892
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
8993
if: ${{ steps.build.outcome == 'success' && always() }}
9094

91-
- name: Typing
95+
- name: Typing + pylint
9296
uses: pre-commit/[email protected]
9397
with:
94-
extra_args: --hook-stage manual --all-files
98+
extra_args: --verbose --hook-stage manual --all-files
9599
if: ${{ steps.build.outcome == 'success' && always() }}
96100

97101
- name: Run docstring validation script tests
@@ -100,7 +104,7 @@ jobs:
100104

101105
asv-benchmarks:
102106
name: ASV Benchmarks
103-
runs-on: ubuntu-latest
107+
runs-on: ubuntu-22.04
104108
defaults:
105109
run:
106110
shell: bash -el {0}
@@ -131,7 +135,7 @@ jobs:
131135
132136
build_docker_dev_environment:
133137
name: Build Docker Dev Environment
134-
runs-on: ubuntu-latest
138+
runs-on: ubuntu-22.04
135139
defaults:
136140
run:
137141
shell: bash -el {0}
@@ -153,9 +157,12 @@ jobs:
153157
- name: Build image
154158
run: docker build --pull --no-cache --tag pandas-dev-env .
155159

160+
- name: Show environment
161+
run: docker run --rm pandas-dev-env python -c "import pandas as pd; print(pd.show_versions())"
162+
156163
requirements-dev-text-installable:
157164
name: Test install requirements-dev.txt
158-
runs-on: ubuntu-latest
165+
runs-on: ubuntu-22.04
159166

160167
concurrency:
161168
# https://github.community/t/concurrecy-not-work-for-push/183068/7
@@ -170,7 +177,7 @@ jobs:
170177

171178
- name: Setup Python
172179
id: setup_python
173-
uses: actions/setup-python@v3
180+
uses: actions/setup-python@v4
174181
with:
175182
python-version: '3.8'
176183
cache: 'pip'

.github/workflows/codeql.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ concurrency:
1010

1111
jobs:
1212
analyze:
13-
runs-on: ubuntu-latest
13+
runs-on: ubuntu-22.04
1414
permissions:
1515
actions: read
1616
contents: read

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

+12-12
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,25 @@ on:
55
branches:
66
- main
77
- 1.5.x
8-
- 1.4.x
98
tags:
109
- '*'
1110
pull_request:
1211
branches:
1312
- main
1413
- 1.5.x
15-
- 1.4.x
1614

1715
env:
1816
ENV_FILE: environment.yml
1917
PANDAS_CI: 1
18+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2019

2120
permissions:
2221
contents: read
2322

2423
jobs:
2524
web_and_docs:
2625
name: Doc Build and Upload
27-
runs-on: ubuntu-latest
26+
runs-on: ubuntu-22.04
2827

2928
concurrency:
3029
# https://github.community/t/concurrecy-not-work-for-push/183068/7
@@ -47,6 +46,12 @@ jobs:
4746
- name: Build Pandas
4847
uses: ./.github/actions/build_pandas
4948

49+
- name: Set up maintainers cache
50+
uses: actions/cache@v3
51+
with:
52+
path: maintainers.json
53+
key: maintainers
54+
5055
- name: Build website
5156
run: python web/pandas_web.py web/pandas --target-path=web/build
5257

@@ -56,32 +61,27 @@ jobs:
5661
- name: Build documentation zip
5762
run: doc/make.py zip_html
5863

59-
- name: Build the interactive terminal
60-
run: |
61-
cd web/interactive_terminal
62-
jupyter lite build
63-
6464
- name: Install ssh key
6565
run: |
6666
mkdir -m 700 -p ~/.ssh
6767
echo "${{ secrets.server_ssh_key }}" > ~/.ssh/id_rsa
6868
chmod 600 ~/.ssh/id_rsa
69-
echo "${{ secrets.server_ip }} ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE1Kkopomm7FHG5enATf7SgnpICZ4W2bw+Ho+afqin+w7sMcrsa0je7sbztFAV8YchDkiBKnWTG4cRT+KZgZCaY=" > ~/.ssh/known_hosts
69+
echo "${{ secrets.server_ip }} ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFjYkJBk7sos+r7yATODogQc3jUdW1aascGpyOD4bohj8dWjzwLJv/OJ/fyOQ5lmj81WKDk67tGtqNJYGL9acII=" > ~/.ssh/known_hosts
7070
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))
7171

7272
- name: Copy cheatsheets into site directory
7373
run: cp doc/cheatsheet/Pandas_Cheat_Sheet* web/build/
7474

7575
- name: Upload web
76-
run: rsync -az --delete --exclude='pandas-docs' --exclude='docs' web/build/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas
76+
run: rsync -az --delete --exclude='pandas-docs' --exclude='docs' web/build/ web@${{ secrets.server_ip }}:/var/www/html
7777
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
7878

7979
- name: Upload dev docs
80-
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
80+
run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/dev
8181
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
8282

8383
- name: Upload prod docs
84-
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/version/${GITHUB_REF_NAME}
84+
run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/version/${GITHUB_REF_NAME:1}
8585
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
8686

8787
- name: Move docs into site directory

.github/workflows/macos-windows.yml

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
1-
name: Windows-MacOS
1+
name: Windows-macOS
22

33
on:
44
push:
55
branches:
66
- main
77
- 1.5.x
8-
- 1.4.x
98
pull_request:
109
branches:
1110
- main
1211
- 1.5.x
13-
- 1.4.x
1412
paths-ignore:
1513
- "doc/**"
1614

1715
env:
1816
PANDAS_CI: 1
1917
PYTEST_TARGET: pandas
2018
PATTERN: "not slow and not db and not network and not single_cpu"
19+
ERROR_ON_WARNINGS: "1"
2120

2221

2322
permissions:
@@ -28,7 +27,7 @@ jobs:
2827
defaults:
2928
run:
3029
shell: bash -el {0}
31-
timeout-minutes: 120
30+
timeout-minutes: 180
3231
strategy:
3332
matrix:
3433
os: [macos-latest, windows-latest]
@@ -54,7 +53,7 @@ jobs:
5453
uses: ./.github/actions/setup-conda
5554
with:
5655
environment-file: ci/deps/${{ matrix.env_file }}
57-
pyarrow-version: ${{ matrix.os == 'macos-latest' && '6' || '' }}
56+
pyarrow-version: ${{ matrix.os == 'macos-latest' && '9' || '' }}
5857

5958
- name: Build Pandas
6059
uses: ./.github/actions/build_pandas

.github/workflows/package-checks.yml

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Package Checks
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- 1.5.x
8+
pull_request:
9+
branches:
10+
- main
11+
- 1.5.x
12+
types: [ labeled, opened, synchronize, reopened ]
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
pip:
19+
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
20+
runs-on: ubuntu-22.04
21+
strategy:
22+
matrix:
23+
extra: ["test", "performance", "timezone", "computation", "fss", "aws", "gcp", "excel", "parquet", "feather", "hdf5", "spss", "postgresql", "mysql", "sql-other", "html", "xml", "plot", "output_formatting", "clipboard", "compression", "all"]
24+
fail-fast: false
25+
name: Install Extras - ${{ matrix.extra }}
26+
concurrency:
27+
# https://github.community/t/concurrecy-not-work-for-push/183068/7
28+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-pip-extras-${{ matrix.extra }}
29+
cancel-in-progress: true
30+
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v3
34+
with:
35+
fetch-depth: 0
36+
37+
- name: Setup Python
38+
id: setup_python
39+
uses: actions/setup-python@v4
40+
with:
41+
python-version: '3.8'
42+
43+
- name: Install required dependencies
44+
run: |
45+
python -m pip install --upgrade pip setuptools wheel python-dateutil pytz numpy cython
46+
python -m pip install versioneer[toml]
47+
shell: bash -el {0}
48+
49+
- name: Pip install with extra
50+
run: |
51+
python -m pip install -e .[${{ matrix.extra }}] --no-build-isolation
52+
shell: bash -el {0}

0 commit comments

Comments
 (0)