1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
U
¬ý°dnŽã@sRddlmZddlmZddlZddlmZddlmZm    Z    m
Z
m Z m Z m Z ddlZddlmZmZddlmZddlmZdd    lmZmZdd
lmZdd lmZm Z dd l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*ddl+m,Z,ddl-m.m/Z0ddl1m2Z2ddl3m.m4m5Z6ddl3m7Z7m8Z8ddl9m:Z:e;dƒZ<Gdd„de7ƒZ=dS)é)Ú annotations)Ú    timedeltaN)Ú    getsizeof)ÚAnyÚCallableÚHashableÚIteratorÚListÚcast)ÚindexÚlib)Ú unique_deltas)Ú
no_default)ÚDtypeÚnpt)Úfunction)Úcache_readonlyÚdoc)Úensure_platform_intÚensure_python_intÚis_floatÚ
is_integerÚ    is_scalarÚis_signed_integer_dtypeÚis_timedelta64_dtype)ÚABCTimedeltaIndex)Úops)Ú extract_array)ÚIndexÚmaybe_extract_name)Úunpack_zerodim_and_defercs&eZdZUdZdZedfZded<ded<edd    œd
d „ƒZ    d¯dddddœdd„Z
e d°ddddœdd„ƒZ e d±ddddœdd„ƒZ e dddœdd„ƒZedd    œdd „ƒZedd    œd!d"„ƒZd#d$„Zd%d&„Zd'd(„Zd²d)d*„Zd+d,d+d-œd.d/„Zed0d    œd1d2„ƒZed0d    œd3d4„ƒZed0d    œd5d6„ƒZed0d    œd7d8„ƒZd³dd0d9œd:d;„Zed<d    œd=d>„ƒZedd    œd?d@„ƒZedd    œdAdB„ƒZedd    œdCdD„ƒZdEddFœdGdH„Z ed,d    œdIdJ„ƒZ!e"e#j$ƒdKdL„ƒZ$d´dMdNdOdPdQœ‡fdRdS„ Z%edd    œdTdU„ƒZ&dVd    œdWdX„Z'e"e#j(ƒdYd    œdZd[„ƒZ(e"e#j)ƒe*fdd\œd]d^„ƒZ)ddd_œd`da„Z+e"e#j,ƒdµdddbœdcdd„ƒZ,d,deœdfdg„Z-d¶dd0diœdjdk„Z.d·dd0diœdldm„Z/dPd    œdndo„Z0d¸dddpdqœdrds„Z1dtdduœ‡fdvdw„ Z2d¹ddd,dydzœ‡fd{d|„ Z3dºdMdd}œ‡fd~d„ Z4d0d0d€œdd‚„Z5d0d0dƒd„œd…d†„Z6ddduœd‡dˆ„Z7dMd‰œ‡fdŠd‹„ Z8d»‡fdŒd„    Z9d¼ddŽœ‡fdd„ Z:dMd    œ‡fd‘d’„ Z;d0dMd“œ‡fd”d•„ Z<d–ddMd—œ‡fd˜d™„ Z=d0d    œdšd›„Z>ed0d    œdœd„ƒZ?‡fdždŸ„Z@dd dd¡œd¢d£„ZAeBd¤ƒ‡fd¥d¦„ƒZCdd    œd§d¨„ZDdd    œd©dª„ZE‡fd«d¬„ZF‡fd­d®„ZG‡ZHS)½Ú
RangeIndexaø
    Immutable Index implementing a monotonic integer range.
 
    RangeIndex is a memory-saving special case of an Index limited to representing
    monotonic ranges with a 64-bit dtype. Using RangeIndex may in some instances
    improve computing speed.
 
    This is the default index type used
    by DataFrame and Series when no explicit index is provided by the user.
 
    Parameters
    ----------
    start : int (default: 0), range, or other RangeIndex instance
        If int and "stop" is not given, interpreted as "stop" instead.
    stop : int (default: 0)
    step : int (default: 1)
    dtype : np.int64
        Unused, accepted for homogeneity with other index types.
    copy : bool, default False
        Unused, accepted for homogeneity with other index types.
    name : object, optional
        Name to be stored in the index.
 
    Attributes
    ----------
    start
    stop
    step
 
    Methods
    -------
    from_range
 
    See Also
    --------
    Index : The base pandas Index type.
    Z
