Skip to content

Commit dd566f1

Browse files
Merge branch 'main' into groupby-then-resample-if-index-out-of-order
2 parents 62bdbdf + 197e8db commit dd566f1

File tree

148 files changed

+2105
-1098
lines changed

Some content is hidden

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

148 files changed

+2105
-1098
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
if pip show pandas 1>/dev/null; then
3333
pip uninstall -y pandas
3434
fi
35-
python -m pip install --no-build-isolation -ve . --config-settings=setup-args="--werror"
35+
python -m pip install --no-build-isolation -ve . -Csetup-args="--werror"
3636
PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH
3737
sudo apt-get update && sudo apt-get install -y libegl1 libopengl0
3838
ci/run_tests.sh
@@ -57,7 +57,7 @@ jobs:
5757
. ~/virtualenvs/pandas-dev/bin/activate
5858
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
5959
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 . --config-settings=setup-args="--werror"
60+
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
6161
python -m pip list --no-cache-dir
6262
export PANDAS_CI=1
6363
python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml

.github/actions/build_pandas/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ runs:
3333
run: |
3434
if [[ ${{ inputs.editable }} == "true" ]]; then
3535
pip install -e . --no-build-isolation -v --no-deps \
36-
--config-settings=setup-args="--werror"
36+
-Csetup-args="--werror"
3737
else
3838
pip install . --no-build-isolation -v --no-deps \
39-
--config-settings=setup-args="--werror"
39+
-Csetup-args="--werror"
4040
fi
4141
shell: bash -el {0}

.github/workflows/unit-tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,9 @@ jobs:
235235
/opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev
236236
. ~/virtualenvs/pandas-dev/bin/activate
237237
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
238-
python -m pip install numpy --config-settings=setup-args="-Dallow-noblas=true"
238+
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
239239
python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
240-
python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror"
240+
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
241241
python -m pip list --no-cache-dir
242242
export PANDAS_CI=1
243243
python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml
@@ -275,7 +275,7 @@ jobs:
275275
. ~/virtualenvs/pandas-dev/bin/activate
276276
python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1
277277
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
278-
python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror"
278+
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
279279
python -m pip list --no-cache-dir
280280
281281
- name: Run Tests
@@ -349,7 +349,7 @@ jobs:
349349
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy
350350
python -m pip install versioneer[toml]
351351
python -m pip install python-dateutil tzdata cython hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
352-
python -m pip install -ve . --no-build-isolation --no-index --no-deps --config-settings=setup-args="--werror"
352+
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
353353
python -m pip list
354354
355355
- name: Run Tests
@@ -392,7 +392,7 @@ jobs:
392392
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy cython
393393
python -m pip install versioneer[toml]
394394
python -m pip install python-dateutil pytz tzdata hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
395-
python -m pip install -ve . --no-build-isolation --no-index --no-deps --config-settings=setup-args="--werror"
395+
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
396396
python -m pip list
397397
398398
- name: Run Tests

