Skip to content

Commit 96d7202

Browse files
Merge remote-tracking branch 'upstream/main' into string-dtype-tests-quantile
2 parents bd563e0 + d8905e4 commit 96d7202

File tree

191 files changed

+2793
-1482
lines changed

Some content is hidden

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

191 files changed

+2793
-1482
lines changed

.circleci/config.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,13 @@ jobs:
9292
no_output_timeout: 30m # Sometimes the tests won't generate any output, make sure the job doesn't get killed by that
9393
command: |
9494
pip3 install cibuildwheel==2.20.0
95-
cibuildwheel --output-dir wheelhouse
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
101+
fi
96102
97103
environment:
98104
CIBW_BUILD: << parameters.cibw-build >>
@@ -141,6 +147,10 @@ workflows:
141147
cibw-build: ["cp310-manylinux_aarch64",
142148
"cp311-manylinux_aarch64",
143149
"cp312-manylinux_aarch64",
150+
"cp313-manylinux_aarch64",
151+
"cp313t-manylinux_aarch64",
144152
"cp310-musllinux_aarch64",
145153
"cp311-musllinux_aarch64",
146-
"cp312-musllinux_aarch64",]
154+
"cp312-musllinux_aarch64",
155+
"cp313-musllinux_aarch64",
156+
"cp313t-musllinux_aarch64"]

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ 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
1416
condarc-file: ci/.condarc

.github/workflows/code-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.2.x
7+
- 2.3.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.2.x
11+
- 2.3.x
1212

1313
env:
1414
ENV_FILE: environment.yml

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.2.x
7+
- 2.3.x
88
tags:
99
- '*'
1010
pull_request:
1111
branches:
1212
- main
13-
- 2.2.x
13+
- 2.3.x
1414

1515
env:
1616
ENV_FILE: environment.yml

.github/workflows/package-checks.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.2.x
7+
- 2.3.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.2.x
11+
- 2.3.x
1212
types: [ labeled, opened, synchronize, reopened ]
1313

1414
permissions:
@@ -67,7 +67,7 @@ jobs:
6767
fetch-depth: 0
6868

6969
- name: Set up Python
70-
uses: mamba-org/setup-micromamba@v1
70+
uses: mamba-org/setup-micromamba@v2
7171
with:
7272
environment-name: recipe-test
7373
create-args: >-

.github/workflows/unit-tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
push:
55
branches:
66
- main
7-
- 2.2.x
7+
- 2.3.x
88
pull_request:
99
branches:
1010
- main
11-
- 2.2.x
11+
- 2.3.x
1212
paths-ignore:
1313
- "doc/**"
1414
- "web/**"

.github/workflows/wheels.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ jobs:
156156
run: echo "sdist_name=$(cd ./dist && ls -d */)" >> "$GITHUB_ENV"
157157

158158
- name: Build wheels
159-
uses: pypa/cibuildwheel@v2.20.0
159+
uses: pypa/cibuildwheel@v2.21.0
160160
with:
161161
package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }}
162162
env:
@@ -165,7 +165,7 @@ jobs:
165165
CIBW_PLATFORM: ${{ matrix.buildplat[1] == 'pyodide_wasm32' && 'pyodide' || 'auto' }}
166166

167167
- name: Set up Python
168-
uses: mamba-org/setup-micromamba@v1
168+
uses: mamba-org/setup-micromamba@v2
169169
with:
170170
environment-name: wheel-env
171171
# Use a fixed Python, since we might have an unreleased Python not