rangeindexzsigned integerÚrangeÚ_rangez
np.ndarrayÚ_valuesztype[libindex.Int64Engine])ÚreturncCstjS©N)ÚlibindexZ Int64Engine©Úself©r*úPd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/indexes/range.pyÚ _engine_typeeszRangeIndex._engine_typeNFz Dtype | NoneÚboolr)ÚdtypeÚcopyÚnamer%cCsÈ| |¡t|||ƒ}t|tƒr,|j|dSt|tƒrD|j||dSt |||¡rZt    dƒ‚|dk    rjt
|ƒnd}|dkr‚d|}}nt
|ƒ}|dk    ršt
|ƒnd}|dkr®t dƒ‚t|||ƒ}|j||dS)N©r0z,RangeIndex(...) must be called with integersrézStep must not be zero) Ú_validate_dtyperÚ
isinstancer!r/r"Ú _simple_newÚcomZall_noneÚ    TypeErrorrÚ
ValueError)ÚclsÚstartÚstopÚstepr.r/r0Úrngr*r*r+Ú__new__ls"    
 
 
  zRangeIndex.__new__)Údatar.r%cCs<t|tƒs$t|j›dt|ƒ›dƒ‚| |¡|j||dS)zl
        Create RangeIndex from a range object.
 
        Returns
        -------
        RangeIndex
        z7(...) must be called with object coercible to a range, z  was passedr1)r4r"r7Ú__name__Úreprr3r5)r9r?r0r.r*r*r+Ú
from_ranges
ÿ
zRangeIndex.from_range)Úvaluesr0r%cCs<t |¡}t|tƒst‚||_||_i|_| ¡d|_    |Sr&)
Úobjectr>r4r"ÚAssertionErrorr#Ú_nameÚ_cacheZ_reset_identityZ _references)r9rCr0Úresultr*r*r+r5¦s
zRangeIndex._simple_newÚNone)r.r%cCs6|dkr dS|j\}}||ƒs2td|›d|›ƒ‚dS)Nz#Incorrect `dtype` passed: expected z , received )Ú_dtype_validation_metadatar8)r9r.Zvalidation_funcÚexpectedr*r*r+r3µs
ÿzRangeIndex._validate_dtypez type[Index]cCstS)z(return the class to use for construction)rr(r*r*r+Ú _constructorÄszRangeIndex._constructorcCstj|j|j|jtjdS)z
        An int array that for performance reasons is created only when needed.
 
        The constructed array is saved in ``_cache``.
        ©r.)ÚnpÚaranger:r;r<Úint64r(r*r*r+Ú_dataÊszRangeIndex._datacCs"|j}d|jfd|jfd|jfgS)z,return a list of tuples of start, stop, stepr:r;r<)r#r:r;r<)r)r=r*r*r+Ú_get_data_as_itemsÓszRangeIndex._get_data_as_itemscCs0d|ji}| t| ¡ƒ¡tjt|ƒ|fdfS)Nr0)r0ÚupdateÚdictrRÚibaseZ
_new_IndexÚtype)r)Údr*r*r+Ú
__reduce__Øs
zRangeIndex.__reduce__cCs,| ¡}|jdk    r(| dt |j¡f¡|S)zH
        Return a list of tuples of the (attr, formatted_value)
        Nr0)rRr0ÚappendrUZdefault_pprint)r)Úattrsr*r*r+Ú _format_attrsàs
