Skip to content

Commit 1499e6c

Browse files
committed
Merge remote-tracking branch 'upstream/main' into stata-read-dta110
2 parents 3a13d62 + a2bce66 commit 1499e6c

File tree

137 files changed

+2039
-1161
lines changed

Some content is hidden

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

137 files changed

+2039
-1161
lines changed

.github/ISSUE_TEMPLATE/pdep_vote.yaml

+74
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

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ repos:
108108
types: [python]
109109
stages: [manual]
110110
additional_dependencies: &pyright_dependencies
111-
111+
112112
- id: pyright
113113
# note: assumes python env is setup and activated
114114
name: pyright reportGeneralTypeIssues

ci/code_checks.sh

+9-134
Original file line numberDiff line numberDiff line change
@@ -80,135 +80,49 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
8080
-i "pandas.CategoricalIndex.codes SA01" \
8181
-i "pandas.CategoricalIndex.ordered SA01" \
8282
-i "pandas.DataFrame.__dataframe__ SA01" \
83-
-i "pandas.DataFrame.__iter__ SA01" \
84-
-i "pandas.DataFrame.assign SA01" \
8583
-i "pandas.DataFrame.at_time PR01" \
86-
-i "pandas.DataFrame.bfill SA01" \
87-
-i "pandas.DataFrame.columns SA01" \
88-
-i "pandas.DataFrame.copy SA01" \
89-
-i "pandas.DataFrame.droplevel SA01" \
90-
-i "pandas.DataFrame.dtypes SA01" \
91-
-i "pandas.DataFrame.ffill SA01" \
92-
-i "pandas.DataFrame.first_valid_index SA01" \
93-
-i "pandas.DataFrame.get SA01" \
94-
-i "pandas.DataFrame.hist RT03" \
95-
-i "pandas.DataFrame.infer_objects RT03" \
96-
-i "pandas.DataFrame.keys SA01" \
9784
-i "pandas.DataFrame.kurt RT03,SA01" \
9885
-i "pandas.DataFrame.kurtosis RT03,SA01" \
99-
-i "pandas.DataFrame.last_valid_index SA01" \
10086
-i "pandas.DataFrame.max RT03" \
10187
-i "pandas.DataFrame.mean RT03,SA01" \
10288
-i "pandas.DataFrame.median RT03,SA01" \
10389
-i "pandas.DataFrame.min RT03" \
10490
-i "pandas.DataFrame.plot PR02,SA01" \
105-
-i "pandas.DataFrame.pop SA01" \
10691
-i "pandas.DataFrame.prod RT03" \
10792
-i "pandas.DataFrame.product RT03" \
108-
-i "pandas.DataFrame.reorder_levels SA01" \
10993
-i "pandas.DataFrame.sem PR01,RT03,SA01" \
11094
-i "pandas.DataFrame.skew RT03,SA01" \
111-
-i "pandas.DataFrame.sparse PR01,SA01" \
112-
-i "pandas.DataFrame.sparse.density SA01" \
113-
-i "pandas.DataFrame.sparse.from_spmatrix SA01" \
114-
-i "pandas.DataFrame.sparse.to_coo SA01" \
115-
-i "pandas.DataFrame.sparse.to_dense SA01" \
95+
-i "pandas.DataFrame.sparse PR01" \
11696
-i "pandas.DataFrame.std PR01,RT03,SA01" \
11797
-i "pandas.DataFrame.sum RT03" \
11898
-i "pandas.DataFrame.swaplevel SA01" \
119-
-i "pandas.DataFrame.to_feather SA01" \
12099
-i "pandas.DataFrame.to_markdown SA01" \
121-
-i "pandas.DataFrame.to_parquet RT03" \
122100
-i "pandas.DataFrame.var PR01,RT03,SA01" \
123-
-i "pandas.DatetimeIndex.ceil SA01" \
124-
-i "pandas.DatetimeIndex.date SA01" \
125-
-i "pandas.DatetimeIndex.day SA01" \
126-
-i "pandas.DatetimeIndex.day_name SA01" \
127-
-i "pandas.DatetimeIndex.day_of_year SA01" \
128-
-i "pandas.DatetimeIndex.dayofyear SA01" \
129-
-i "pandas.DatetimeIndex.floor SA01" \
130-
-i "pandas.DatetimeIndex.freqstr SA01" \
131-
-i "pandas.DatetimeIndex.hour SA01" \
132101
-i "pandas.DatetimeIndex.indexer_at_time PR01,RT03" \
133-
-i "pandas.DatetimeIndex.indexer_between_time RT03" \
134-
-i "pandas.DatetimeIndex.inferred_freq SA01" \
135-
-i "pandas.DatetimeIndex.is_leap_year SA01" \
136-
-i "pandas.DatetimeIndex.microsecond SA01" \
137-
-i "pandas.DatetimeIndex.minute SA01" \
138-
-i "pandas.DatetimeIndex.month SA01" \
139-
-i "pandas.DatetimeIndex.month_name SA01" \
140-
-i "pandas.DatetimeIndex.nanosecond SA01" \
141-
-i "pandas.DatetimeIndex.quarter SA01" \
142-
-i "pandas.DatetimeIndex.round SA01" \
143-
-i "pandas.DatetimeIndex.second SA01" \
144-
-i "pandas.DatetimeIndex.snap PR01,RT03,SA01" \
145-
-i "pandas.DatetimeIndex.std PR01,RT03" \
146-
-i "pandas.DatetimeIndex.time SA01" \
147-
-i "pandas.DatetimeIndex.timetz SA01" \
102+
-i "pandas.DatetimeIndex.snap PR01,RT03" \
148103
-i "pandas.DatetimeIndex.to_period RT03" \
149-
-i "pandas.DatetimeIndex.to_pydatetime RT03,SA01" \
150-
-i "pandas.DatetimeIndex.tz SA01" \
151-
-i "pandas.DatetimeIndex.tz_convert RT03" \
152-
-i "pandas.DatetimeIndex.year SA01" \
153-
-i "pandas.DatetimeTZDtype SA01" \
154-
-i "pandas.DatetimeTZDtype.tz SA01" \
155-
-i "pandas.DatetimeTZDtype.unit SA01" \
156-
-i "pandas.Grouper PR02,SA01" \
157-
-i "pandas.HDFStore.append PR01,SA01" \
158-
-i "pandas.HDFStore.get SA01" \
159-
-i "pandas.HDFStore.groups SA01" \
160-
-i "pandas.HDFStore.info RT03,SA01" \
161-
-i "pandas.HDFStore.keys SA01" \
162-
-i "pandas.HDFStore.put PR01,SA01" \
163-
-i "pandas.HDFStore.select SA01" \
164-
-i "pandas.HDFStore.walk SA01" \
104+
-i "pandas.Grouper PR02" \
165105
-i "pandas.Index PR07" \
166-
-i "pandas.Index.T SA01" \
167106
-i "pandas.Index.append PR07,RT03,SA01" \
168-
-i "pandas.Index.astype SA01" \
169-
-i "pandas.Index.copy PR07,SA01" \
170107
-i "pandas.Index.difference PR07,RT03,SA01" \
171-
-i "pandas.Index.drop PR07,SA01" \
172-
-i "pandas.Index.drop_duplicates RT03" \
173-
-i "pandas.Index.droplevel RT03,SA01" \
174-
-i "pandas.Index.dropna RT03,SA01" \
175-
-i "pandas.Index.dtype SA01" \
176108
-i "pandas.Index.duplicated RT03" \
177-
-i "pandas.Index.empty GL08" \
178-
-i "pandas.Index.equals SA01" \
179-
-i "pandas.Index.fillna RT03" \
180109
-i "pandas.Index.get_indexer PR07,SA01" \
181110
-i "pandas.Index.get_indexer_for PR01,SA01" \
182111
-i "pandas.Index.get_indexer_non_unique PR07,SA01" \
183112
-i "pandas.Index.get_loc PR07,RT03,SA01" \
184-
-i "pandas.Index.get_slice_bound PR07" \
185-
-i "pandas.Index.hasnans SA01" \
186113
-i "pandas.Index.identical PR01,SA01" \
187-
-i "pandas.Index.inferred_type SA01" \
188114
-i "pandas.Index.insert PR07,RT03,SA01" \
189115
-i "pandas.Index.intersection PR07,RT03,SA01" \
190-
-i "pandas.Index.item SA01" \
191116
-i "pandas.Index.join PR07,RT03,SA01" \
192-
-i "pandas.Index.map SA01" \
193-
-i "pandas.Index.memory_usage RT03" \
194-
-i "pandas.Index.name SA01" \
195117
-i "pandas.Index.names GL08" \
196-
-i "pandas.Index.nbytes SA01" \
197-
-i "pandas.Index.ndim SA01" \
198118
-i "pandas.Index.nunique RT03" \
199119
-i "pandas.Index.putmask PR01,RT03" \
200120
-i "pandas.Index.ravel PR01,RT03" \
201-
-i "pandas.Index.reindex PR07" \
202-
-i "pandas.Index.shape SA01" \
203-
-i "pandas.Index.size SA01" \
204121
-i "pandas.Index.slice_indexer PR07,RT03,SA01" \
205-
-i "pandas.Index.slice_locs RT03" \
206122
-i "pandas.Index.str PR01,SA01" \
207123
-i "pandas.Index.symmetric_difference PR07,RT03,SA01" \
208124
-i "pandas.Index.take PR01,PR07" \
209-
-i "pandas.Index.to_list RT03" \
210125
-i "pandas.Index.union PR07,RT03,SA01" \
211-
-i "pandas.Index.unique RT03" \
212126
-i "pandas.Index.view GL08" \
213127
-i "pandas.Int16Dtype SA01" \
214128
-i "pandas.Int32Dtype SA01" \
@@ -236,7 +150,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
236150
-i "pandas.MultiIndex.append PR07,SA01" \
237151
-i "pandas.MultiIndex.copy PR07,RT03,SA01" \
238152
-i "pandas.MultiIndex.drop PR07,RT03,SA01" \
239-
-i "pandas.MultiIndex.droplevel RT03,SA01" \
240153
-i "pandas.MultiIndex.dtypes SA01" \
241154
-i "pandas.MultiIndex.get_indexer PR07,SA01" \
242155
-i "pandas.MultiIndex.get_level_values SA01" \
@@ -277,7 +190,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
277190
-i "pandas.PeriodIndex.dayofyear SA01" \
278191
-i "pandas.PeriodIndex.days_in_month SA01" \
279192
-i "pandas.PeriodIndex.daysinmonth SA01" \
280-
-i "pandas.PeriodIndex.freqstr SA01" \
281193
-i "pandas.PeriodIndex.from_fields PR07,SA01" \
282194
-i "pandas.PeriodIndex.from_ordinals SA01" \
283195
-i "pandas.PeriodIndex.hour SA01" \
@@ -298,12 +210,10 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
298210
-i "pandas.RangeIndex.step SA01" \
299211
-i "pandas.RangeIndex.stop SA01" \
300212
-i "pandas.Series SA01" \
301-
-i "pandas.Series.T SA01" \
302213
-i "pandas.Series.__iter__ RT03,SA01" \
303214
-i "pandas.Series.add PR07" \
304215
-i "pandas.Series.at_time PR01" \
305216
-i "pandas.Series.backfill PR01,SA01" \
306-
-i "pandas.Series.bfill SA01" \
307217
-i "pandas.Series.case_when RT03" \
308218
-i "pandas.Series.cat PR07,SA01" \
309219
-i "pandas.Series.cat.add_categories PR01,PR02" \
@@ -316,67 +226,40 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
316226
-i "pandas.Series.cat.rename_categories PR01,PR02" \
317227
-i "pandas.Series.cat.reorder_categories PR01,PR02" \
318228
-i "pandas.Series.cat.set_categories PR01,PR02" \
319-
-i "pandas.Series.copy SA01" \
320229
-i "pandas.Series.div PR07" \
321-
-i "pandas.Series.droplevel SA01" \
322230
-i "pandas.Series.dt.as_unit PR01,PR02" \
323-
-i "pandas.Series.dt.ceil PR01,PR02,SA01" \
231+
-i "pandas.Series.dt.ceil PR01,PR02" \
324232
-i "pandas.Series.dt.components SA01" \
325-
-i "pandas.Series.dt.date SA01" \
326-
-i "pandas.Series.dt.day SA01" \
327-
-i "pandas.Series.dt.day_name PR01,PR02,SA01" \
328-
-i "pandas.Series.dt.day_of_year SA01" \
329-
-i "pandas.Series.dt.dayofyear SA01" \
233+
-i "pandas.Series.dt.day_name PR01,PR02" \
330234
-i "pandas.Series.dt.days SA01" \
331235
-i "pandas.Series.dt.days_in_month SA01" \
332236
-i "pandas.Series.dt.daysinmonth SA01" \
333-
-i "pandas.Series.dt.floor PR01,PR02,SA01" \
237+
-i "pandas.Series.dt.floor PR01,PR02" \
334238
-i "pandas.Series.dt.freq GL08" \
335-
-i "pandas.Series.dt.hour SA01" \
336-
-i "pandas.Series.dt.is_leap_year SA01" \
337-
-i "pandas.Series.dt.microsecond SA01" \
338239
-i "pandas.Series.dt.microseconds SA01" \
339-
-i "pandas.Series.dt.minute SA01" \
340-
-i "pandas.Series.dt.month SA01" \
341-
-i "pandas.Series.dt.month_name PR01,PR02,SA01" \
342-
-i "pandas.Series.dt.nanosecond SA01" \
240+
-i "pandas.Series.dt.month_name PR01,PR02" \
343241
-i "pandas.Series.dt.nanoseconds SA01" \
344242
-i "pandas.Series.dt.normalize PR01" \
345-
-i "pandas.Series.dt.quarter SA01" \
346243
-i "pandas.Series.dt.qyear GL08" \
347-
-i "pandas.Series.dt.round PR01,PR02,SA01" \
348-
-i "pandas.Series.dt.second SA01" \
244+
-i "pandas.Series.dt.round PR01,PR02" \
349245
-i "pandas.Series.dt.seconds SA01" \
350246
-i "pandas.Series.dt.strftime PR01,PR02" \
351-
-i "pandas.Series.dt.time SA01" \
352-
-i "pandas.Series.dt.timetz SA01" \
353247
-i "pandas.Series.dt.to_period PR01,PR02,RT03" \
354248
-i "pandas.Series.dt.total_seconds PR01" \
355-
-i "pandas.Series.dt.tz SA01" \
356-
-i "pandas.Series.dt.tz_convert PR01,PR02,RT03" \
249+
-i "pandas.Series.dt.tz_convert PR01,PR02" \
357250
-i "pandas.Series.dt.tz_localize PR01,PR02" \
358251
-i "pandas.Series.dt.unit GL08" \
359-
-i "pandas.Series.dt.year SA01" \
360252
-i "pandas.Series.dtype SA01" \
361-
-i "pandas.Series.dtypes SA01" \
362-
-i "pandas.Series.empty GL08" \
363253
-i "pandas.Series.eq PR07,SA01" \
364-
-i "pandas.Series.ffill SA01" \
365-
-i "pandas.Series.first_valid_index SA01" \
366254
-i "pandas.Series.floordiv PR07" \
367255
-i "pandas.Series.ge PR07,SA01" \
368-
-i "pandas.Series.get SA01" \
369256
-i "pandas.Series.gt PR07,SA01" \
370257
-i "pandas.Series.hasnans SA01" \
371-
-i "pandas.Series.infer_objects RT03" \
372258
-i "pandas.Series.is_monotonic_decreasing SA01" \
373259
-i "pandas.Series.is_monotonic_increasing SA01" \
374260
-i "pandas.Series.is_unique SA01" \
375-
-i "pandas.Series.item SA01" \
376-
-i "pandas.Series.keys SA01" \
377261
-i "pandas.Series.kurt RT03,SA01" \
378262
-i "pandas.Series.kurtosis RT03,SA01" \
379-
-i "pandas.Series.last_valid_index SA01" \
380263
-i "pandas.Series.le PR07,SA01" \
381264
-i "pandas.Series.list.__getitem__ SA01" \
382265
-i "pandas.Series.list.flatten SA01" \
@@ -389,8 +272,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
389272
-i "pandas.Series.mod PR07" \
390273
-i "pandas.Series.mode SA01" \
391274
-i "pandas.Series.mul PR07" \
392-
-i "pandas.Series.nbytes SA01" \
393-
-i "pandas.Series.ndim SA01" \
394275
-i "pandas.Series.ne PR07,SA01" \
395276
-i "pandas.Series.nunique RT03" \
396277
-i "pandas.Series.pad PR01,SA01" \
@@ -410,7 +291,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
410291
-i "pandas.Series.rtruediv PR07" \
411292
-i "pandas.Series.sem PR01,RT03,SA01" \
412293
-i "pandas.Series.shape SA01" \
413-
-i "pandas.Series.size SA01" \
414294
-i "pandas.Series.skew RT03,SA01" \
415295
-i "pandas.Series.sparse PR01,SA01" \
416296
-i "pandas.Series.sparse.density SA01" \
@@ -456,7 +336,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
456336
-i "pandas.Series.swaplevel SA01" \
457337
-i "pandas.Series.to_dict SA01" \
458338
-i "pandas.Series.to_frame SA01" \
459-
-i "pandas.Series.to_list RT03" \
460339
-i "pandas.Series.to_markdown SA01" \
461340
-i "pandas.Series.to_string SA01" \
462341
-i "pandas.Series.truediv PR07" \
@@ -479,14 +358,10 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
479358
-i "pandas.Timedelta.total_seconds SA01" \
480359
-i "pandas.Timedelta.view SA01" \
481360
-i "pandas.TimedeltaIndex.as_unit RT03,SA01" \
482-
-i "pandas.TimedeltaIndex.ceil SA01" \
483361
-i "pandas.TimedeltaIndex.components SA01" \
484362
-i "pandas.TimedeltaIndex.days SA01" \
485-
-i "pandas.TimedeltaIndex.floor SA01" \
486-
-i "pandas.TimedeltaIndex.inferred_freq SA01" \
487363
-i "pandas.TimedeltaIndex.microseconds SA01" \
488364
-i "pandas.TimedeltaIndex.nanoseconds SA01" \
489-
-i "pandas.TimedeltaIndex.round SA01" \
490365
-i "pandas.TimedeltaIndex.seconds SA01" \
491366
-i "pandas.TimedeltaIndex.to_pytimedelta RT03,SA01" \
492367
-i "pandas.Timestamp PR07,SA01" \