.pre-commit-config.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ minimum_pre_commit_version: 2.15.0
22
exclude: ^LICENSES/|\.(html|csv|svg)$
33
# reserve "manual" for relatively slow hooks which we still want to run in CI
44
default_stages: [
5-
commit,
6-
merge-commit,
7-
push,
5+
pre-commit,
6+
pre-merge-commit,
7+
pre-push,
88
prepare-commit-msg,
99
commit-msg,
1010
post-checkout,
@@ -19,7 +19,7 @@ ci:
1919
skip: [pyright, mypy]
2020
repos:
2121
- repo: https://github.com/astral-sh/ruff-pre-commit
22-
rev: v0.5.0
22+
rev: v0.6.9
2323
hooks:
2424
- id: ruff
2525
args: [--exit-non-zero-on-fix]
@@ -34,7 +34,7 @@ repos:
3434
- id: ruff-format
3535
exclude: ^scripts|^pandas/tests/frame/test_query_eval.py
3636
- repo: https://github.com/jendrikseipp/vulture
37-
rev: 'v2.11'
37+
rev: 'v2.13'
3838
hooks:
3939
- id: vulture
4040
entry: python scripts/run_vulture.py
@@ -52,7 +52,7 @@ repos:
5252
- id: cython-lint
5353
- id: double-quote-cython-strings
5454
- repo: https://github.com/pre-commit/pre-commit-hooks
55-
rev: v4.6.0
55+
rev: v5.0.0
5656
hooks:
5757
- id: check-case-conflict
5858
- id: check-toml
@@ -74,7 +74,7 @@ repos:
7474
hooks:
7575
- id: isort
7676
- repo: https://github.com/asottile/pyupgrade
77-
rev: v3.16.0
77+
rev: v3.17.0
7878
hooks:
7979
- id: pyupgrade
8080
args: [--py310-plus]
@@ -90,12 +90,12 @@ repos:
9090
types: [text] # overwrite types: [rst]
9191
types_or: [python, rst]
9292
- repo: https://github.com/sphinx-contrib/sphinx-lint
93-
rev: v0.9.1
93+
rev: v1.0.0
9494
hooks:
9595
- id: sphinx-lint
9696
args: ["--enable", "all", "--disable", "line-too-long"]
9797
- repo: https://github.com/pre-commit/mirrors-clang-format
98-
rev: v18.1.8
98+
rev: v19.1.1
9999
hooks:
100100
- id: clang-format
101101
files: ^pandas/_libs/src|^pandas/_libs/include
@@ -112,7 +112,7 @@ repos:
112112
types: [python]
113113
stages: [manual]
114114
additional_dependencies: &pyright_dependencies
115-
115+
116116
- id: pyright
117117
# note: assumes python env is setup and activated
118118
name: pyright reportGeneralTypeIssues

ci/code_checks.sh

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -73,151 +73,78 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
7373
-i "pandas.Period.freq GL08" \
7474
-i "pandas.Period.ordinal GL08" \
7575
-i "pandas.RangeIndex.from_range PR01,SA01" \
76-
-i "pandas.RangeIndex.step SA01" \
77-
-i "pandas.Series.cat.add_categories PR01,PR02" \
78-
-i "pandas.Series.cat.as_ordered PR01" \
79-
-i "pandas.Series.cat.as_unordered PR01" \
80-
-i "pandas.Series.cat.remove_categories PR01,PR02" \
81-
-i "pandas.Series.cat.remove_unused_categories PR01" \
82-
-i "pandas.Series.cat.rename_categories PR01,PR02" \
83-
-i "pandas.Series.cat.reorder_categories PR01,PR02" \
84-
-i "pandas.Series.cat.set_categories PR01,PR02" \
85-
-i "pandas.Series.dt.as_unit PR01,PR02" \
86-
-i "pandas.Series.dt.ceil PR01,PR02" \
87-
-i "pandas.Series.dt.day_name PR01,PR02" \
88-
-i "pandas.Series.dt.floor PR01,PR02" \
8976
-i "pandas.Series.dt.freq GL08" \
90-
-i "pandas.Series.dt.month_name PR01,PR02" \
91-
-i "pandas.Series.dt.normalize PR01" \
92-
-i "pandas.Series.dt.round PR01,PR02" \
93-
-i "pandas.Series.dt.strftime PR01,PR02" \
94-
-i "pandas.Series.dt.to_period PR01,PR02" \
95-
-i "pandas.Series.dt.total_seconds PR01" \
96-
-i "pandas.Series.dt.tz_convert PR01,PR02" \
97-
-i "pandas.Series.dt.tz_localize PR01,PR02" \
9877
-i "pandas.Series.dt.unit GL08" \
9978
-i "pandas.Series.pad PR01,SA01" \
100-
-i "pandas.Series.sparse.fill_value SA01" \
101-
-i "pandas.Series.sparse.from_coo PR07,SA01" \
102-
-i "pandas.Series.sparse.npoints SA01" \
103-
-i "pandas.Series.sparse.sp_values SA01" \
10479
-i "pandas.Timedelta.max PR02" \
10580
-i "pandas.Timedelta.min PR02" \
10681
-i "pandas.Timedelta.resolution PR02" \
107-
-i "pandas.Timedelta.to_timedelta64 SA01" \
108-
-i "pandas.TimedeltaIndex.to_pytimedelta RT03,SA01" \
10982
-i "pandas.Timestamp.max PR02" \
11083
-i "pandas.Timestamp.min PR02" \
11184
-i "pandas.Timestamp.nanosecond GL08" \
11285
-i "pandas.Timestamp.resolution PR02" \
11386
-i "pandas.Timestamp.tzinfo GL08" \
11487
-i "pandas.Timestamp.year GL08" \
115-
-i "pandas.api.types.is_dict_like PR07,SA01" \
116-
-i "pandas.api.types.is_file_like PR07,SA01" \
117-
-i "pandas.api.types.is_float PR01,SA01" \
118-
-i "pandas.api.types.is_float_dtype SA01" \
119-
-i "pandas.api.types.is_hashable PR01,RT03,SA01" \
120-
-i "pandas.api.types.is_int64_dtype SA01" \
121-
-i "pandas.api.types.is_integer PR01,SA01" \
122-
-i "pandas.api.types.is_interval_dtype SA01" \
12388
-i "pandas.api.types.is_iterator PR07,SA01" \
124-
-i "pandas.api.types.is_list_like SA01" \
125-
-i "pandas.api.types.is_named_tuple PR07,SA01" \
126-
-i "pandas.api.types.is_object_dtype SA01" \
127-
-i "pandas.api.types.is_re PR07,SA01" \
12889
-i "pandas.api.types.is_re_compilable PR07,SA01" \
12990
-i "pandas.api.types.pandas_dtype PR07,RT03,SA01" \
13091
-i "pandas.arrays.ArrowExtensionArray PR07,SA01" \
131-
-i "pandas.arrays.BooleanArray SA01" \
132-
-i "pandas.arrays.DatetimeArray SA01" \
13392
-i "pandas.arrays.IntegerArray SA01" \
13493
-i "pandas.arrays.IntervalArray.left SA01" \
13594
-i "pandas.arrays.IntervalArray.length SA01" \
136-
-i "pandas.arrays.IntervalArray.mid SA01" \
13795
-i "pandas.arrays.IntervalArray.right SA01" \
13896
-i "pandas.arrays.NumpyExtensionArray SA01" \
13997
-i "pandas.arrays.SparseArray PR07,SA01" \
14098
-i "pandas.arrays.TimedeltaArray PR07,SA01" \
141-
-i "pandas.core.groupby.DataFrameGroupBy.__iter__ RT03,SA01" \
142-
-i "pandas.core.groupby.DataFrameGroupBy.agg RT03" \
143-
-i "pandas.core.groupby.DataFrameGroupBy.aggregate RT03" \
14499
-i "pandas.core.groupby.DataFrameGroupBy.boxplot PR07,RT03,SA01" \
145100
-i "pandas.core.groupby.DataFrameGroupBy.get_group RT03,SA01" \
146101
-i "pandas.core.groupby.DataFrameGroupBy.groups SA01" \
147-
-i "pandas.core.groupby.DataFrameGroupBy.hist RT03" \
148102
-i "pandas.core.groupby.DataFrameGroupBy.indices SA01" \
149103
-i "pandas.core.groupby.DataFrameGroupBy.nth PR02" \
150104
-i "pandas.core.groupby.DataFrameGroupBy.nunique SA01" \
151-
-i "pandas.core.groupby.DataFrameGroupBy.ohlc SA01" \
152105
-i "pandas.core.groupby.DataFrameGroupBy.plot PR02" \
153106
-i "pandas.core.groupby.DataFrameGroupBy.sem SA01" \
154-
-i "pandas.core.groupby.SeriesGroupBy.__iter__ RT03,SA01" \
155-
-i "pandas.core.groupby.SeriesGroupBy.agg RT03" \
156-
-i "pandas.core.groupby.SeriesGroupBy.aggregate RT03" \
157107
-i "pandas.core.groupby.SeriesGroupBy.get_group RT03,SA01" \
158108
-i "pandas.core.groupby.SeriesGroupBy.groups SA01" \
159109
-i "pandas.core.groupby.SeriesGroupBy.indices SA01" \
160110
-i "pandas.core.groupby.SeriesGroupBy.is_monotonic_decreasing SA01" \
161111
-i "pandas.core.groupby.SeriesGroupBy.is_monotonic_increasing SA01" \
162112
-i "pandas.core.groupby.SeriesGroupBy.nth PR02" \
163-
-i "pandas.core.groupby.SeriesGroupBy.ohlc SA01" \
164113
-i "pandas.core.groupby.SeriesGroupBy.plot PR02" \
165114
-i "pandas.core.groupby.SeriesGroupBy.sem SA01" \
166-
-i "pandas.core.resample.Resampler.__iter__ RT03,SA01" \
167-
-i "pandas.core.resample.Resampler.ffill RT03" \
168115
-i "pandas.core.resample.Resampler.get_group RT03,SA01" \
169116
-i "pandas.core.resample.Resampler.groups SA01" \
170117
-i "pandas.core.resample.Resampler.indices SA01" \
171118
-i "pandas.core.resample.Resampler.max PR01,RT03,SA01" \
172119
-i "pandas.core.resample.Resampler.mean SA01" \
173120
-i "pandas.core.resample.Resampler.min PR01,RT03,SA01" \
174-
-i "pandas.core.resample.Resampler.ohlc SA01" \
175121
-i "pandas.core.resample.Resampler.prod SA01" \
176122
-i "pandas.core.resample.Resampler.quantile PR01,PR07" \
177123
-i "pandas.core.resample.Resampler.sem SA01" \
178124
-i "pandas.core.resample.Resampler.std SA01" \
179-
-i "pandas.core.resample.Resampler.sum SA01" \
180125
-i "pandas.core.resample.Resampler.transform PR01,RT03,SA01" \
181126
-i "pandas.core.resample.Resampler.var SA01" \
182-
-i "pandas.date_range RT03" \
183127
-i "pandas.errors.AttributeConflictWarning SA01" \
184-
-i "pandas.errors.CSSWarning SA01" \
185-
-i "pandas.errors.CategoricalConversionWarning SA01" \
186128
-i "pandas.errors.ChainedAssignmentError SA01" \
187-
-i "pandas.errors.ClosedFileError SA01" \
188129
-i "pandas.errors.DataError SA01" \
189130
-i "pandas.errors.DuplicateLabelError SA01" \
190-
-i "pandas.errors.EmptyDataError SA01" \
191131
-i "pandas.errors.IntCastingNaNError SA01" \
192132
-i "pandas.errors.InvalidIndexError SA01" \
193-
-i "pandas.errors.InvalidVersion SA01" \
194133
-i "pandas.errors.NullFrequencyError SA01" \
195134
-i "pandas.errors.NumExprClobberingError SA01" \
196135
-i "pandas.errors.NumbaUtilError SA01" \
197-
-i "pandas.errors.OptionError SA01" \
198-
-i "pandas.errors.OutOfBoundsDatetime SA01" \
199136
-i "pandas.errors.OutOfBoundsTimedelta SA01" \
200137
-i "pandas.errors.PerformanceWarning SA01" \
201138
-i "pandas.errors.PossibleDataLossError SA01" \
202-
-i "pandas.errors.PossiblePrecisionLoss SA01" \
203-
-i "pandas.errors.SpecificationError SA01" \
204139
-i "pandas.errors.UndefinedVariableError PR01,SA01" \
205140
-i "pandas.errors.UnsortedIndexError SA01" \
206-
-i "pandas.errors.UnsupportedFunctionCall SA01" \
207141
-i "pandas.errors.ValueLabelTypeMismatch SA01" \
208142
-i "pandas.infer_freq SA01" \
209143
-i "pandas.io.json.build_table_schema PR07,RT03,SA01" \
210-
-i "pandas.io.stata.StataReader.data_label SA01" \
211-
-i "pandas.io.stata.StataReader.value_labels RT03,SA01" \
212-
-i "pandas.io.stata.StataReader.variable_labels RT03,SA01" \
213144
-i "pandas.io.stata.StataWriter.write_file SA01" \
214-
-i "pandas.json_normalize RT03,SA01" \
215-
-i "pandas.period_range RT03,SA01" \
216145
-i "pandas.plotting.andrews_curves RT03,SA01" \
217-
-i "pandas.plotting.lag_plot RT03,SA01" \
218146
-i "pandas.plotting.scatter_matrix PR07,SA01" \
219147
-i "pandas.set_eng_float_format RT03,SA01" \
220-
-i "pandas.testing.assert_extension_array_equal SA01" \
221148
-i "pandas.tseries.offsets.BDay PR02,SA01" \
222149
-i "pandas.tseries.offsets.BQuarterBegin.is_on_offset GL08" \
223150
-i "pandas.tseries.offsets.BQuarterBegin.n GL08" \
@@ -363,13 +290,11 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
363290
-i "pandas.tseries.offsets.Second.is_on_offset GL08" \
364291
-i "pandas.tseries.offsets.Second.n GL08" \
365292
-i "pandas.tseries.offsets.Second.normalize GL08" \
366-
-i "pandas.tseries.offsets.SemiMonthBegin SA01" \
367293
-i "pandas.tseries.offsets.SemiMonthBegin.day_of_month GL08" \
368294
-i "pandas.tseries.offsets.SemiMonthBegin.is_on_offset GL08" \
369295
-i "pandas.tseries.offsets.SemiMonthBegin.n GL08" \
370296
-i "pandas.tseries.offsets.SemiMonthBegin.normalize GL08" \
371297
-i "pandas.tseries.offsets.SemiMonthBegin.rule_code GL08" \
372-
-i "pandas.tseries.offsets.SemiMonthEnd SA01" \
373298
-i "pandas.tseries.offsets.SemiMonthEnd.day_of_month GL08" \
374299
-i "pandas.tseries.offsets.SemiMonthEnd.is_on_offset GL08" \
375300
-i "pandas.tseries.offsets.SemiMonthEnd.n GL08" \

ci/deps/actions-310.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ dependencies:
5252
- scipy>=1.10.0
5353
- sqlalchemy>=2.0.0
5454
- tabulate>=0.9.0
55-
- xarray>=2022.12.0
55+
- xarray>=2022.12.0, <=2024.9.0
5656
- xlrd>=2.0.1
5757
- xlsxwriter>=3.0.5
5858
- zstandard>=0.19.0

0 commit comments

Comments
 (0)