zRangeIndex._format_attrscCsdSr&r*)r)r0r*r*r+Ú _format_dataészRangeIndex._format_dataz    list[str]Ústr)ÚheaderÚna_repr%csTt|jƒs|St|jdƒ}t|jdƒ}tt|ƒt|ƒƒ‰|‡fdd„|jDƒS)Nréÿÿÿÿcsg|]}|dˆ››‘qS)ú<r*©Ú.0Úx©Ú
max_lengthr*r+Ú
<listcomp>õsz2RangeIndex._format_with_header.<locals>.<listcomp>)Úlenr#r]Úmax)r)r^r_Z first_val_strZ last_val_strr*rer+Ú_format_with_headerís 
zRangeIndex._format_with_headerÚintcCs|jjS)zV
        The value of the `start` parameter (``0`` if this was not supplied).
        )r#r:r(r*r*r+r:ùszRangeIndex.startcCs|jjS)z4
        The value of the `stop` parameter.
        )r#r;r(r*r*r+r;szRangeIndex.stopcCs|jjS)zU
        The value of the `step` parameter (``1`` if this was not supplied).
        )r#r<r(r*r*r+r<szRangeIndex.stepcs$|j‰tˆƒt‡fdd„dDƒƒS)zD
        Return the number of bytes in the underlying data.
        c3s|]}ttˆ|ƒƒVqdSr&)rÚgetattr)rcÚ    attr_name©r=r*r+Ú    <genexpr>sÿz$RangeIndex.nbytes.<locals>.<genexpr>)r:r;r<)r#rÚsumr(r*rnr+ÚnbytessþzRangeIndex.nbytes)Údeepr%cCs|jS)aè
        Memory usage of my values
 
        Parameters
        ----------
        deep : bool
            Introspect the data deeply, interrogate
            `object` dtypes for system-level memory consumption
 
        Returns
        -------
        bytes used
 
        Notes
        -----
        Memory usage does not include memory consumed by elements that
        are not components of the array if deep=False
 
        See Also
        --------
        numpy.ndarray.nbytes
        )rq)r)rrr*r*r+Ú memory_usageszRangeIndex.memory_usageznp.dtypecCs t tj¡Sr&)rNr.rPr(r*r*r+r.4szRangeIndex.dtypecCsdS)z%return if the index has unique valuesTr*r(r*r*r+Ú    is_unique8szRangeIndex.is_uniquecCs|jjdkpt|ƒdkS©Nrr2©r#r<rhr(r*r*r+Úis_monotonic_increasing=sz"RangeIndex.is_monotonic_increasingcCs|jjdkpt|ƒdkSrurvr(r*r*r+Úis_monotonic_decreasingAsz"RangeIndex.is_monotonic_decreasingr)Úkeyr%cCs6t|ƒz t|ƒ}Wntk
r*YdSX||jkS)NF)Úhashrr7r#)r)ryr*r*r+Ú __contains__Es  zRangeIndex.__contains__cCsdS)NÚintegerr*r(r*r*r+Ú inferred_typeMszRangeIndex.inferred_typec
Cs„t|ƒst|ƒr\| ¡r\t|ƒ}z|j |¡WStk
rZ}zt|ƒ|‚W5d}~XYnXt|tƒrnt|ƒ‚|     |¡t|ƒ‚dSr&)
rrrkr#r r8ÚKeyErrorr4rZ_check_indexing_error)r)ryÚnew_keyÚerrr*r*r+Úget_locTs
 
