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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
U
¬ý°d÷Œã@sddlmZddlmZddlZddlmZmZmZddl    Z    ddl
Z ddl m Z mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZddlm Z m!Z!dd    l"m#Z#m$Z$m%Z%m&Z&m'Z'dd
l(m)Z)m*Z*m+Z+m,Z,m-Z-dd l.m/Z0dd l1m2Z2dd l3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=ddl>m?Z?ddl@mAZAddlBmCZCddlDmEZFddlGmHZHddlImJmKZLddlMmNZNddlOmPZPer¤ddlQmRZRddddœdd„ZSGdd„deFjTƒZUd/ddd d!œd"d#„ZVd0dd%œd&d'„ZWd1dd(œd)d*„ZXd+d,œd-d.„ZYdS)2é)Ú annotations)Ú    timedeltaN)Ú TYPE_CHECKINGÚIteratorÚcast)ÚlibÚtslibs) Ú
BaseOffsetÚNaTÚNaTTypeÚTickÚ    TimedeltaÚastype_overflowsafeÚget_supported_resoÚget_unit_from_dtypeÚiNaTÚis_supported_unitÚnpy_unit_to_abbrevÚperiods_per_secondÚ    to_offset)Úprecision_from_unit)Úget_timedelta_daysÚget_timedelta_field)Úarray_to_timedelta64Úfloordiv_object_arrayÚints_to_pytimedeltaÚparse_timedelta_unitÚtruediv_object_array)ÚAxisIntÚDateTimeErrorChoicesÚDtypeObjÚNpDtypeÚnpt)Úfunction)Úvalidate_endpoints)
Ú TD64NS_DTYPEÚis_dtype_equalÚis_extension_array_dtypeÚis_float_dtypeÚis_integer_dtypeÚis_object_dtypeÚ    is_scalarÚis_string_dtypeÚis_timedelta64_dtypeÚ pandas_dtype)Úisna)Únanops)Údatetimelike_accumulations)Ú datetimelike)Úgenerate_regular_range)Ú    roperator)Úunpack_zerodim_and_defer©Ú    DataFrameÚstr)ÚnameÚaliasÚ    docstringcs.ddœ‡fdd„ }||_d|›d|_t|ƒS)Nú
np.ndarray©ÚreturncsH|j}ˆdkrt||jd}nt|ˆ|jd}|jrD|j|ddd}|S)NÚdays©ZresoÚfloat64)Ú
fill_valueÚconvert)Úasi8rÚ_cresorÚ_hasnaÚ_maybe_mask_results)ÚselfÚvaluesÚresult©r:©úTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/arrays/timedeltas.pyÚfRsÿz_field_accessor.<locals>.fÚ
)Ú__name__Ú__doc__Úproperty)r9r:r;rNrLrKrMÚ_field_accessorQsrScsŠeZdZUdZdZe dd¡Zeeje    fZ
e Z dZ eddœdd    „ƒZd
ZgZd ed <gZd ed <dgZd ed<ddddgZd ed<eeedgZd ed<ddddddgZd ed<ddd œd!d"„Zed#dœd$d%„ƒZd&ZeZed'd(„ƒZed&efd)d*dd+œ‡fd,d-„ ƒZed&d.d/œd0dd1œd2d3„ƒZ ed&d.e!j"d&d4œd0dd1œd5d6„ƒZ#edšd&d7œd8d7œd9d:„ƒZ$ddœd;d<„Z%ddœd=d>„Z&d?dœd@dA„Z'd›d0dCœdDdE„Z(dFdœdGdH„Z)d&d&d&d.d&dBdIdJœdKdLd0d0dMdNœdOdP„Z*d&d&d&dQd.dBdRœdKdLdMd0d0dSœdTdU„Z+dBdVœdWd0dXœ‡fdYdZ„Z,dœd0d[œd\d]„Z-dd&d^œd_d`daœdbdc„Z.ddde„Z/e0dfƒddœdgdh„ƒZ1e1Z2didj„Z3dkdl„Z4dmdœdndo„Z5e0dpƒdqdr„ƒZ6e0dsƒdtdu„ƒZ7e0dvƒdwdx„ƒZ8e0dyƒdzd{„ƒZ9e0d|ƒd}d~„ƒZ:e0dƒd€d„ƒZ;e0d‚ƒdƒd„„ƒZ<e0d…ƒd†d‡„ƒZ=ddœdˆd‰„Z>ddœdŠd‹„Z?ddœdŒd„Z@dŽdœdd„ZAd`dœd‘d’„ZBeCddd“ƒZDeCddd”ƒZEeCddd•ƒZFeCddd–ƒZGed—dœd˜d™„ƒZH‡ZIS)ÚTimedeltaArrayaš
    Pandas ExtensionArray for timedelta data.
 
    .. warning::
 
       TimedeltaArray is currently experimental, and its API may change
       without warning. In particular, :attr:`TimedeltaArray.dtype` is
       expected to change to be an instance of an ``ExtensionDtype``
       subclass.
 
    Parameters
    ----------
    values : array-like
        The timedelta data.
 
    dtype : numpy.dtype
        Currently, only ``numpy.dtype("timedelta64[ns]")`` is accepted.
    freq : Offset, optional
    copy : bool, default False
        Whether to copy the underlying array of data.
 
    Attributes
    ----------
    None
 
    Methods
    -------
    None
    Ztimedeltaarrayr
