Skip to content

Commit 1102a33

Browse files
DOC/CLN: clean-up shared_docs in generic.py (#20074)
1 parent 9caf048 commit 1102a33

File tree

5 files changed

+44
-58
lines changed

5 files changed

+44
-58
lines changed

pandas/core/frame.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -3629,7 +3629,8 @@ def align(self, other, join='outer', axis=None, level=None, copy=True,
36293629
fill_axis=fill_axis,
36303630
broadcast_axis=broadcast_axis)
36313631

3632-
@Appender(_shared_docs['reindex'] % _shared_doc_kwargs)
3632+
@Substitution(**_shared_doc_kwargs)
3633+
@Appender(NDFrame.reindex.__doc__)
36333634
@rewrite_axis_style_signature('labels', [('method', None),
36343635
('copy', True),
36353636
('level', None),
@@ -4479,7 +4480,8 @@ def f(vals):
44794480
# ----------------------------------------------------------------------
44804481
# Sorting
44814482

4482-
@Appender(_shared_docs['sort_values'] % _shared_doc_kwargs)
4483+
@Substitution(**_shared_doc_kwargs)
4484+
@Appender(NDFrame.sort_values.__doc__)
44834485
def sort_values(self, by, axis=0, ascending=True, inplace=False,
44844486
kind='quicksort', na_position='last'):
44854487
inplace = validate_bool_kwarg(inplace, 'inplace')
@@ -4521,7 +4523,8 @@ def sort_values(self, by, axis=0, ascending=True, inplace=False,
45214523
else:
45224524
return self._constructor(new_data).__finalize__(self)
45234525

4524-
@Appender(_shared_docs['sort_index'] % _shared_doc_kwargs)
4526+
@Substitution(**_shared_doc_kwargs)
4527+
@Appender(NDFrame.sort_index.__doc__)
45254528
def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
45264529
kind='quicksort', na_position='last', sort_remaining=True,
45274530
by=None):

pandas/core/generic.py

+18-47
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,8 @@ def _set_axis(self, axis, labels):
643643
self._data.set_axis(axis, labels)
644644
self._clear_item_cache()
645645

646-
_shared_docs['transpose'] = """
646+
def transpose(self, *args, **kwargs):
647+
"""
647648
Permute the dimensions of the %(klass)s
648649
649650
Parameters
@@ -663,9 +664,6 @@ def _set_axis(self, axis, labels):
663664
y : same as input
664665
"""
665666

666-
@Appender(_shared_docs['transpose'] % _shared_doc_kwargs)
667-
def transpose(self, *args, **kwargs):
668-
669667
# construct the args
670668
axes, kwargs = self._construct_axes_from_arguments(args, kwargs,
671669
require_all=True)
@@ -965,23 +963,20 @@ def swaplevel(self, i=-2, j=-1, axis=0):
965963
# ----------------------------------------------------------------------
966964
# Rename
967965

968-
# TODO: define separate funcs for DataFrame, Series and Panel so you can
969-
# get completion on keyword arguments.
970-
_shared_docs['rename'] = """
966+
def rename(self, *args, **kwargs):
967+
"""
971968
Alter axes input function or functions. Function / dict values must be
972969
unique (1-to-1). Labels not contained in a dict / Series will be left
973970
as-is. Extra labels listed don't throw an error. Alternatively, change
974971
``Series.name`` with a scalar value (Series only).
975972
976973
Parameters
977974
----------
978-
%(optional_mapper)s
979975
%(axes)s : scalar, list-like, dict-like or function, optional
980976
Scalar or list-like will alter the ``Series.name`` attribute,
981977
and raise on DataFrame or Panel.
982978
dict-like or functions are transformations to apply to
983979
that axis' values
984-
%(optional_axis)s
985980
copy : boolean, default True
986981
Also copy underlying data
987982
inplace : boolean, default False
@@ -1069,12 +1064,6 @@ def swaplevel(self, i=-2, j=-1, axis=0):
10691064
10701065
See the :ref:`user guide <basics.rename>` for more.
10711066
"""
1072-
1073-
@Appender(_shared_docs['rename'] % dict(axes='axes keywords for this'
1074-
' object', klass='NDFrame',
1075-
optional_mapper='',
1076-
optional_axis=''))
1077-
def rename(self, *args, **kwargs):
10781067
axes, kwargs = self._construct_axes_from_arguments(args, kwargs)
10791068
copy = kwargs.pop('copy', True)
10801069
inplace = kwargs.pop('inplace', False)
@@ -1127,8 +1116,6 @@ def f(x):
11271116
else:
11281117
return result.__finalize__(self)
11291118

1130-
rename.__doc__ = _shared_docs['rename']
1131-
11321119
def rename_axis(self, mapper, axis=0, copy=True, inplace=False):
11331120
"""
11341121
Alter the name of the index or columns.
@@ -3024,7 +3011,8 @@ def __delitem__(self, key):
30243011
except KeyError:
30253012
pass
30263013

3027-
_shared_docs['_take'] = """
3014+
def _take(self, indices, axis=0, is_copy=True):
3015+
"""
30283016
Return the elements in the given *positional* indices along an axis.
30293017
30303018
This means that we are not indexing according to actual values in
@@ -3055,9 +3043,6 @@ def __delitem__(self, key):
30553043
numpy.ndarray.take
30563044
numpy.take
30573045
"""
3058-
3059-
@Appender(_shared_docs['_take'])
3060-
def _take(self, indices, axis=0, is_copy=True):
30613046
self._consolidate_inplace()
30623047

30633048
new_data = self._data.take(indices,
@@ -3072,7 +3057,8 @@ def _take(self, indices, axis=0, is_copy=True):
30723057

30733058
return result
30743059

3075-
_shared_docs['take'] = """
3060+
def take(self, indices, axis=0, convert=None, is_copy=True, **kwargs):
3061+
"""
30763062
Return the elements in the given *positional* indices along an axis.
30773063
30783064
This means that we are not indexing according to actual values in
@@ -3155,9 +3141,6 @@ class max_speed
31553141
1 monkey mammal NaN
31563142
3 lion mammal 80.5
31573143
"""
3158-
3159-
@Appender(_shared_docs['take'])
3160-
def take(self, indices, axis=0, convert=None, is_copy=True, **kwargs):
31613144
if convert is not None:
31623145
msg = ("The 'convert' parameter is deprecated "
31633146
"and will be removed in a future version.")
@@ -3580,7 +3563,9 @@ def add_suffix(self, suffix):
35803563
mapper = {self._info_axis_name: f}
35813564
return self.rename(**mapper)
35823565

3583-
_shared_docs['sort_values'] = """
3566+
def sort_values(self, by=None, axis=0, ascending=True, inplace=False,
3567+
kind='quicksort', na_position='last'):
3568+
"""
35843569
Sort by the values along either axis
35853570
35863571
Parameters
@@ -3665,17 +3650,12 @@ def add_suffix(self, suffix):
36653650
0 A 2 0
36663651
1 A 1 1
36673652
"""
3668-
3669-
def sort_values(self, by=None, axis=0, ascending=True, inplace=False,
3670-
kind='quicksort', na_position='last'):
3671-
"""
3672-
NOT IMPLEMENTED: do not call this method, as sorting values is not
3673-
supported for Panel objects and will raise an error.
3674-
"""
36753653
raise NotImplementedError("sort_values has not been implemented "
36763654
"on Panel or Panel4D objects.")
36773655

3678-
_shared_docs['sort_index'] = """
3656+
def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
3657+
kind='quicksort', na_position='last', sort_remaining=True):
3658+
"""
36793659
Sort object by labels (along an axis)
36803660
36813661
Parameters
@@ -3703,10 +3683,6 @@ def sort_values(self, by=None, axis=0, ascending=True, inplace=False,
37033683
-------
37043684
sorted_obj : %(klass)s
37053685
"""
3706-
3707-
@Appender(_shared_docs['sort_index'] % dict(axes="axes", klass="NDFrame"))
3708-
def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
3709-
kind='quicksort', na_position='last', sort_remaining=True):
37103686
inplace = validate_bool_kwarg(inplace, 'inplace')
37113687
axis = self._get_axis_number(axis)
37123688
axis_name = self._get_axis_name(axis)
@@ -3724,7 +3700,8 @@ def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
37243700
new_axis = labels.take(sort_index)
37253701
return self.reindex(**{axis_name: new_axis})
37263702

3727-
_shared_docs['reindex'] = """
3703+
def reindex(self, *args, **kwargs):
3704+
"""
37283705
Conform %(klass)s to new index with optional filling logic, placing
37293706
NA/NaN in locations having no value in the previous index. A new object
37303707
is produced unless the new index is equivalent to the current one and
@@ -3920,14 +3897,8 @@ def sort_index(self, axis=0, level=None, ascending=True, inplace=False,
39203897
-------
39213898
reindexed : %(klass)s
39223899
"""
3923-
3924-
# TODO: Decide if we care about having different examples for different
3925-
# kinds
3926-
3927-
@Appender(_shared_docs['reindex'] % dict(axes="axes", klass="NDFrame",
3928-
optional_labels="",
3929-
optional_axis=""))
3930-
def reindex(self, *args, **kwargs):
3900+
# TODO: Decide if we care about having different examples for different
3901+
# kinds
39313902

39323903
# construct the args
39333904
axes, kwargs = self._construct_axes_from_arguments(args, kwargs)

pandas/core/panel.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -1215,7 +1215,8 @@ def _wrap_result(self, result, axis):
12151215

12161216
return self._construct_return_type(result, axes)
12171217

1218-
@Appender(_shared_docs['reindex'] % _shared_doc_kwargs)
1218+
@Substitution(**_shared_doc_kwargs)
1219+
@Appender(NDFrame.reindex.__doc__)
12191220
def reindex(self, *args, **kwargs):
12201221
major = kwargs.pop("major", None)
12211222
minor = kwargs.pop('minor', None)
@@ -1236,7 +1237,8 @@ def reindex(self, *args, **kwargs):
12361237
kwargs.pop('labels', None)
12371238
return super(Panel, self).reindex(**kwargs)
12381239

1239-
@Appender(_shared_docs['rename'] % _shared_doc_kwargs)
1240+
@Substitution(**_shared_doc_kwargs)
1241+
@Appender(NDFrame.rename.__doc__)
12401242
def rename(self, items=None, major_axis=None, minor_axis=None, **kwargs):
12411243
major_axis = (major_axis if major_axis is not None else
12421244
kwargs.pop('major', None))
@@ -1253,7 +1255,8 @@ def reindex_axis(self, labels, axis=0, method=None, level=None, copy=True,
12531255
copy=copy, limit=limit,
12541256
fill_value=fill_value)
12551257

1256-
@Appender(_shared_docs['transpose'] % _shared_doc_kwargs)
1258+
@Substitution(**_shared_doc_kwargs)
1259+
@Appender(NDFrame.transpose.__doc__)
12571260
def transpose(self, *args, **kwargs):
12581261
# check if a list of axes was passed in instead as a
12591262
# single *args element
@@ -1536,6 +1539,13 @@ def _extract_axis(self, data, axis=0, intersect=False):
15361539

15371540
return ensure_index(index)
15381541

1542+
def sort_values(self, *args, **kwargs):
1543+
"""
1544+
NOT IMPLEMENTED: do not call this method, as sorting values is not
1545+
supported for Panel objects and will raise an error.
1546+
"""
1547+
super(Panel, self).sort_values(*args, **kwargs)
1548+
15391549

15401550
Panel._setup_axes(axes=['items', 'major_axis', 'minor_axis'], info_axis=0,
15411551
stat_axis=1, aliases={'major': 'major_axis',

pandas/core/series.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -3496,7 +3496,8 @@ def rename(self, index=None, **kwargs):
34963496
return self._set_name(index, inplace=kwargs.get('inplace'))
34973497
return super(Series, self).rename(index=index, **kwargs)
34983498

3499-
@Appender(generic._shared_docs['reindex'] % _shared_doc_kwargs)
3499+
@Substitution(**_shared_doc_kwargs)
3500+
@Appender(generic.NDFrame.reindex.__doc__)
35003501
def reindex(self, index=None, **kwargs):
35013502
return super(Series, self).reindex(index=index, **kwargs)
35023503

@@ -3680,7 +3681,7 @@ def memory_usage(self, index=True, deep=False):
36803681
v += self.index.memory_usage(deep=deep)
36813682
return v
36823683

3683-
@Appender(generic._shared_docs['_take'])
3684+
@Appender(generic.NDFrame._take.__doc__)
36843685
def _take(self, indices, axis=0, is_copy=False):
36853686

36863687
indices = ensure_platform_int(indices)

pandas/core/sparse/series.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import pandas.core.indexes.base as ibase
2020
import pandas.core.ops as ops
2121
import pandas._libs.index as libindex
22-
from pandas.util._decorators import Appender
22+
from pandas.util._decorators import Appender, Substitution
2323

2424
from pandas.core.sparse.array import (
2525
make_sparse, SparseArray,
@@ -563,7 +563,8 @@ def copy(self, deep=True):
563563
return self._constructor(new_data, sparse_index=self.sp_index,
564564
fill_value=self.fill_value).__finalize__(self)
565565

566-
@Appender(generic._shared_docs['reindex'] % _shared_doc_kwargs)
566+
@Substitution(**_shared_doc_kwargs)
567+
@Appender(generic.NDFrame.reindex.__doc__)
567568
def reindex(self, index=None, method=None, copy=True, limit=None,
568569
**kwargs):
569570

@@ -592,7 +593,7 @@ def sparse_reindex(self, new_index):
592593
sparse_index=new_index,
593594
fill_value=self.fill_value).__finalize__(self)
594595

595-
@Appender(generic._shared_docs['take'])
596+
@Appender(generic.NDFrame.take.__doc__)
596597
def take(self, indices, axis=0, convert=None, *args, **kwargs):
597598
if convert is not None:
598599
msg = ("The 'convert' parameter is deprecated "

0 commit comments

Comments
 (0)