Skip to content

Commit 1c06e34

Browse files
authored
DOC: Replace @doc decorator with inline docstrings for RangeIndex (pandas-dev#62874)
1 parent 44ceac2 commit 1c06e34

File tree

1 file changed

+108
-5
lines changed

1 file changed

+108
-5
lines changed

pandas/core/indexes/range.py

Lines changed: 108 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from pandas.compat.numpy import function as nv
2828
from pandas.util._decorators import (
2929
cache_readonly,
30-
doc,
3130
set_module,
3231
)
3332

@@ -473,8 +472,51 @@ def inferred_type(self) -> str:
473472
# --------------------------------------------------------------------
474473
# Indexing Methods
475474

476-
@doc(Index.get_loc)
477475
def get_loc(self, key) -> int:
476+
"""
477+
Get integer location for requested label.
478+
479+
Parameters
480+
----------
481+
key : int or float
482+
Label to locate. Integer-like floats (e.g. 3.0) are accepted and
483+
treated as the corresponding integer. Non-integer floats and other
484+
non-integer labels are not valid and will raise KeyError or
485+
InvalidIndexError.
486+
487+
Returns
488+
-------
489+
int
490+
Integer location of the label within the RangeIndex.
491+
492+
Raises
493+
------
494+
KeyError
495+
If the label is not present in the RangeIndex or the label is a
496+
non-integer value.
497+
InvalidIndexError
498+
If the label is of an invalid type for the RangeIndex.
499+
500+
See Also
501+
--------
502+
RangeIndex.get_slice_bound : Calculate slice bound that corresponds to
503+
given label.
504+
RangeIndex.get_indexer : Computes indexer and mask for new index given
505+
the current index.
506+
RangeIndex.get_non_unique : Returns indexer and masks for new index given
507+
the current index.
508+
RangeIndex.get_indexer_for : Returns an indexer even when non-unique.
509+
510+
Examples
511+
--------
512+
>>> idx = pd.RangeIndex(5)
513+
>>> idx.get_loc(3)
514+
3
515+
516+
>>> idx = pd.RangeIndex(2, 10, 2) # values [2, 4, 6, 8]
517+
>>> idx.get_loc(6)
518+
2
519+
"""
478520
if is_integer(key) or (is_float(key) and key.is_integer()):
479521
new_key = int(key)
480522
try:
@@ -528,12 +570,39 @@ def _should_fallback_to_positional(self) -> bool:
528570
def tolist(self) -> list[int]:
529571
return list(self._range)
530572

531-
@doc(Index.__iter__)
532573
def __iter__(self) -> Iterator[int]:
574+
"""
575+
Return an iterator of the values.
576+
577+
Returns
578+
-------
579+
iterator
580+
An iterator yielding ints from the RangeIndex.
581+
582+
Examples
583+
--------
584+
>>> idx = pd.RangeIndex(3)
585+
>>> for x in idx:
586+
... print(x)
587+
0
588+
1
589+
2
590+
"""
533591
yield from self._range
534592

535-
@doc(Index._shallow_copy)
536593
def _shallow_copy(self, values, name: Hashable = no_default):
594+
"""
595+
Create a new RangeIndex with the same class as the caller, don't copy the
596+
data, use the same object attributes with passed in attributes taking
597+
precedence.
598+
599+
*this is an internal non-public method*
600+
601+
Parameters
602+
----------
603+
values : the values to create the new RangeIndex, optional
604+
name : Label, defaults to self.name
605+
"""
537606
name = self._name if name is no_default else name
538607

539608
if values.dtype.kind == "f":
@@ -560,8 +629,42 @@ def _wrap_reindex_result(self, target, indexer, preserve_names: bool):
560629
target = self._shallow_copy(target._values, name=target.name)
561630
return super()._wrap_reindex_result(target, indexer, preserve_names)
562631

563-
@doc(Index.copy)
564632
def copy(self, name: Hashable | None = None, deep: bool = False) -> Self:
633+
"""
634+
Make a copy of this object.
635+
636+
Name is set on the new object.
637+
638+
Parameters
639+
----------
640+
name : Label, optional
641+
Set name for new object.
642+
deep : bool, default False
643+
If True attempts to make a deep copy of the RangeIndex.
644+
Else makes a shallow copy.
645+
646+
Returns
647+
-------
648+
RangeIndex
649+
RangeIndex refer to new object which is a copy of this object.
650+
651+
See Also
652+
--------
653+
RangeIndex.delete: Make new RangeIndex with passed location(-s) deleted.
654+
RangeIndex.drop: Make new RangeIndex with passed list of labels deleted.
655+
656+
Notes
657+
-----
658+
In most cases, there should be no functional difference from using
659+
``deep``, but if ``deep`` is passed it will attempt to deepcopy.
660+
661+
Examples
662+
--------
663+
>>> idx = pd.RangeIndex(3)
664+
>>> new_idx = idx.copy()
665+
>>> idx is new_idx
666+
False
667+
"""
565668
name = self._validate_names(name=name, deep=deep)[0]
566669
new_index = self._rename(name=name)
567670
return new_index

0 commit comments

Comments
 (0)