zRangeIndex.get_locrz
str | Nonez
int | Noneznpt.NDArray[np.intp])ÚtargetÚmethodÚlimitr%c sÜt |||¡r"tƒj||||dS|jdkrD|j|j|j}}}n&|jddd…}|j|j|j}}}t     |¡}    |    |}
|
|dk|
dk@|    |k@} d|
| <|
| ||
| <||jkrÔt
|ƒd|
| |
| <t |
ƒS)N)rƒÚ    tolerancer„rr`r2) r6Z any_not_noneÚsuperÚ _get_indexerr<r:r;r#rNÚasarrayrhr) r)r‚rƒr„r…r:r;r<ÚreverseZ target_arrayZlocsZvalid©Ú    __class__r*r+r‡as&ÿ
 
 
 
zRangeIndex._get_indexercCsdS)zA
        Should an integer key be treated as positional?
        Fr*r(r*r*r+Ú_should_fallback_to_positionalsz)RangeIndex._should_fallback_to_positionalz    list[int]cCs
t|jƒSr&)Úlistr#r(r*r*r+ÚtolistˆszRangeIndex.tolistz Iterator[int]ccs|jEdHdSr&©r#r(r*r*r+Ú__iter__‹szRangeIndex.__iter__r1cCs”|tkr|jn|}|jjdkr.t||tjdSt|ƒ}t|ƒdkr€|ddkr€|d}t    |d|d||ƒ}t
|ƒj ||dS|j j ||dSdS)NÚf)r0r.r2rr`r1) rr0r.ÚkindrrNÚfloat64r rhr"rVr5rL)r)rCr0Z unique_diffsZdiffÚ    new_ranger*r*r+Ú _shallow_copys zRangeIndex._shallow_copy)r)r%cCs"t|ƒj|j|jd}|j|_|S)Nr1)rVr5r#rFrG)r)rHr*r*r+Ú_viewŸszRangeIndex._view©r0rrcCs"|j||dd}|j|d}|S)Nr—rr1)Z_validate_namesZ_rename)r)r0rrÚ    new_indexr*r*r+r/¤s zRangeIndex.copy)ÚmethcCsTt|ƒd}|dkrtjS|dkr,|jdks>|dkrD|jdkrD|jS|j|j|S)Nr2r`Úminrri)rhrNÚnanr<r:)r)r™Úno_stepsr*r*r+Ú_minmaxªs  $zRangeIndex._minmaxT)Úskipnar%cOs t |¡t ||¡| d¡S)z#The minimum value of the RangeIndexrš)ÚnvÚvalidate_minmax_axisZ validate_minr©r)ZaxisržÚargsÚkwargsr*r*r+rš³s
 zRangeIndex.mincOs t |¡t ||¡| d¡S)z#The maximum value of the RangeIndexri)rŸr Z validate_maxrr¡r*r*r+ri¹s
 zRangeIndex.maxcOsx| dd¡}| dd¡t ||¡|jjdkrFtjt|ƒtjd}ntjt|ƒdddtjd}|st|ddd…}|S)    zÞ
        Returns the indices that would sort the index and its
        underlying data.
 
        Returns
        -------
        np.ndarray[np.intp]
 
        See Also
        --------
        numpy.ndarray.argsort
        Ú    ascendingTr’NrrMr2r`)    ÚpoprŸZvalidate_argsortr#r<rNrOrhÚintp)r)r¢r£r¤rHr*r*r+Úargsort¿s    zRangeIndex.argsortz'tuple[npt.NDArray[np.intp], RangeIndex])ÚsortÚuse_na_sentinelr%cCsJtjt|ƒtjd}|}|rB|jdkrB|ddd…}|ddd…}||fS)NrMrr`)rNrOrhr¦r<)r)r¨r©ÚcodesZuniquesr*r*r+Ú    factorizeÙs zRangeIndex.factorizerD)Úotherr%cs"t|tƒr|j|jkStƒ |¡S)zL
        Determines if two Index objects contain the same elements.
        )r4r!r#r†Úequals©r)r¬rŠr*r+r­ås
 zRangeIndex.equalsÚlastzCallable | None©Úreturn_indexerr¤Ú na_positionrycs |dk    rtƒj||||dS|}d}|rF|jdkrb|ddd…}d}n|jdkrb|ddd…}d}|r˜|r€tt|ƒdddƒ}n tt|ƒƒ}|t|ƒfS|SdS)Nr°Frr`Tr2)r†Ú sort_valuesr<r"rhr!)r)r±r¤r²ryZ sorted_indexZinverse_indexerr=rŠr*r+r³ís,ü
 
  zRangeIndex.sort_values)r¬r¨csht|tƒstƒj||dS|jdkr4|jddd…n|j}|jdkrT|jddd…n|j}t|j|jƒ}t|j    |j    ƒ}||krˆ| 
t ¡S|  |j|j¡\}}}    |j|j|r¸| 
t ¡S|j|j|j|j||}
|j|j|} t |
|| ƒ} | 
| ¡} |  |¡}t || j    | jƒ} | 
| ¡} |jdko6|jdk| jdkk    rR| ddd…} |dkrd|  ¡} | S)N©r¨rr`)r4r!r†Ú _intersectionr<r#rir:ršr;r5Ú _empty_rangeÚ _extended_gcdr"Ú_min_fitting_elementr³)r)r¬r¨ÚfirstÚsecondZint_lowZint_highÚgcdÚsÚ_Z    tmp_startZnew_stepr”r˜Z    new_startrŠr*r+rµs.
  
 
  
 
 
