Skip to content

Commit caa3f99

Browse files
Merge branch 'multi-bug' of https://github.com/srotondo/pandas into multi-bug
2 parents bb8856e + 01c824c commit caa3f99

File tree

489 files changed

+11504
-5179
lines changed

Some content is hidden

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

489 files changed

+11504
-5179
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jobs:
44
test-arm:
55
machine:
66
image: ubuntu-2004:202101-01
7-
resource_class: arm.medium
7+
resource_class: arm.large
88
environment:
99
ENV_FILE: ci/deps/circle-38-arm64.yaml
1010
PYTEST_WORKERS: auto

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

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
89
pull_request:
910
branches:
1011
- main
12+
- 1.5.x
1113
- 1.4.x
1214
paths-ignore:
1315
- "doc/**"
@@ -39,8 +41,9 @@ jobs:
3941
. ~/virtualenvs/pandas-dev/bin/activate && \
4042
python -m pip install --no-deps -U pip wheel 'setuptools<60.0.0' && \
4143
pip install cython numpy python-dateutil pytz pytest pytest-xdist pytest-asyncio>=0.17 hypothesis && \
42-
python setup.py build_ext -q -j2 && \
44+
python setup.py build_ext -q -j1 && \
4345
python -m pip install --no-build-isolation --no-use-pep517 -e . && \
46+
python -m pip list && \
4447
export PANDAS_CI=1 && \
4548
pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml"
4649

.github/workflows/code-checks.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
89
pull_request:
910
branches:
1011
- main
12+
- 1.5.x
1113
- 1.4.x
1214

1315
env:

.github/workflows/codeql.yml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CodeQL
2+
on:
3+
schedule:
4+
# every day at midnight
5+
- cron: "0 0 * * *"
6+
7+
concurrency:
8+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
analyze:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
actions: read
16+
contents: read
17+
security-events: write
18+
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
language:
23+
- python
24+
25+
steps:
26+
- uses: actions/checkout@v3
27+
- uses: github/codeql-action/init@v2
28+
with:
29+
languages: ${{ matrix.language }}
30+
- uses: github/codeql-action/autobuild@v2
31+
- uses: github/codeql-action/analyze@v2

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

+11
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
9+
tags:
10+
- '*'
811
pull_request:
912
branches:
1013
- main
14+
- 1.5.x
1115
- 1.4.x
1216

1317
env:
@@ -49,6 +53,9 @@ jobs:
4953
- name: Build documentation
5054
run: doc/make.py --warnings-are-errors
5155

56+
- name: Build documentation zip
57+
run: doc/make.py zip_html
58+
5259
- name: Build the interactive terminal
5360
run: |
5461
cd web/interactive_terminal
@@ -73,6 +80,10 @@ jobs:
7380
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
7481
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
7582

83+
- 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}
85+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
86+
7687
- name: Move docs into site directory
7788
run: mv doc/build/html web/build/docs
7889

.github/workflows/macos-windows.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
89
pull_request:
910
branches:
1011
- main
12+
- 1.5.x
1113
- 1.4.x
1214
paths-ignore:
1315
- "doc/**"

.github/workflows/python-dev.yml

+31-17
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
1-
# This file is purposely frozen(does not run). DO NOT DELETE IT
2-
# Unfreeze(by commentingthe if: false() condition) once the
3-
# next Python Dev version has released beta 1 and both Cython and numpy support it
4-
# After that Python has released, migrate the workflows to the
5-
# posix GHA workflows and "freeze" this file by
6-
# uncommenting the if: false() condition
1+
# This workflow may or may not run depending on the state of the next
2+
# unreleased Python version. DO NOT DELETE IT.
3+
#
4+
# In general, this file will remain frozen(present, but not running) until:
5+
# - The next unreleased Python version has released beta 1
6+
# - This version should be available on Github Actions.
7+
# - Our required build/runtime dependencies(numpy, pytz, Cython, python-dateutil)
8+
# support that unreleased Python version.
9+
# To unfreeze, comment out the ``if: false`` condition, and make sure you update
10+
# the name of the workflow and Python version in actions/setup-python to: '3.12-dev'
11+
#
12+
# After it has been unfrozen, this file should remain unfrozen(present, and running) until:
13+
# - The next Python version has been officially released.
14+
# OR
15+
# - Most/All of our optional dependencies support Python 3.11 AND
16+
# - The next Python version has released a rc(we are guaranteed a stable ABI).
17+
# To freeze this file, uncomment out the ``if: false`` condition, and migrate the jobs
18+
# to the corresponding posix/windows-macos/sdist etc. workflows.
719
# Feel free to modify this comment as necessary.
820