Úns)rÚ timedelta64ztype[Timedelta]r=cCstS©N©r ©rHrLrLrMÚ _scalar_typeŒszTimedeltaArray._scalar_typeièz    list[str]Ú
_other_opsÚ    _bool_opsÚfreqÚ _object_opsr?ÚsecondsÚ microsecondsÚ nanosecondsÚ
_field_opsÚunitÚ_datetimelike_opsÚto_pytimedeltaÚ total_secondsÚroundÚfloorÚceilÚas_unitÚ_datetimelike_methodsznp.timedelta64úTimedelta | NaTType)Úxr>cCs(| d¡}|tjkrtStj||jdS)NÚi8r@)Úviewr
Ú_valuer Z_from_value_and_resorE)rHrmÚyrLrLrMÚ    _box_func£s
 
zTimedeltaArray._box_funcznp.dtypecCs|jjS)a3
        The dtype for the TimedeltaArray.
 
        .. warning::
 
           A future version of pandas will change dtype to be an instance
           of a :class:`pandas.api.extensions.ExtensionDtype` subclass,
           not a ``numpy.dtype``.
 
        Returns
        -------
        numpy.dtype
        )Ú_ndarrayÚdtyperYrLrLrMrt©szTimedeltaArray.dtypeNcCst|jƒt|ƒ}|SrW)Ú_validate_td64_dtypert)ÚclsrIrtrLrLrMÚ_validate_dtypeÂs
zTimedeltaArray._validate_dtyper<zBaseOffset | None)rIr]r>csht|tjƒr|jdkst‚t |¡r(t‚t|tjƒs@tt|ƒƒ‚||jksNt‚t    ƒj
||d}||_ |S)NÚm)rIrt) Ú
isinstanceÚnprtÚkindÚAssertionErrorrZ is_unitlessZndarrayÚtypeÚsuperÚ _simple_newÚ_freq)rvrIr]rtrJ©Ú    __class__rLrMrÊszTimedeltaArray._simple_newF©rtÚcopyÚbool)r„r>cCsX|r t|ƒ}t||dd\}}t d|d¡\}}|dk    rFt||dd}|j||j|dS)N©r„rcFrƒ©rtr])ruÚsequence_to_td64nsÚdtlÚvalidate_inferred_freqrrrt)rvÚdatartr„Ú inferred_freqr]Ú_rLrLrMÚ_from_sequenceØszTimedeltaArray._from_sequence)rtr„r]rcc
CsÆ|r t|ƒ}|dkst‚|dk}|tjk    r.|nd}t |¡\}}t|||d\}}t |||¡\}}|rld}|dk    r‚t||dd}|j    ||j
|d}    |dkr²|dk    r²|  |    |¡n|rÂt |    j ƒ|    _|    S)z]
        A non-strict version of _from_sequence, called from TimedeltaIndex.__new__.
        ©ÚYrqÚMNr†Frƒr‡)rur|rÚ
no_defaultr‰Zmaybe_infer_freqrˆrŠrrrtZ_validate_frequencyrrŒr€)
rvr‹rtr„r]rcZ explicit_noneZ
freq_inferrŒrJrLrLrMÚ_from_sequence_not_strictås$   z(TimedeltaArray._from_sequence_not_strict©rcz
str | Nonec Cs\t |¡}|dkr2tdd„|||fDƒƒr2tdƒ‚t ||||¡dkrNtdƒ‚|dk    rdt|ƒ d¡}|dk    rzt|ƒ d¡}|dk    r”|dkr˜tdƒ‚nd}|dk    r¶|dk    r¶|j|d    d
}|dk    rÔ|dk    rÔ|j|d    d
}t|ƒ\}}|dk    rüt    |||||d }    nt
  |j |j |¡  d ¡}    |s&|    d d…}    |s8|    dd…}    |     d|›d¡}