"
zRangeIndex._intersection)Ú lower_limitr%cCs,||j t|jƒ }|jt|jƒ|S)z?Returns the smallest element greater than or equal to the limit)r:Úabsr<)r)r¾rœr*r*r+r¸AszRangeIndex._min_fitting_elementztuple[int, int, int])ÚaÚbr%c
Cshd\}}d\}}||}}|r^||}    |||    |}}|||    |}}|||    |}}q|||fS)z¼
        Extended Euclidean algorithms to solve Bezout's identity:
           a*x + b*y = gcd(x, y)
        Finds one particular solution for x, y: s, t
        Returns: gcd, s, t
        )rr2)r2rr*)
r)rÀrÁr¼Zold_sÚtZold_tÚrZold_rZquotientr*r*r+r·Fs
zRangeIndex._extended_gcdcCsJ|sdS|jsdSt|ƒdkr0|j|jjr0dS|j|jkoH|d|jkS)z)Check if other range is contained in selfTFr2r`)r#rhr<r:r®r*r*r+Ú_range_in_selfWszRangeIndex._range_in_self)r¬c szt|tƒrj|dks8|dkrj|jdkrj| |j¡rj|j|j}}|j|jt|ƒd}|j|j}}|j|jt|ƒd}|jdkr || |}}}|jdkr¼|| |}}}t|ƒdkrêt|ƒdkrêt|j|jƒ}}n&t|ƒdkrþ|}nt|ƒdkr|}t||ƒ}    t    ||ƒ}
||krÈ|||dkrp|||krp|||krpt
|ƒ|    |
||ƒS|ddkrjt||ƒ|dkrjt||ƒ|dkrjt
|ƒ|    |
|d|dƒSn¢||dkr|||dkrj|||krj|||krjt
|ƒ|    |
||ƒSnP||dkrj|||dkrj|||krj|||krjt
|ƒ|    |
||ƒSt ƒj ||dS)a˜
        Form the union of two Index objects and sorts if possible
 
        Parameters
        ----------
        other : Index or array-like
 
        sort : False or None, default None
            Whether to sort (monotonically increasing) the resulting index.
            ``sort=None`` returns a ``RangeIndex`` if possible or a sorted
            ``Index`` with a int64 dtype if not.
            ``sort=False`` can return a ``RangeIndex`` if self is monotonically
            increasing and other is fully contained in self. Otherwise, returns
            an unsorted ``Index`` with an int64 dtype.
 
        Returns
        -------
        union : Index
        NFrr2ér´) r4r!r<rÄr#r:rhr¿ršrirVr†Ú_union) r)r¬r¨Zstart_sZstep_sZend_sZstart_oZstep_oZend_oZstart_rZend_rrŠr*r+rÆbsp ÿÿ
ÿ
 
 
 
 
ÿ
þ
ý
ÿþýÿ
þ
ýÿ
þ
ýzRangeIndex._unionc
sD| |¡| |¡| |¡\}}t|tƒs<tƒj||dS|dk    rb|jdkrb|ddd… |¡St     ||¡}|jdkrˆ|j
ddd…n|j
}|  |¡}|jdkr°|ddd…}t |ƒdkrÈ|j |dSt |ƒt |ƒkrê|dd…  |¡St |ƒdkrt|d|dkr|dd…S|d|dkr4|dd…St |ƒdkrb|d|dkrb|ddd…Stƒj||dSn>t |ƒdkr²|d|dkr²|d|dkr²|dd…S|j|jkrV|d|jkrìt|d|j|j|jƒ}nh|d|dkrt|j|d|jƒ}n@|j
|dd…krDt |ƒd}|dd|…}ntƒj||dSn¾t |ƒdksht‚|j|jdkr|d|dkr¶|d|d|d    fkr¶|ddd…}nL|d|dkrò|d|d|d    fkrò|ddd…}ntƒj||dSntƒj||dSt|ƒj||d}    ||j
k    r@|    ddd…}    |    S)
Nr´Frr`r1r2érÅéþÿÿÿ)Z_validate_sort_keywordZ_assert_can_do_setopZ_convert_can_do_setopr4r!r†Ú _differencer<rÚget_op_result_namer#Ú intersectionrhÚrenamer:r"r;rErVr5)
r)r¬r¨Ú result_nameÚres_namer¹ÚoverlapÚnew_rngr<r˜rŠr*r+rÉ­s^
 
 
  
 
     2  ,, zRangeIndex._difference)rÍcsVt|tƒr|dk    r"tƒ |||¡S| |¡}| |¡}| |¡}|dk    rR| |¡}|Sr&)r4r!r†Úsymmetric_differenceÚ