921
name: Python Dev
@@ -12,10 +24,12 @@ on:
1224
push:
1325
branches:
1426
- main
27+
- 1.5.x
1528
- 1.4.x
1629
pull_request:
1730
branches:
1831
- main
32+
- 1.5.x
1933
- 1.4.x
2034
paths-ignore:
2135
- "doc/**"
@@ -32,7 +46,7 @@ permissions:
3246

3347
jobs:
3448
build:
35-
if: false # Comment this line out to "unfreeze"
49+
# if: false # Uncomment this to freeze the workflow, comment it to unfreeze
3650
runs-on: ${{ matrix.os }}
3751
strategy:
3852
fail-fast: false
@@ -53,27 +67,27 @@ jobs:
5367
fetch-depth: 0
5468

5569
- name: Set up Python Dev Version
56-
uses: actions/setup-python@v3
70+
uses: actions/setup-python@v4
5771
with:
5872
python-version: '3.11-dev'
5973

6074
- name: Install dependencies
61-
shell: bash -el {0}
6275
run: |
63-
python3 -m pip install --upgrade pip setuptools wheel
64-
python3 -m pip install -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy
65-
python3 -m pip install git+https://github.com/nedbat/coveragepy.git
66-
python3 -m pip install cython python-dateutil pytz hypothesis pytest>=6.2.5 pytest-xdist pytest-cov pytest-asyncio>=0.17
67-
python3 -m pip list
76+
python --version
77+
python -m pip install --upgrade pip setuptools wheel
78+
python -m pip install git+https://github.com/numpy/numpy.git
79+
python -m pip install git+https://github.com/nedbat/coveragepy.git
80+
python -m pip install python-dateutil pytz cython hypothesis==6.52.1 pytest>=6.2.5 pytest-xdist pytest-cov pytest-asyncio>=0.17
81+
python -m pip list
6882
6983
- name: Build Pandas
7084
run: |
71-
python3 setup.py build_ext -q -j2
72-
python3 -m pip install -e . --no-build-isolation --no-use-pep517
85+
python setup.py build_ext -q -j2
86+
python -m pip install -e . --no-build-isolation --no-use-pep517
7387
7488
- name: Build Version
7589
run: |
76-
python3 -c "import pandas; pandas.show_versions();"
90+
python -c "import pandas; pandas.show_versions();"
7791
7892
- name: Test
7993
uses: ./.github/actions/run-tests

.github/workflows/sdist.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
89
pull_request:
910
branches:
1011
- main
12+
- 1.5.x
1113
- 1.4.x
1214
types: [labeled, opened, synchronize, reopened]
1315
paths-ignore:
@@ -79,9 +81,9 @@ jobs:
7981
run: |
8082
case "${{matrix.python-version}}" in
8183
3.8)
82-
pip install numpy==1.19.5 ;;
84+
pip install numpy==1.20.3 ;;
8385
3.9)
84-
pip install numpy==1.19.5 ;;
86+
pip install numpy==1.20.3 ;;
8587
3.10)
8688
pip install numpy==1.21.2 ;;
8789
esac

.github/workflows/ubuntu.yml

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 1.5.x
78
- 1.4.x
89
pull_request:
910
branches:
1011
- main
12+
- 1.5.x
1113
- 1.4.x
1214
paths-ignore:
1315
- "doc/**"
@@ -52,6 +54,10 @@ jobs:
5254
extra_apt: "language-pack-zh-hans"
5355
lang: "zh_CN.utf8"
5456
lc_all: "zh_CN.utf8"
57+
- name: "Copy-on-Write"
58+
env_file: actions-310.yaml
59+
pattern: "not slow and not network and not single_cpu"
60+
pandas_copy_on_write: "1"
5561
- name: "Data Manager"
5662
env_file: actions-38.yaml
5763
pattern: "not slow and not network and not single_cpu"
@@ -64,7 +70,7 @@ jobs:
6470
env_file: actions-310-numpydev.yaml
6571
pattern: "not slow and not network and not single_cpu"
6672
pandas_testing_mode: "deprecate"
67-
test_args: "-W error::DeprecationWarning:numpy"
73+
test_args: "-W error::DeprecationWarning:numpy -W error::FutureWarning:numpy"
6874
exclude:
6975
- env_file: actions-39.yaml
7076
pyarrow_version: "6"
@@ -84,6 +90,7 @@ jobs:
8490
LC_ALL: ${{ matrix.lc_all || '' }}
8591
PANDAS_TESTING_MODE: ${{ matrix.pandas_testing_mode || '' }}
8692
PANDAS_DATA_MANAGER: ${{ matrix.pandas_data_manager || 'block' }}
93+
PANDAS_COPY_ON_WRITE: ${{ matrix.pandas_copy_on_write || '0' }}
8794
TEST_ARGS: ${{ matrix.test_args || '' }}
8895
PYTEST_WORKERS: ${{ contains(matrix.pattern, 'not single_cpu') && 'auto' || '1' }}
8996
PYTEST_TARGET: ${{ matrix.pytest_target || 'pandas' }}