|j|
|
j|dS)Ncss|]}|dkVqdSrWrL©Ú.0rmrLrLrMÚ    <genexpr>sz1TimedeltaArray._generate_range.<locals>.<genexpr>z1Must provide freq argument if no data is suppliedézVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrU)ÚsÚmsÚusrUz+'unit' must be one of 's', 'ms', 'us', 'ns'F)Zround_okr”rnééÿÿÿÿúm8[ú]r‡)r‰Zvalidate_periodsÚanyÚ
ValueErrorÚcomZcount_not_noner rjr$r3rzZlinspacerpÚastyperorrt) rvÚstartÚendZperiodsr]ÚclosedrcZ left_closedZ right_closedÚindexZ
td64valuesrLrLrMÚ_generate_ranges:
 ÿ
   zTimedeltaArray._generate_rangecCsPt||jƒs|tk    rtdƒ‚| |¡|tkr>t |j|j¡S|     |j¡j
SdS)Nz'value' should be a Timedelta.) ryrZr
r¡Ú_check_compatible_withrzrVrprcrjZasm8©rHÚvaluerLrLrMÚ _unbox_scalarDs 
zTimedeltaArray._unbox_scalarcCst|ƒSrWrXrªrLrLrMÚ_scalar_from_stringMsz"TimedeltaArray._scalar_from_stringÚNonecCsdSrWrL©rHÚotherrLrLrMr©Psz%TimedeltaArray._check_compatible_withT©r„cCs–t|ƒ}t|tjƒr„|jdkr„||jkr8|r4| ¡S|Stt|ƒƒrlt|j    |dd}t
|ƒj ||j|j dSt d|j›d|›dƒ‚tjj|||dS)NrxFr±r‡zCannot convert from z to z1. Supported resolutions are 's', 'ms', 'us', 'ns')r.ryrzrtr{r„rrrrsr}rr]r¡r‰ZDatetimeLikeArrayMixinr£)rHrtr„Z
res_valuesrLrLrMr£Ws"
 ÿÿzTimedeltaArray.astyperc    cs|jdkr(tt|ƒƒD]}||Vqnd|j}t|ƒ}d}||d}t|ƒD]<}||}t|d||ƒ}t|||…dd}|EdHqNdS)Nrœi'T©Zbox)ÚndimÚrangeÚlenrsÚminr)    rHÚir‹ÚlengthÚ    chunksizeÚchunksZstart_iZend_iZ    convertedrLrLrMÚ__iter__rs
  zTimedeltaArray.__iter__r)ÚaxisrtÚoutÚkeepdimsÚinitialÚskipnaÚ    min_countzAxisInt | NonezNpDtype | NoneÚint)r¼rtr¾rÀrÁc    Cs6t d||||dœ¡tj|j|||d}| ||¡S)NrL)rtr½r¾r¿)r¼rÀrÁ)ÚnvZ validate_sumr0ZnansumrsZ_wrap_reduction_result)    rHr¼rtr½r¾r¿rÀrÁrJrLrLrMÚsum…s  ÿÿzTimedeltaArray.sumrœ)r¼rtr½Úddofr¾rÀ)r¼rtrÅr¾rÀcCsRtjd|||dœddtj|j|||d}|dks>|jdkrH| |¡S| |¡S)NrL)rtr½r¾Ústd)Úfname)r¼rÀrÅrœ)rÃZvalidate_stat_ddof_funcr0Znanstdrsr³rrZ_from_backing_data)rHr¼rtr½rÅr¾rÀrJrLrLrMrƙs
 
ÿ
zTimedeltaArray.std)rÀr8)r9rÀc sp|dkrBtt|ƒ}||j ¡fd|i|—Ž}t|ƒj|d|jdS|dkrTtdƒ‚ntƒj    |fd|i|—ŽSdS)NZcumsumrÀ)r]rtZcumprodz$cumprod not supported for Timedelta.)
Úgetattrr1rsr„r}rrtÚ    TypeErrorr~Ú _accumulate)rHr9rÀÚkwargsÚoprJrrLrMrʯs
 