doc/source/development/community.rst

+2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ The pandas mailing list `[email protected] <mailto://pandas-dev@python
100100
conversations and to engage people in the wider community who might not
101101
be active on the issue tracker but we would like to include in discussions.
102102

103+
Join the mailing list and view the archives `here <https://mail.python.org/mailman/listinfo/pandas-dev>`_.
104+
103105
.. _community.slack:
104106

105107
Community slack

doc/source/development/contributing_codebase.rst

+3-2
Original file line numberDiff line numberDiff line change
@@ -557,11 +557,12 @@ is being raised, using ``pytest.raises`` instead.
557557
Testing a warning
558558
^^^^^^^^^^^^^^^^^
559559

560-
Use ``tm.assert_produces_warning`` as a context manager to check that a block of code raises a warning.
560+
Use ``tm.assert_produces_warning`` as a context manager to check that a block of code raises a warning
561+
and specify the warning message using the ``match`` argument.
561562

562563
.. code-block:: python
563564
564-
with tm.assert_produces_warning(DeprecationWarning):
565+
with tm.assert_produces_warning(DeprecationWarning, match="the warning message"):
565566
pd.deprecated_function()
566567
567568
If a warning should specifically not happen in a block of code, pass ``False`` into the context manager.

0 commit comments

Comments
 (0)