.gitpod.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ tasks:
1313
mkdir -p .vscode
1414
cp gitpod/settings.json .vscode/settings.json
1515
git fetch --tags
16-
python -m pip install -ve . --no-build-isolation --config-settings editable-verbose=true
16+
python -m pip install -ve . --no-build-isolation -Ceditable-verbose=true
1717
pre-commit install --install-hooks
1818
command: |
19-
python -m pip install -ve . --no-build-isolation --config-settings editable-verbose=true
19+
python -m pip install -ve . --no-build-isolation -Ceditable-verbose=true
2020
echo "✨ Pre-build complete! You can close this terminal ✨ "
2121
2222
# --------------------------------------------------------

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ or for installing in [development mode](https://pip.pypa.io/en/latest/cli/pip_in
138138

139139

140140
```sh
141-
python -m pip install -ve . --no-build-isolation --config-settings=editable-verbose=true
141+
python -m pip install -ve . --no-build-isolation -Ceditable-verbose=true
142142
```
143143

144144
See the full instructions for [installing from source](https://pandas.pydata.org/docs/dev/development/contributing_environment.html).

asv_bench/benchmarks/indexing_engines.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def setup(self, engine_and_dtype, index_type, unique, N):
8787
arr = np.array([1, 2, 3], dtype=dtype).repeat(N)
8888

8989
self.data = engine(arr)
90-
# code belows avoids populating the mapping etc. while timing.
90+
# code below avoids populating the mapping etc. while timing.
9191
self.data.get_loc(2)
9292

9393
self.key_middle = arr[len(arr) // 2]
@@ -140,7 +140,7 @@ def setup(self, engine_and_dtype, index_type, unique, N):
140140
mask[-1] = True
141141

142142
self.data = engine(BaseMaskedArray(arr, mask))
143-
# code belows avoids populating the mapping etc. while timing.
143+
# code below avoids populating the mapping etc. while timing.
144144
self.data.get_loc(2)
145145

146146
self.key_middle = arr[len(arr) // 2]
@@ -169,7 +169,7 @@ def setup(self, index_type):
169169
}[index_type]
170170

171171
self.data = libindex.ObjectEngine(arr)
172-
# code belows avoids populating the mapping etc. while timing.
172+
# code below avoids populating the mapping etc. while timing.
173173
self.data.get_loc("b")
174174

175175
def time_get_loc(self, index_type):

ci/code_checks.sh

Lines changed: 0 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -70,39 +70,11 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
7070
--format=actions \
7171
-i ES01 `# For now it is ok if docstrings are missing the extended summary` \
7272
-i "pandas.Series.dt PR01" `# Accessors are implemented as classes, but we do not document the Parameters section` \
73-
-i "pandas.MultiIndex.reorder_levels RT03,SA01" \
74-
-i "pandas.MultiIndex.to_frame RT03" \
7573
-i "pandas.NA SA01" \
76-
-i "pandas.NaT SA01" \
7774
-i "pandas.Period.freq GL08" \
78-
-i "pandas.Period.freqstr SA01" \
7975
-i "pandas.Period.ordinal GL08" \
80-
-i "pandas.Period.strftime PR01,SA01" \
8176
-i "pandas.Period.to_timestamp SA01" \
82-
-i "pandas.PeriodDtype SA01" \
8377
-i "pandas.PeriodDtype.freq SA01" \
84-
-i "pandas.PeriodIndex.day SA01" \
85-
-i "pandas.PeriodIndex.day_of_week SA01" \
86-
-i "pandas.PeriodIndex.day_of_year SA01" \
87-
-i "pandas.PeriodIndex.dayofweek SA01" \
88-
-i "pandas.PeriodIndex.dayofyear SA01" \
89-
-i "pandas.PeriodIndex.days_in_month SA01" \
90-
-i "pandas.PeriodIndex.daysinmonth SA01" \
91-
-i "pandas.PeriodIndex.from_fields PR07,SA01" \
92-
-i "pandas.PeriodIndex.from_ordinals SA01" \
93-
-i "pandas.PeriodIndex.hour SA01" \
94-
-i "pandas.PeriodIndex.is_leap_year SA01" \
95-
-i "pandas.PeriodIndex.minute SA01" \
96-
-i "pandas.PeriodIndex.month SA01" \
97-
-i "pandas.PeriodIndex.quarter SA01" \
98-
-i "pandas.PeriodIndex.qyear GL08" \
99-
-i "pandas.PeriodIndex.second SA01" \
100-
-i "pandas.PeriodIndex.to_timestamp RT03,SA01" \
101-
-i "pandas.PeriodIndex.week SA01" \
102-
-i "pandas.PeriodIndex.weekday SA01" \
103-
-i "pandas.PeriodIndex.weekofyear SA01" \
104-
-i "pandas.PeriodIndex.year SA01" \
105-
-i "pandas.RangeIndex PR07" \
10678
-i "pandas.RangeIndex.from_range PR01,SA01" \
10779
-i "pandas.RangeIndex.start SA01" \
10880
-i "pandas.RangeIndex.step SA01" \
@@ -124,7 +96,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
12496
-i "pandas.Series.dt.month_name PR01,PR02" \
12597
-i "pandas.Series.dt.nanoseconds SA01" \
12698
-i "pandas.Series.dt.normalize PR01" \
127-
-i "pandas.Series.dt.qyear GL08" \
12899
-i "pandas.Series.dt.round PR01,PR02" \
129100
-i "pandas.Series.dt.seconds SA01" \
130101
-i "pandas.Series.dt.strftime PR01,PR02" \
@@ -133,34 +104,11 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
133104
-i "pandas.Series.dt.tz_convert PR01,PR02" \
134105
-i "pandas.Series.dt.tz_localize PR01,PR02" \
135106
-i "pandas.Series.dt.unit GL08" \
136-
-i "pandas.Series.gt SA01" \
137-
-i "pandas.Series.list.__getitem__ SA01" \
138-
-i "pandas.Series.list.flatten SA01" \
139-
-i "pandas.Series.list.len SA01" \
140-
-i "pandas.Series.lt SA01" \
141-
-i "pandas.Series.ne SA01" \
142107
-i "pandas.Series.pad PR01,SA01" \
143-
-i "pandas.Series.pop SA01" \
144-
-i "pandas.Series.prod RT03" \
145-
-i "pandas.Series.product RT03" \
146-
-i "pandas.Series.reorder_levels RT03,SA01" \
147-
-i "pandas.Series.sem PR01,RT03,SA01" \
148-
-i "pandas.Series.sparse PR01,SA01" \
149-
-i "pandas.Series.sparse.density SA01" \
150108
-i "pandas.Series.sparse.fill_value SA01" \
151109
-i "pandas.Series.sparse.from_coo PR07,SA01" \
152110
-i "pandas.Series.sparse.npoints SA01" \
153111
-i "pandas.Series.sparse.sp_values SA01" \
154-
-i "pandas.Series.sparse.to_coo PR07,RT03,SA01" \
155-
-i "pandas.Series.std PR01,RT03,SA01" \
156-
-i "pandas.Series.str.match RT03" \
157-
-i "pandas.Series.str.normalize RT03,SA01" \
158-
-i "pandas.Series.str.repeat SA01" \
159-
-i "pandas.Series.str.replace SA01" \
160-
-i "pandas.Series.str.wrap RT03,SA01" \
161-
-i "pandas.Series.str.zfill RT03" \
162-
-i "pandas.Series.struct.dtypes SA01" \
163-
-i "pandas.Series.to_markdown SA01" \
164112
-i "pandas.Timedelta.asm8 SA01" \
165113
-i "pandas.Timedelta.ceil SA01" \
166114
-i "pandas.Timedelta.components SA01" \
@@ -173,41 +121,18 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
173121
-i "pandas.Timedelta.to_timedelta64 SA01" \
174122
-i "pandas.Timedelta.total_seconds SA01" \
175123
-i "pandas.Timedelta.view SA01" \
176-
-i "pandas.TimedeltaIndex.as_unit RT03,SA01" \
177124
-i "pandas.TimedeltaIndex.components SA01" \
178125
-i "pandas.TimedeltaIndex.microseconds SA01" \
179126
-i "pandas.TimedeltaIndex.nanoseconds SA01" \
180127
-i "pandas.TimedeltaIndex.seconds SA01" \
181128
-i "pandas.TimedeltaIndex.to_pytimedelta RT03,SA01" \
182-
-i "pandas.Timestamp.day GL08" \
183-
-i "pandas.Timestamp.fold GL08" \
184-
-i "pandas.Timestamp.hour GL08" \
185129
-i "pandas.Timestamp.max PR02" \
186-
-i "pandas.Timestamp.microsecond GL08" \
187130
-i "pandas.Timestamp.min PR02" \
188-
-i "pandas.Timestamp.minute GL08" \
189-
-i "pandas.Timestamp.month GL08" \
190131
-i "pandas.Timestamp.nanosecond GL08" \
191132
-i "pandas.Timestamp.resolution PR02" \
192-
-i "pandas.Timestamp.second GL08" \
193133
-i "pandas.Timestamp.tzinfo GL08" \
194-
-i "pandas.Timestamp.value GL08" \
195134
-i "pandas.Timestamp.year GL08" \
196-
-i "pandas.api.extensions.ExtensionArray._pad_or_backfill PR01,RT03,SA01" \
197-
-i "pandas.api.extensions.ExtensionArray._reduce RT03,SA01" \
198-
-i "pandas.api.extensions.ExtensionArray._values_for_factorize SA01" \
199-
-i "pandas.api.extensions.ExtensionArray.astype SA01" \
200-
-i "pandas.api.extensions.ExtensionArray.dropna RT03,SA01" \
201-
-i "pandas.api.extensions.ExtensionArray.dtype SA01" \
202-
-i "pandas.api.extensions.ExtensionArray.duplicated RT03,SA01" \
203-
-i "pandas.api.extensions.ExtensionArray.fillna SA01" \
204-
-i "pandas.api.extensions.ExtensionArray.insert PR07,RT03,SA01" \
205135
-i "pandas.api.extensions.ExtensionArray.interpolate PR01,SA01" \
206-
-i "pandas.api.extensions.ExtensionArray.isin PR07,RT03,SA01" \
207-
-i "pandas.api.extensions.ExtensionArray.tolist RT03,SA01" \
208-
-i "pandas.api.extensions.ExtensionArray.unique RT03,SA01" \
209-
-i "pandas.api.extensions.ExtensionArray.view SA01" \
210-
-i "pandas.api.interchange.from_dataframe RT03,SA01" \
211136
-i "pandas.api.types.is_bool PR01,SA01" \
212137
-i "pandas.api.types.is_categorical_dtype SA01" \
213138
-i "pandas.api.types.is_complex PR01,SA01" \
@@ -259,7 +184,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
259184
-i "pandas.core.groupby.DataFrameGroupBy.nunique SA01" \
260185
-i "pandas.core.groupby.DataFrameGroupBy.ohlc SA01" \
261186
-i "pandas.core.groupby.DataFrameGroupBy.plot PR02" \
262-
-i "pandas.core.groupby.DataFrameGroupBy.prod SA01" \
263187
-i "pandas.core.groupby.DataFrameGroupBy.sem SA01" \
264188
-i "pandas.core.groupby.DataFrameGroupBy.sum SA01" \
265189
-i "pandas.core.groupby.SeriesGroupBy.__iter__ RT03,SA01" \
@@ -276,7 +200,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
276200
-i "pandas.core.groupby.SeriesGroupBy.nth PR02" \
277201
-i "pandas.core.groupby.SeriesGroupBy.ohlc SA01" \
278202
-i "pandas.core.groupby.SeriesGroupBy.plot PR02" \
279-
-i "pandas.core.groupby.SeriesGroupBy.prod SA01" \
280203
-i "pandas.core.groupby.SeriesGroupBy.sem SA01" \
281204
-i "pandas.core.groupby.SeriesGroupBy.sum SA01" \
282205
-i "pandas.core.resample.Resampler.__iter__ RT03,SA01" \
@@ -295,13 +218,7 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
295218
-i "pandas.core.resample.Resampler.sum SA01" \
296219
-i "pandas.core.resample.Resampler.transform PR01,RT03,SA01" \
297220
-i "pandas.core.resample.Resampler.var SA01" \
298-
-i "pandas.core.window.expanding.Expanding.corr PR01" \
299-
-i "pandas.core.window.expanding.Expanding.count PR01" \
300-
-i "pandas.core.window.rolling.Rolling.max PR01" \
301-
-i "pandas.core.window.rolling.Window.std PR01" \
302-
-i "pandas.core.window.rolling.Window.var PR01" \
303221
-i "pandas.date_range RT03" \
304-
-i "pandas.errors.AbstractMethodError PR01,SA01" \
305222
-i "pandas.errors.AttributeConflictWarning SA01" \
306223
-i "pandas.errors.CSSWarning SA01" \
307224
-i "pandas.errors.CategoricalConversionWarning SA01" \
@@ -329,34 +246,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
329246
-i "pandas.errors.UnsupportedFunctionCall SA01" \
330247
-i "pandas.errors.ValueLabelTypeMismatch SA01" \
331248
-i "pandas.infer_freq SA01" \
332-
-i "pandas.io.formats.style.Styler.apply RT03" \
333-
-i "pandas.io.formats.style.Styler.apply_index RT03" \
334-
-i "pandas.io.formats.style.Styler.background_gradient RT03" \
335-
-i "pandas.io.formats.style.Styler.bar RT03,SA01" \
336-
-i "pandas.io.formats.style.Styler.clear SA01" \
337-
-i "pandas.io.formats.style.Styler.concat RT03,SA01" \
338-
-i "pandas.io.formats.style.Styler.export RT03" \
339-
-i "pandas.io.formats.style.Styler.from_custom_template SA01" \
340-
-i "pandas.io.formats.style.Styler.hide RT03,SA01" \
341-
-i "pandas.io.formats.style.Styler.highlight_between RT03" \
342-
-i "pandas.io.formats.style.Styler.highlight_max RT03" \
343-
-i "pandas.io.formats.style.Styler.highlight_min RT03" \
344-
-i "pandas.io.formats.style.Styler.highlight_null RT03" \
345-
-i "pandas.io.formats.style.Styler.highlight_quantile RT03" \
346-
-i "pandas.io.formats.style.Styler.map RT03" \
347-
-i "pandas.io.formats.style.Styler.map_index RT03" \
348-
-i "pandas.io.formats.style.Styler.set_caption RT03,SA01" \
349-
-i "pandas.io.formats.style.Styler.set_properties RT03,SA01" \
350-
-i "pandas.io.formats.style.Styler.set_sticky RT03,SA01" \
351-
-i "pandas.io.formats.style.Styler.set_table_attributes PR07,RT03" \
352-
-i "pandas.io.formats.style.Styler.set_table_styles RT03" \
353-
-i "pandas.io.formats.style.Styler.set_td_classes RT03" \
354-
-i "pandas.io.formats.style.Styler.set_tooltips RT03,SA01" \
355-
-i "pandas.io.formats.style.Styler.set_uuid PR07,RT03,SA01" \
356-
-i "pandas.io.formats.style.Styler.text_gradient RT03" \
357-
-i "pandas.io.formats.style.Styler.to_excel PR01" \
358-
-i "pandas.io.formats.style.Styler.to_string SA01" \
359-
-i "pandas.io.formats.style.Styler.use RT03" \
360249
-i "pandas.io.json.build_table_schema PR07,RT03,SA01" \
361250
-i "pandas.io.stata.StataReader.data_label SA01" \
362251
-i "pandas.io.stata.StataReader.value_labels RT03,SA01" \

doc/source/development/contributing_codebase.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ The ``temp_file`` pytest fixture creates a temporary file :py:class:`Pathlib` ob
605605
pd.DataFrame([1]).to_csv(str(temp_file))
606606
607607
Please reference `pytest's documentation <https://docs.pytest.org/en/latest/how-to/tmp_path.html#the-default-base-temporary-directory>`_
608-
for the file retension policy.
608+
for the file retention policy.
609609

610610
Testing involving network connectivity
611611
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)