zTimedeltaArray._accumulate)ÚboxedcCsddlm}||ddS)Nr©Úget_format_timedelta64Tr²)Úpandas.io.formats.formatrÏ)rHrÍrÏrLrLrMÚ
_formatter¾s zTimedeltaArray._formatter)Úna_repÚ date_formatz str | floatznpt.NDArray[np.object_])rÒr>cKs,ddlm}||j|ƒ}t |dd¡|jƒS)NrrÎrœ)rÐrÏrsrzZ
frompyfunc)rHrÒrÓrËrÏÚ    formatterrLrLrMÚ_format_native_typesÃs  z#TimedeltaArray._format_native_typescCs2t|tƒrt‚tdt|ƒj›dt|ƒj›ƒ‚dS)Nzcannot add the type z to a )ryr r|rÉr}rPr¯rLrLrMÚ _add_offsetÑsÿzTimedeltaArray._add_offsetÚ__mul__csætˆƒrH|jˆ}d}|jdk    r2tˆƒs2|jˆ}t|ƒj||j|dStˆdƒs\t     ˆ¡‰t
ˆƒt
|ƒkr~t ˆjƒs~t dƒ‚t ˆjƒrÈ|j‰‡‡fdd„tt
|ƒƒDƒ}t     |¡}t|ƒj||jdS|jˆ}t|ƒj||jdS)Nr‡rtz$Cannot multiply with unequal lengthscsg|]}ˆ|ˆ|‘qSrLrL©r–Ún©Zarrr°rLrMÚ
<listcomp>îsz*TimedeltaArray.__mul__.<locals>.<listcomp>©rt)r+rsr]r/r}rrtÚhasattrrzÚarrayrµr-r¡r*r´)rHr°rJr]rLrÚrMr××s"
 
 
 
 
 
 
zTimedeltaArray.__mul__cCsât||jƒrPt|ƒ}td|ƒtkrDtj|jtjd}|     tj
¡|S||j |ƒS|t j t jfkr€tdt|ƒj›dt|ƒj›ƒ‚||j |ƒ}d}|jdk    rÈ|j|}|tjkrÈ|jdkrÈ|jjdkrÈd}t|ƒj||j|dSdS)zv
        Shared logic for __truediv__, __rtruediv__, __floordiv__, __rfloordiv__
        with scalar 'other'.
        rlrÜzCannot divide z by Nrr‡)ryÚ_recognized_scalarsr rr
rzÚemptyÚshaperAÚfillÚnanrsr4ÚrtruedivÚ    rfloordivrÉr}rPr]ÚoperatorÚfloordivZnanosrrt)rHr°rÌrJr]rLrLrMÚ_scalar_divlike_opøs&   ÿ 
 
 
z!TimedeltaArray._scalar_divlike_opcCs0t|dƒst |¡}t|ƒt|ƒkr,tdƒ‚|S)Nrtz*Cannot divide vectors with unequal lengths)rÝrzrÞrµr¡r¯rLrLrMÚ_cast_divlike_op(s
 
 
zTimedeltaArray._cast_divlike_opznp.ndarray | TimedeltaArraycCs’||jt |¡ƒ}t|jƒs&t|jƒrJ|tjtjfkrJt    |ƒj
||jdS|tjt j fkrŽ|  ¡t |ƒB}| ¡rŽ| tj¡}t ||tj¡|S)z‡
        Shared logic for __truediv__, __floordiv__, and their reversed versions
        with timedelta64-dtype ndarray other.
        rÜ)rsrzÚasarrayr)rtr(ræÚtruedivrçr}rr4rår/r r£rAZputmaskrã)rHr°rÌrJÚmaskrLrLrMÚ_vector_divlike_op1sþ z!TimedeltaArray._vector_divlike_opÚ __truediv__cCs¶tj}t|ƒr| ||¡S| |¡}t|jƒsBt|jƒsBt|jƒrN|     ||¡St