differenceÚunionrÌ)r)r¬rÍr¨ÚleftÚrightrHrŠr*r+rÑs
 
 
 
zRangeIndex.symmetric_differencecs¼t|ƒrj|dt|ƒ fkr&|dd…S|dt|ƒdfkrF|dd…St|ƒdkr°|dkr°|ddd…SnFt |¡r°t tj|tjdt|ƒ¡}t|t    ƒr°||}|j
|dd    St ƒ  |¡S)
Nrr2r`rÇ)r2rÈrÅrMFr´) rrhr Z is_list_likeZmaybe_indices_to_slicerNrˆr¦r4ÚslicerÒr†Údelete)r)ÚlocZslcr¬rŠr*r+r×s  
 
zRangeIndex.delete)rØr%cst|ƒr
t|ƒst|ƒr
|j}|dkrh||d|jkrht|j|j|j|jƒ}t|ƒj    ||j
dS|t|ƒkr²||d|jkr²t|j|j|j|jƒ}t|ƒj    ||j
dSt|ƒdkr
||d|jdkr
t |jdƒ}t|j|j|ƒ}t|ƒj    ||j
dSt ƒ  ||¡S)Nrr1r`rÅ)rhrrr#r<r"r:r;rVr5r0rkr†Úinsert)r)rØÚitemr=rÐr<rŠr*r+rÙ*s&zRangeIndex.insertz list[Index])Úindexesr0r%csŒtdd„|Dƒƒs tƒ ||¡St|ƒdkr4|dSttt|ƒ}d}}}dd„|Dƒ}|D]ê}|j}    |dkr”|    j}|dkrÜt|    ƒdkrÜ|    j    }nH|dkrÜ|    j|krÒt
  dd„|Dƒ¡}
|  |
¡} |   |¡S|    j|}||    j    krôt|    ƒdkp|dk    o|    j|k} | r6|  t
  d    d„|Dƒ¡¡} |   |¡S|dk    r`|    d
|}q`|r||dkrf|d
jn|} t|| |ƒ  |¡Stddƒ  |¡S) aŠ
        Overriding parent method for the case of all RangeIndex instances.
 
        When all members of "indexes" are of type RangeIndex: result will be
        RangeIndex if possible, Index with a int64 dtype otherwise. E.g.:
        indexes = [RangeIndex(3), RangeIndex(3, 6)] -> RangeIndex(6)
        indexes = [RangeIndex(3), RangeIndex(4, 6)] -> Index([0,1,2,4,5], dtype='int64')
        css|]}t|tƒVqdSr&)r4r!rbr*r*r+roHsz%RangeIndex._concat.<locals>.<genexpr>r2rNcSsg|]}t|ƒr|‘qSr*©rh)rcÚobjr*r*r+rgSsz&RangeIndex._concat.<locals>.<listcomp>cSsg|]
}|j‘qSr*©r$rbr*r*r+rg`scSsg|]
}|j‘qSr*rÞrbr*r*r+rgksr`)Úallr†Ú_concatrhr
r    r!r#r:r<rNZ concatenaterLrÌr;)r)rÛr0Z rng_indexesr:r<Znext_Znon_empty_indexesrÝr=rCrHZnon_consecutiver;rŠr*r+rà?sB      
 
 
ÿÿzRangeIndex._concatcCs
t|jƒS)z5
        return the length of the RangeIndex
        )rhr#r(r*r*r+Ú__len__|szRangeIndex.__len__cCst|ƒSr&rÜr(r*r*r+Úsize‚szRangeIndex.sizec
sœt|tƒr$|j|}|j||jdSt|ƒr€t|ƒ}z |j|WStk
r|}ztd|›dt|ƒ›ƒ|‚W5d}~XYqXnt    |ƒrtdƒ‚t
ƒ  |¡S)zE
        Conserve RangeIndex type for scalar and slice keys.
        r1zindex z' is out of bounds for axis 0 with size Nzuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices) r4rÖr#r5rFrrkÚ