.pre-commit-config.yaml

+21-12
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repos:
1111
- id: absolufy-imports
1212
files: ^pandas/
1313
- repo: https://github.com/jendrikseipp/vulture
14-
rev: 'v2.4'
14+
rev: 'v2.5'
1515
hooks:
1616
- id: vulture
1717
entry: python scripts/run_vulture.py
@@ -46,20 +46,19 @@ repos:
4646
exclude: ^pandas/_libs/src/(klib|headers)/
4747
args: [--quiet, '--extensions=c,h', '--headers=h', --recursive, '--filter=-readability/casting,-runtime/int,-build/include_subdir']
4848
- repo: https://github.com/PyCQA/flake8
49-
rev: 4.0.1
49+
rev: 5.0.4
5050
hooks:
5151
- id: flake8
5252
additional_dependencies: &flake8_dependencies
53-
- flake8==4.0.1
54-
- flake8-comprehensions==3.7.0
55-
- flake8-bugbear==21.3.2
53+
- flake8==5.0.4
54+
- flake8-bugbear==22.7.1
5655
- pandas-dev-flaker==0.5.0
5756
- repo: https://github.com/PyCQA/isort
5857
rev: 5.10.1
5958
hooks:
6059
- id: isort
6160
- repo: https://github.com/asottile/pyupgrade
62-
rev: v2.34.0
61+
rev: v2.37.3
6362
hooks:
6463
- id: pyupgrade
6564
args: [--py38-plus]
@@ -85,32 +84,42 @@ repos:
8584
- repo: local
8685
hooks:
8786
- id: pyright
87+
# note: assumes python env is setup and activated
8888
name: pyright
8989
entry: pyright
90-
# note: assumes python env is setup and activated
9190
language: node
9291
pass_filenames: false
9392
types: [python]
9493
stages: [manual]
9594
additional_dependencies: &pyright_dependencies
96-
95+
9796
- id: pyright_reportGeneralTypeIssues
97+
# note: assumes python env is setup and activated
9898
name: pyright reportGeneralTypeIssues
9999
entry: pyright --skipunannotated -p pyright_reportGeneralTypeIssues.json
100-
# note: assumes python env is setup and activated
101100
language: node
102101
pass_filenames: false
103102
types: [python]
104103
stages: [manual]
105104
additional_dependencies: *pyright_dependencies
106105
- id: mypy
106+
# note: assumes python env is setup and activated
107107
name: mypy
108108
entry: mypy
109-
# note: assumes python env is setup and activated
110109
language: system
111110
pass_filenames: false
112111
types: [python]
113112
stages: [manual]
113+
- id: stubtest
114+
# note: assumes python env is setup and activated
115+
# note: requires pandas dev to be installed
116+
name: mypy (stubtest)
117+
entry: python
118+
language: system
119+
pass_filenames: false
120+
types: [pyi]
121+
args: [scripts/run_stubtest.py]
122+
stages: [manual]
114123
- id: flake8-rst
115124
name: flake8-rst
116125
description: Run flake8 on code snippets in docstrings or RST files
@@ -229,8 +238,8 @@ repos:
229238
types: [pyi]
230239
language: python
231240
additional_dependencies:
232-
- flake8==4.0.1
233-
- flake8-pyi==22.5.1
241+
- flake8==5.0.4
242+
- flake8-pyi==22.8.1
234243
- id: future-annotations
235244
name: import annotations from __future__
236245
entry: 'from __future__ import annotations'

Dockerfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM quay.io/condaforge/miniforge3
1+
FROM quay.io/condaforge/mambaforge
22

33
# if you forked pandas, you can pass in your own GitHub username to use your fork
44
# i.e. gh_username=myname
@@ -40,7 +40,6 @@ RUN mkdir "$pandas_home" \
4040
# we just update the base/root one from the 'environment.yml' file instead of creating a new one.
4141
#
4242
# Set up environment
43-
RUN conda install -y mamba
4443
RUN mamba env update -n base -f "$pandas_home/environment.yml"
4544

4645
# Build C extensions and pandas

asv_bench/asv.conf.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
// followed by the pip installed packages).
4343
"matrix": {
4444
"numpy": [],
45-
"Cython": ["0.29.30"],
45+
"Cython": ["0.29.32"],
4646
"matplotlib": [],
4747
"sqlalchemy": [],
4848
"scipy": [],

0 commit comments

Comments
 (0)