|jƒr®t   |¡}|j dkrždd„t||ƒDƒ}dd„|Dƒ}t j|dd}n t|j|ƒ}|StSdS)NrœcSsg|]\}}||‘qSrLrL©r–ÚleftÚrightrLrLrMrÛYsz.TimedeltaArray.__truediv__.<locals>.<listcomp>cSsg|]}| dd¡‘qS©rœr©Zreshaper•rLrLrMrÛZsr©r¼)rærër+rèrér-rtr)r(rír*rzrêr³ÚzipÚ concatenaterrsÚNotImplemented©rHr°rÌZres_colsZ    res_cols2rJrLrLrMrîGs( 
ÿþý 
 
 
 zTimedeltaArray.__truediv__Ú __rtruediv__csrtj}tˆƒrˆ ˆ|¡Sˆ ˆ¡‰tˆjƒr:ˆ ˆ|¡Stˆjƒrj‡‡fdd„t    t
ˆƒƒDƒ}t   |¡St SdS)Ncsg|]}ˆ|ˆ|‘qSrLrLrØ©r°rHrLrMrÛssz/TimedeltaArray.__rtruediv__.<locals>.<listcomp>)r4rär+rèrér-rtrír*r´rµrzrÞr÷)rHr°rÌÚ result_listrLrúrMrùds 
 
 
 
zTimedeltaArray.__rtruediv__Ú __floordiv__cCsÄtj}t|ƒr| ||¡S| |¡}t|jƒsBt|jƒsBt|jƒrN|     ||¡St
|jƒr¼t   |¡}|j dkrždd„t||ƒDƒ}dd„|Dƒ}t j|dd}n t|j|ƒ}|jtks¸t‚|StSdS)NrœcSsg|]\}}||‘qSrLrLrïrLrLrMrۊsz/TimedeltaArray.__floordiv__.<locals>.<listcomp>cSsg|]}| dd¡‘qSròrór•rLrLrMrۋsrrô)rærçr+rèrér-rtr)r(rír*rzrêr³rõrörrsÚobjectr|r÷rørLrLrMrüys* 
ÿþý 
 
 
 zTimedeltaArray.__floordiv__Ú __rfloordiv__csvtj}tˆƒrˆ ˆ|¡Sˆ ˆ¡‰tˆjƒr:ˆ ˆ|¡Stˆjƒrn‡‡fdd„t    t
ˆƒƒDƒ}t   |¡}|St SdS)Ncsg|]}ˆ|ˆ|‘qSrLrLrØrúrLrMrÛ¡sz0TimedeltaArray.__rfloordiv__.<locals>.<listcomp>)r4rår+rèrér-rtrír*r´rµrzrÞr÷)rHr°rÌrûrJrLrúrMrþ–s 
 
 
 
zTimedeltaArray.__rfloordiv__Ú__mod__cCs$t||jƒrt|ƒ}||||SrW©ryrßr r¯rLrLrMrÿ¨s zTimedeltaArray.__mod__Ú__rmod__cCs$t||jƒrt|ƒ}||||SrWrr¯rLrLrMr¯s zTimedeltaArray.__rmod__Ú
__divmod__cCs0t||jƒrt|ƒ}||}|||}||fSrWr©rHr°Zres1Zres2rLrLrMr¶s
  zTimedeltaArray.__divmod__Ú __rdivmod__cCs0t||jƒrt|ƒ}||}|||}||fSrWrrrLrLrMrÀs
  zTimedeltaArray.__rdivmod__cCs0d}|jdk    r|j }t|ƒj|j |j|dS)Nr‡)r]r}rrsrt)rHr]rLrLrMÚ__neg__Ês
zTimedeltaArray.__neg__cCst|ƒ|j ¡|jdS)N)r])r}rsr„r]rYrLrLrMÚ__pos__ÐszTimedeltaArray.__pos__cCst|ƒt |j¡ƒSrW)r}rzÚabsrsrYrLrLrMÚ__abs__ÓszTimedeltaArray.__abs__znpt.NDArray[np.float64]cCst|jƒ}|j|j|ddS)a{
        Return total duration of each element expressed in seconds.
 
        This method is available directly on TimedeltaArray, TimedeltaIndex
        and on Series containing timedelta values under the ``.dt`` namespace.
 
        Returns
        -------
        ndarray, Index or Series
            When the calling object is a TimedeltaArray, the return type
            is ndarray.  When the calling object is a TimedeltaIndex,
            the return type is an Index with a float64 dtype. When the calling object
            is a Series, the return type is Series of type `float64` whose
            index is the same as the original.
 
        See Also
        --------
        datetime.timedelta.total_seconds : Standard library version
            of this method.
        TimedeltaIndex.components : Return a DataFrame with components of
            each Timedelta.
 
        Examples
        --------
        **Series**
 
        >>> s = pd.Series(pd.to_timedelta(np.arange(5), unit='d'))
        >>> s
        0   0 days
        1   1 days
        2   2 days
        3   3 days
        4   4 days
        dtype: timedelta64[ns]
 
        >>> s.dt.total_seconds()
        0         0.0
        1     86400.0
        2    172800.0
        3    259200.0
        4    345600.0
        dtype: float64
 
        **TimedeltaIndex**
 
        >>> idx = pd.to_timedelta(np.arange(5), unit='d')
        >>> idx
        TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
                       dtype='timedelta64[ns]', freq=None)
 
        >>> idx.total_seconds()
        Index([0.0, 86400.0, 172800.0, 259200.0, 345600.0], dtype='float64')
        N)rB)rrErGrD)rHZppsrLrLrMrfÚs6