IndexErrorrhrr†Ú __getitem__)r)ryr”rr€rŠr*r+rä†s$
 
 ÿþÿzRangeIndex.__getitem__rÖ)r)Úslobjr%cCs|j|}t|ƒj||jdS)zH
        Fastpath for __getitem__ when we know we have a slice.
        r1)r#rVr5rF)r)råÚresr*r*r+Ú_getitem_slicežs
zRangeIndex._getitem_sliceÚ __floordiv__cs¾t|ƒr²|dkr²t|ƒdks8|j|dkr||j|dkr||j|}|j|}|t|ƒ|}t|||phdƒ}|j||jdSt|ƒdkr²|j|}t||ddƒ}|j||jdStƒ |¡S)Nrr2r1)    rrhr:r<r"r5r0r†rè)r)r¬r:r<r;r”rŠr*r+rè¥s(
 
 
zRangeIndex.__floordiv__cOs
d|jkS)Nrr©r)r¢r£r*r*r+r߸szRangeIndex.allcOs
t|jƒSr&)Úanyr#rér*r*r+rê»szRangeIndex.anycs2t|tƒr$|j|jkr$tƒ ||¡Stƒ ||¡Sr&)r4r!r#r†Ú _cmp_method)r)r¬ÚoprŠr*r+rëÀszRangeIndex._cmp_methodc
s’t|tƒrtSt|ttjfƒr,tƒ ||¡St|ƒrBtƒ ||¡S|t    j
t j t    j t jt    jt jtt jfkrvtƒ ||¡Sd}|t    jt jt    jt jfkr–|}t|ddd}|}zº|rätjdd||j|ƒ}W5QRXt|ƒrÞ|sêt‚n|j}tjdd||j|ƒ}||j|ƒ}W5QRXt  ||¡}    t|ƒ||||    d}
t dd„|||fDƒƒs^|
 !d    ¡}
|
WStt"t#fk
rŒtƒ ||¡YSXdS)
        Parameters
        ----------
        other : Any
        op : callable that accepts 2 params
            perform the binary op
        NT)Z extract_numpyZ extract_rangeÚignore)rßr1css|]}t|ƒVqdSr&)rrbr*r*r+rosz+RangeIndex._arith_method.<locals>.<genexpr>r“)$r4rÚNotImplementedrrNZ timedelta64r†Ú _arith_methodrÚoperatorÚpowrZrpowÚmodZrmodÚfloordivZ    rfloordivÚdivmodZrdivmodÚmulZrmulÚtruedivZrtruedivrZerrstater<rr8r:r;rÊrVrßZastyper7ÚZeroDivisionError) r)r¬rìr<rÕrÔZrstepZrstartZrstoprÎrHrŠr*r+rïÆsN    
ø
 
zRangeIndex._arith_method)NNNNFN)NN)N)N)F)NNN)NF)NT)NT)FT)FTr¯N)F)N)NN)Ir@Ú
__module__Ú __qualname__Ú__doc__Z_typrrJÚ__annotations__Úpropertyr,r>Ú classmethodrBr5r3rrLrQrRrXr[r\rjr:r;r<rqrsr.rtrwrxr{r}rrrr‡rŒrŽrr•rr–r/rršrir§r«r­r³rµr¸r·rÄrÆrÉrÑr×rÙràrárârärçr rèrßrêrërïÚ __classcell__r*r*rŠr+r!9sÌ
&ù$ÿÿ    
 
 
û    ý 
û&. KW=  r!)>Ú
__future__rÚdatetimerrðÚsysrÚtypingrrrrr    r
ÚnumpyrNZ pandas._libsr r'r Zpandas._libs.algosr Zpandas._libs.librZpandas._typingrrZpandas.compat.numpyrrŸZpandas.util._decoratorsrrZpandas.core.dtypes.commonrrrrrrrZpandas.core.dtypes.genericrZ pandas.corerZpandas.core.commonÚcoreÚcommonr6Zpandas.core.constructionrZpandas.core.indexes.baserÛÚbaserUrrZpandas.core.ops.commonr r"r¶r!r*r*r*r+Ú<module>s*           $