zTimedeltaArray.total_secondscCs
t|jƒS)zy
        Return an ndarray of datetime.timedelta objects.
 
        Returns
        -------
        numpy.ndarray
        )rrsrYrLrLrMreszTimedeltaArray.to_pytimedeltaz Number of days for each element.z>Number of seconds (>= 0 and less than 1 day) for each element.zFNumber of microseconds (>= 0 and less than 1 second) for each element.zJNumber of nanoseconds (>= 0 and less than 1 microsecond) for each element.r7csjddlm}ddddddd    g‰|j}|r6‡fd
d „‰nd d „‰|‡fd d„|Dƒˆd}|sf| d¡}|S)a"
        Return a DataFrame of the individual resolution components of the Timedeltas.
 
        The components (days, hours, minutes seconds, milliseconds, microseconds,
        nanoseconds) are returned as columns in a DataFrame.
 
        Returns
        -------
        DataFrame
        rr6r?ÚhoursÚminutesr_Z millisecondsr`racst|ƒrtjgtˆƒS|jSrW)r/rzrãrµÚ
components©rm©ÚcolumnsrLrMrNHsz$TimedeltaArray.components.<locals>.fcSs|jSrW)r r rLrLrMrNOscsg|] }ˆ|ƒ‘qSrLrLr•)rNrLrMrÛRsz-TimedeltaArray.components.<locals>.<listcomp>r Úint64)Úpandasr7rFr£)rHr7ZhasnansrJrL)rrNrMr .s" ù    
zTimedeltaArray.components)N)T)F)JrPÚ
__module__Ú __qualname__rQZ_typrzrVZ_internal_fill_valuerr rßr-Z_is_recognized_dtypeZ_infer_matchesrRrZZ__array_priority__r[Ú__annotations__r\r^rbrdrkrrrtr€r%Z_default_dtypeÚ classmethodrwrrŽrr’r“r¨r¬r­r©r£r»rÄrÆrÊrÑrÕrÖr5r×Ú__rmul__rèrérírîrùrürþrÿrrrrrrrfrerSr?r_r`rar Ú __classcell__rLrLrrMrTgsè
    ú 
ÿ  ù-ÿÿ0    ÷øÿ0    
 
 
 
 
 
 
    
    9
ýýýrTFÚraiser…rztuple[np.ndarray, Tick | None])r„Úerrorsr>c    Cs|dks t‚d}|dk    r t|ƒ}tj||dd\}}t|tƒrD|j}t|jƒsXt    |jƒrnt
|||d}d}nbt |jƒr–t ||d\}}|o| }n:t |jƒrht|ƒr¸|j}|j}n
t |¡}t|pÊdƒ\}}t ¡ t d    d
t¡| tj¡}    W5QRX||    }
|rt |
|¡}
t ¡2t d    d
t¡|    ||
| tj¡ d ¡}W5QRXt||<d}nht|jƒr¾t|jƒ} t| ƒsÐt | ƒ} t!| ƒ} t d | ›d ¡}t"||dd}d}nt#d|j›dƒ‚tj$||d}|jj%dksðt‚|jdkst‚||fS)aÖ
    Parameters
    ----------
    data : list-like
    copy : bool, default False
    unit : str, optional
        The timedelta unit to treat integers as multiples of. For numeric
        data this defaults to ``'ns'``.
        Must be un-specified if the data contains a str and ``errors=="raise"``.
    errors : {"raise", "coerce", "ignore"}, default "raise"
        How to handle elements that cannot be converted to timedelta64[ns].
        See ``pandas.to_timedelta`` for details.
 
    Returns
    -------
    converted : numpy.ndarray
        The sequence converted to a numpy array with dtype ``timedelta64[ns]``.
    inferred_freq : Tick or None
        The inferred frequency of the sequence.
 
    Raises
    ------
    ValueError : Data cannot be converted to timedelta64[ns].
 
    Notes
    -----
    Unlike `pandas.to_timedelta`, if setting ``errors=ignore`` will not cause
    errors to be ignored; they are caught and subsequently ignored at a
    higher level.
    rNrT)Zcls_name©rcrFr”rUÚignorez!invalid value encountered in castútimedelta64[ns]ržrŸrƒúdtype ú' cannot be converted to timedelta64[ns]r±rxZm8)&r|rr‰Z!ensure_arraylike_for_datetimelikeryrTr]r*rtr,Ú_objects_to_td64nsr)Ú_ints_to_td64nsr(r'Z_maskÚ_datarzÚisnanrÚwarningsÚcatch_warningsÚfilterwarningsÚRuntimeWarningr£rrgrorr-rrrrrrÉrÞr{)r‹r„rcrrŒÚ    copy_maderìrxÚpÚbaseÚfracZ    data_unitZnew_resoZnew_unitZ    new_dtyperLrLrMrˆ\sn$ ÿ
 
 
 
 
ÿ 
ÿ( 
 
rˆrUr”cCsrd}|dk    r|nd}|jtjkr0| tj¡}d}|dkr`d|›d}| |¡}t|td}d}n
| d¡}||fS)    a­
    Convert an ndarray with integer-dtype to timedelta64[ns] dtype, treating
    the integers as multiples of the given timedelta unit.
 
    Parameters
    ----------
    data : numpy.ndarray with integer-dtype
    unit : str, default "ns"
        The timedelta unit to treat integers as multiples of.
 
    Returns
    -------
    numpy.ndarray : timedelta64[ns] array converted from data
    bool : whether a copy was made
    FNrUTz timedelta64[rŸrÜr)rtrzrr£rorr%)r‹rcr&Z    dtype_strrLrLrMrÉs   
 
r)rcCs*tj|tjdd}t|||d}| d¡S)aR
    Convert a object-dtyped or string-dtyped array into an
    timedelta64[ns]-dtyped array.
 
    Parameters
    ----------
    data : ndarray or Index
    unit : str, default "ns"
        The timedelta unit to treat integers as multiples of.
        Must not be specified if the data contains a str.
    errors : {"raise", "coerce", "ignore"}, default "raise"
        How to handle elements that cannot be converted to timedelta64[ns].
        See ``pandas.to_timedelta`` for details.
 
    Returns
    -------
    numpy.ndarray : timedelta64[ns] array converted from data
 
    Raises
    ------
    ValueError : Data cannot be converted to timedelta64[ns].
 
    Notes
    -----
    Unlike `pandas.to_timedelta`, if setting `errors=ignore` will not cause
    errors to be ignored; they are caught and subsequently ignored at a
    higher level.
    Frƒrr)rzrÞZobject_rro)r‹rcrrIrJrLrLrMrñsrr r=cCsZt|ƒ}t|t d¡ƒr$d}t|ƒ‚t|tjƒrF|jdksFtt|ƒƒsVtd|›dƒ‚|S)NrVzhPassing in 'timedelta' dtype with no precision is not allowed. Please pass in 'timedelta64[ns]' instead.rxrr)    r.r&rzrtr¡ryr{rr)rtÚmsgrLrLrMrusÿ
ÿþ
ýru)FNr)rU)Nr)ZÚ
__future__rÚdatetimerræÚtypingrrrr"ÚnumpyrzZ pandas._libsrrZpandas._libs.tslibsr    r
r r r rrrrrrrrZpandas._libs.tslibs.conversionrZpandas._libs.tslibs.fieldsrrZpandas._libs.tslibs.timedeltasrrrrrZpandas._typingrrr r!r"Zpandas.compat.numpyr#rÃZpandas.util._validatorsr$Zpandas.core.dtypes.commonr%r&r'r(r)r*r+r,r-r.Zpandas.core.dtypes.missingr/Z pandas.corer0Zpandas.core.array_algosr1Zpandas.core.arraysr2r‰Zpandas.core.arrays._rangesr3Zpandas.core.commonÚcoreÚcommonr¢Zpandas.core.opsr4Zpandas.core.ops.commonr5rr7rSZ TimelikeOpsrTrˆrrrurLrLrLrMÚ<module>sL  <   0        |üm($