+
    xȇi                       ^ RI Ht ^ RIHt ^ RIt^ RIHtHtHtH	t	H
t
HtHt ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtH t H!t!H"t"H#t$H%t% ^ RI&H't'H(t( ^ R	I)H*t* ^ R
I+H,t,H-t- ^ RI.H/t/H0t0H1t1H2t2H3t3 ^ RI4H5t5H6t6H7t7 ^ RI8H9t9H:t: ^ RI;H<t<H=t= ^ RI>H?t?H@t@HAtAHBtB ^ RICHDtD ^ RIEHFtG ^ RIHHIu HJtK ]'       d1   ^ RILHMtMHNtN ^ RIOHPtPHQtQHRtRHStSHTtTHUtUHVtVHWtW ^ RI;HXtX ^ RIEHYtYHZtZ ^ RI[H\t\ ]
! R]R7      t]RR/t^R1R R llt_]7! R4       ! R R]GP                  ]$P                  4      4       tbR R  ltcR2R! R" lltd]R# R$ l4       te]R% R& l4       teR' R( lteR1R) R* lltR3R+ R, lltfR4R- R. lltgR/ R0 lthR# )5    )annotations)	timedeltaN)TYPE_CHECKINGAnyLiteralSelfTypeVarcastoverload)algoslib)NDArrayBacked)
BaseOffsetDayNaTNaTType	Timedeltaadd_overflowsafeastype_overflowsafedt64arr_to_periodarrget_unit_from_dtypeiNaTparsingperiod	to_offset)	FreqGroupPeriodDtypeBase)isleapyear_arr)Tickdelta_to_tick)DIFFERENT_FREQIncompatibleFrequencyPeriodget_period_field_arrperiod_asfreq_arr)cache_readonlydoc
set_module)ensure_objectpandas_dtype)DatetimeTZDtypePeriodDtype)ABCIndexABCPeriodIndex	ABCSeriesABCTimedeltaArray)isna)datetimelike)CallableSequence)AnyArrayLikeDtypeDtypeObjFillnaOptionsNpDtypeNumpySorterNumpyValueArrayLikenpt)ExtensionDtype)DatetimeArrayTimedeltaArray)ExtensionArrayBaseOffsetT)boundklassPeriodArrayc                    V ^8  d   QhRRRR/# )   namestr	docstringz
str | None )formats   "i/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/arrays/period.py__annotate__rM   q   s      # *     c                @   a  V 3R  lpS Vn         Wn        \        V4      # )c                b   < V P                   P                  p\        SV P                  V4      pV# N)dtype_dtype_coder$   asi8)selfbaseresultrG   s   &  rL   f_field_accessor.<locals>.fr   s)    zz%%%dDIIt<rN   )__name____doc__property)rG   rI   rX   s   f& rL   _field_accessorr]   q   s     
 AJIA;rN   zpandas.arraysc                  :  a  ] tR t^|t$ RtRtRt]P                  ! ]	4      t
]3tR tR]R&   Rst]R R l4       t. tR	]R
&   R.tR	]R&   . RtOtR	]R&   . RuOtR	]R&   ]],           ],           tR	]R&   . RvOtR	]R&   R]R&   RwR! R" llt]R# R$ l4       t]R%RR&R /R' R( ll4       t]R&R /R) R* ll4       t]RxR+ R, ll4       t]R- 4       t]R. R/ l4       tR0 R1 lt R2 R3 lt!R4 R5 lt"]#R6 R7 l4       t$]R8 R9 l4       t%]R: R; l4       t&RyR< R= llt'RxR> lt(])! RR?4      t*])! RR@4      t+])! RRA4      t,])! RRB4      t-])! RRC4      t.])! RRD4      t/])! RRE4      t0]0t1])! RRF4      t2]2t3]3t4])! RRG4      ;t5t6])! RRH4      t7])! RRI4      t8])! RRJ4      t9]9t:]RK RL l4       t;RzRM RN llt<RO RP lt=]>! Rr/ ]?BRQRRRSRR/B R{RT RU ll4       t@R|RV RW lltARXRYRZR/R[ R\ lltBR}R^ V 3R_ llltCR~R` Ra lltDRbRRcRR&R]/Rd Re lltERf Rg ltFRh Ri ltGV 3Rj ltHRk Rl ltIRm tJRnR]RoR /Rp V 3Rq llltKRrtLV ;tM# )rD   a  
Pandas ExtensionArray for storing Period data.

Users should use :func:`~pandas.array` to create new instances.

Parameters
----------
values : Union[PeriodArray, Series[period], ndarray[int], PeriodIndex]
    The data to store. These should be arrays that can be directly
    converted to ordinals without inference or copy (PeriodArray,
    ndarray[int64]), or a box around such an array (Series[period],
    PeriodIndex).
dtype : PeriodDtype, optional
    A PeriodDtype instance from which to extract a `freq`. If both
    `freq` and `dtype` are specified, then the frequencies must match.
copy : bool, default False
    Whether to copy the ordinals before storing.

Attributes
----------
None

Methods
-------
None

See Also
--------
Period: Represents a period of time.
PeriodIndex : Immutable Index for period data.
period_range: Create a fixed-frequency PeriodArray.
array: Construct a pandas array.

Notes
-----
There are two components to a PeriodArray

- ordinals : integer ndarray
- freq : pd.tseries.offsets.Offset

The values are physically stored as a 1-D ndarray of integers. These are
called "ordinals" and represent some kind of offset from a base.

The `freq` indicates the span covered by each element of the array.
All elements in the PeriodArray have the same `freq`.

Examples
--------
>>> pd.arrays.PeriodArray(pd.PeriodIndex(["2023-01-01", "2023-01-02"], freq="D"))
<PeriodArray>
['2023-01-01', '2023-01-02']
Length: 2, dtype: period[D]
i  periodarrayc                	"    \        V \        4      # rQ   )
isinstancer,   )xs   &rL   <lambda>PeriodArray.<lambda>   s    	;BrN   zCallable[[DtypeObj], bool]_is_recognized_dtypec                   V ^8  d   QhRR/# )rF   returnztype[Period]rJ   )rK   s   "rL   rM   PeriodArray.__annotate__   s      l rN   c                	    \         # rQ   )r#   rU   s   &rL   _scalar_typePeriodArray._scalar_type   s    rN   z	list[str]
_other_opsis_leap_year	_bool_ops_object_opsyearmonthdayhourminutesecondweekday_of_weekday_of_yearquarterqyeardays_in_month
_field_ops_datetimelike_ops_datetimelike_methodsr,   _dtypeNFc               $    V ^8  d   QhRRRRRR/# )rF   rR   Dtype | Nonecopyboolrg   NonerJ   )rK   s   "rL   rM   rh      s"     4 4l 4 4RV 4rN   c                	   Ve1   \        V4      p\        V\        4      '       g   \        RV R24      h\        V\        4      '       d4   VP
                  p\        V\        V 4      4      '       g   \        R4      hM"\        V\        4      '       d   VP
                  p\        V\        V 4      4      '       dA   Ve&   W!P                  8w  d   \        WP                  4      hVP                  VP                  r!V'       g   \        P                  ! VRR7      pM\        P                  ! VRVR7      pVf   \        R4      h\!        \        V4      p\"        P$                  ! WV4       R # )NzInvalid dtype z for PeriodArrayzIncorrect dtypeint64rR   rR   r   z-dtype is not specified and cannot be inferred)r*   ra   r,   
ValueErrorr/   _valuestype	TypeErrorr.   rR   raise_on_incompatiblefreq_ndarraynpasarrayarrayr
   r   __init__)rU   valuesrR   r   s   &&&&rL   r   PeriodArray.__init__   s    'Ee[11 >%8H!IJJfi((^^Ffd4j11 122 2 //^^Ffd4j)) Ull%:+FJJ??"OOV\\EZZg6FXXfG$?F=LMM[%(tU3rN   c               $    V ^8  d   QhRRRRRR/# )rF   r   znpt.NDArray[np.int64]rR   r,   rg   r   rJ   )rK   s   "rL   rM   rh     s(     ( (%( ( 
	(rN   c                	    R p\        V\        P                  4      '       d   VP                  R8X  g   Q V4       hV ! WR7      # )z Should be numpy array of type i8i8r   )ra   r   ndarrayrR   )clsr   rR   assertion_msgs   &&& rL   _simple_newPeriodArray._simple_new   s;     ;&"**--&,,$2FUUF6''rN   rR   r   c               $    V ^8  d   QhRRRRRR/# )rF   rR   r   r   r   rg   r   rJ   )rK   s   "rL   rM   rh     s*     * * 	*
 * 
*rN   c               	   Ve   \        V4      pV'       d$   \        V\        4      '       d   VP                  pMR p\        W4      '       d1   \	        VP
                  V4       V'       d   VP                  4       pV# \        P                  ! V\        R7      pT;'       g    \        P                  ! V4      p\        P                  ! WT4      p\        V4      pV ! WbR7      # )Nr   )r*   ra   r,   r   validate_dtype_freqrR   r   r   r   object	libperiodextract_freqextract_ordinals)r   scalarsrR   r   r   periodsordinalss   &&$$   rL   _from_sequencePeriodArray._from_sequence  s      'EZ{33::DDg##t4!,,.N**WF366y--g6--g<D!8))rN   c               $    V ^8  d   QhRRRRRR/# )rF   rR   r=   r   r   rg   r   rJ   )rK   s   "rL   rM   rh   (  s)     C C .C6:C	CrN   c               	(    V P                  WVR 7      # )r   )r   )r   stringsrR   r   s   &&$$rL   _from_sequence_of_strings%PeriodArray._from_sequence_of_strings'  s     !!'T!BBrN   c                   V ^8  d   QhRR/# )rF   rg   r   rJ   )rK   s   "rL   rM   rh   .  s     & &d &rN   c                    \        V\        4      '       d   \        V4      P                  p\	        WV4      w  r\        V4      pV ! WR7      # )z
Construct a PeriodArray from a datetime64 array

Parameters
----------
data : ndarray[datetime64[ns], datetime64[ns, tz]]
freq : str or Tick
tz : tzinfo, optional

Returns
-------
PeriodArray[freq]
r   )ra   r   r,   _freqstrr   )r   datar   tzrR   s   &&&& rL   _from_datetime64PeriodArray._from_datetime64-  sD     dJ''t$--D)$b9
D!4%%rN   c                	    \         P                  ! V4      pVe   \        P                  ! V4      pVf   Ve   \	        WW44      w  rTWT3# \        R4      h)Nz/Not enough parameters to construct Period range)dtlvalidate_periodsr#   _maybe_convert_freq_get_ordinal_ranger   )r   startendr   r   subarrs   &&&&& rL   _generate_rangePeriodArray._generate_rangeB  sX    &&w/--d3D-e'HLF | NOOrN   c                    V ^8  d   QhRRRR/# )rF   fieldsdictrg   r   rJ   )rK   s   "rL   rM   rh   Q  s     4 4T 4D 4rN   c               	Z    \        RR V/VB w  r2\        V4      pV P                  W4R7      # )r   r   rJ   )_range_from_fieldsr,   r   )r   r   r   r   rR   s   &$$  rL   _from_fieldsPeriodArray._from_fieldsP  s1    )>t>v>D!v33rN   c                    V ^8  d   QhRRRR/# )rF   valuePeriod | NaTTyperg   znp.int64rJ   )rK   s   "rL   rM   rh   \  s"     T TT 
TrN   c                	   V\         J d!   \        P                  ! VP                  4      # \	        WP
                  4      '       d2   V P                  V4       \        P                  ! VP                  4      # \        R V R24      h)z!'value' should be a Period. Got 'z
' instead.)	r   r   r   _valuera   rk   _check_compatible_withordinalr   rU   r   s   &&rL   _unbox_scalarPeriodArray._unbox_scalar\  se     C<88ELL))0011''.88EMM**@zRSSrN   c                    V ^8  d   QhRRRR/# )rF   r   rH   rg   r#   rJ   )rK   s   "rL   rM   rh   i  s     - - - -rN   c                	.    \        WP                  R 7      # ))r   )r#   r   r   s   &&rL   _scalar_from_stringPeriodArray._scalar_from_stringi  s    e)),,rN   c                    V ^8  d   QhRRRR/# )rF   otherzPeriod | NaTType | PeriodArrayrg   r   rJ   )rK   s   "rL   rM   rh   o  s     0 0,J 0t 0rN   c                	T    V\         J d   R # V P                  VP                  4       R # rQ   )r   _require_matching_freqr   rU   r   s   &&rL   r   "PeriodArray._check_compatible_witho  s     C< 	##EJJ/rN   c                   V ^8  d   QhRR/# )rF   rg   r,   rJ   )rK   s   "rL   rM   rh   z  s      { rN   c                	    V P                   # rQ   )r   rj   s   &rL   rR   PeriodArray.dtypey  s    {{rN   c                   V ^8  d   QhRR/# )rF   rg   r   rJ   )rK   s   "rL   rM   rh     s      j rN   c                .    V P                   P                  # )z3
Return the frequency object for this PeriodArray.
rR   r   rj   s   &rL   r   PeriodArray.freq~  s    
 zzrN   c                   V ^8  d   QhRR/# )rF   rg   rH   rJ   )rK   s   "rL   rM   rh     s     / / /rN   c                	@    \        V P                  4      P                  # rQ   )r,   r   r   rj   s   &rL   freqstrPeriodArray.freqstr  s    499%...rN   c               $    V ^8  d   QhRRRRRR/# )rF   rR   zNpDtype | Noner   zbool | Nonerg   z
np.ndarrayrJ   )rK   s   "rL   rM   rh     s$     2 2#22=2	2rN   c                	   VR 8X  d   V'       gX   \         P                  ! V P                  VR7      pV P                  '       d"   VP	                  4       pRVP
                  n        V# \         P                  ! V P                  VR7      # VRJ d   \        R4      hV\        8X  d   V P                  ( # \         P                  ! \        V 4      \        R7      # )r   r   Fz:Unable to avoid copy while creating an array as requested.)r   r   rT   	_readonlyviewflags	writeabler   r   r   _isnanlistr   )rU   rR   r   rW   s   &&& rL   	__array__PeriodArray.__array__  s     D= DIIU;>>>#[[]F-2FLL*xx		775=L  D=KK< xxT
&11rN   c                .   ^ RI p^ RIHp Ve   VP                  P	                  V4      '       d-   VP                  V P                  V P                  4       VR7      # \        W4      '       dC   V P                  VP                  8w  d'   \        RV P                   RVP                   R24      hM\        RV R24      hV! V P                  4      pVP                  V P                  V P                  4       R	R7      pVP                  P                  WE4      # )
z&
Convert myself into a pyarrow Array.
N)ArrowPeriodType)maskr   zENot supported to convert PeriodArray to array with different 'freq' (z vs )z)Not supported to convert PeriodArray to 'z' typer   )pyarrow(pandas.core.arrays.arrow.extension_typesr   types
is_integerr   r   r1   ra   r   r   r   r@   from_storage)rU   r   r   r   period_typestorage_arrays   &&    rL   __arrow_array__PeriodArray.__arrow_array__  s     	L}}''--}}T]]4}PPD22<<499,###'<<.TYYKqB  -  ?vVL  &dll3dmm$))+GT%%22;NNrN   aN  
        The year of the period.

        See Also
        --------
        PeriodIndex.day_of_year : The ordinal day of the year.
        PeriodIndex.dayofyear : The ordinal day of the year.
        PeriodIndex.is_leap_year : Logical indicating if the date belongs to a
            leap year.
        PeriodIndex.weekofyear : The week ordinal of the year.
        PeriodIndex.year : The year of the period.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023", "2024", "2025"], freq="Y")
        >>> idx.year
        Index([2023, 2024, 2025], dtype='int64')
        a  
        The month as January=1, December=12.

        See Also
        --------
        PeriodIndex.days_in_month : The number of days in the month.
        PeriodIndex.daysinmonth : The number of days in the month.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01", "2023-02", "2023-03"], freq="M")
        >>> idx.month
        Index([1, 2, 3], dtype='int64')
        a  
        The days of the period.

        See Also
        --------
        PeriodIndex.day_of_week : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.day_of_year : The ordinal day of the year.
        PeriodIndex.dayofweek : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.dayofyear : The ordinal day of the year.
        PeriodIndex.days_in_month : The number of days in the month.
        PeriodIndex.daysinmonth : The number of days in the month.
        PeriodIndex.weekday : The day of the week with Monday=0, Sunday=6.

        Examples
        --------
        >>> idx = pd.PeriodIndex(['2020-01-31', '2020-02-28'], freq='D')
        >>> idx.day
        Index([31, 28], dtype='int64')
        a  
        The hour of the period.

        See Also
        --------
        PeriodIndex.minute : The minute of the period.
        PeriodIndex.second : The second of the period.
        PeriodIndex.to_timestamp : Cast to DatetimeArray/Index.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01-01 10:00", "2023-01-01 11:00"], freq='h')
        >>> idx.hour
        Index([10, 11], dtype='int64')
        a  
        The minute of the period.

        See Also
        --------
        PeriodIndex.hour : The hour of the period.
        PeriodIndex.second : The second of the period.
        PeriodIndex.to_timestamp : Cast to DatetimeArray/Index.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01-01 10:30:00",
        ...                       "2023-01-01 11:50:00"], freq='min')
        >>> idx.minute
        Index([30, 50], dtype='int64')
        a  
        The second of the period.

        See Also
        --------
        PeriodIndex.hour : The hour of the period.
        PeriodIndex.minute : The minute of the period.
        PeriodIndex.to_timestamp : Cast to DatetimeArray/Index.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01-01 10:00:30",
        ...                       "2023-01-01 10:00:31"], freq='s')
        >>> idx.second
        Index([30, 31], dtype='int64')
        av  
        The week ordinal of the year.

        See Also
        --------
        PeriodIndex.day_of_week : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.dayofweek : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.week : The week ordinal of the year.
        PeriodIndex.weekday : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.year : The year of the period.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01", "2023-02", "2023-03"], freq="M")
        >>> idx.week  # It can be written `weekofyear`
        Index([5, 9, 13], dtype='int64')
        a(  
        The day of the week with Monday=0, Sunday=6.

        See Also
        --------
        PeriodIndex.day : The days of the period.
        PeriodIndex.day_of_week : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.day_of_year : The ordinal day of the year.
        PeriodIndex.dayofweek : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.dayofyear : The ordinal day of the year.
        PeriodIndex.week : The week ordinal of the year.
        PeriodIndex.weekday : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.weekofyear : The week ordinal of the year.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01-01", "2023-01-02", "2023-01-03"], freq="D")
        >>> idx.weekday
        Index([6, 0, 1], dtype='int64')
        a  
        The ordinal day of the year.

        See Also
        --------
        PeriodIndex.day : The days of the period.
        PeriodIndex.day_of_week : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.day_of_year : The ordinal day of the year.
        PeriodIndex.dayofweek : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.dayofyear : The ordinal day of the year.
        PeriodIndex.weekday : The day of the week with Monday=0, Sunday=6.
        PeriodIndex.weekofyear : The week ordinal of the year.
        PeriodIndex.year : The year of the period.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01-10", "2023-02-01", "2023-03-01"], freq="D")
        >>> idx.dayofyear
        Index([10, 32, 60], dtype='int64')

        >>> idx = pd.PeriodIndex(["2023", "2024", "2025"], freq="Y")
        >>> idx
        PeriodIndex(['2023', '2024', '2025'], dtype='period[Y-DEC]')
        >>> idx.dayofyear
        Index([365, 366, 365], dtype='int64')
        ah  
        The quarter of the date.

        See Also
        --------
        PeriodIndex.qyear : Fiscal year the Period lies in according to its
            starting-quarter.

        Examples
        --------
        >>> idx = pd.PeriodIndex(["2023-01", "2023-02", "2023-03"], freq="M")
        >>> idx.quarter
        Index([1, 1, 1], dtype='int64')
        a  
        Fiscal year the Period lies in according to its starting-quarter.

        The `year` and the `qyear` of the period will be the same if the fiscal
        and calendar years are the same. When they are not, the fiscal year
        can be different from the calendar year of the period.

        Returns
        -------
        int
            The fiscal year of the period.

        See Also
        --------
        PeriodIndex.quarter : The quarter of the date.
        PeriodIndex.year : The year of the period.

        Examples
        --------
        If the natural and fiscal year are the same, `qyear` and `year` will
        be the same.

        >>> per = pd.Period('2018Q1', freq='Q')
        >>> per.qyear
        2018
        >>> per.year
        2018

        If the fiscal year starts in April (`Q-MAR`), the first quarter of
        2018 will start in April 2017. `year` will then be 2017, but `qyear`
        will be the fiscal year, 2018.

        >>> per = pd.Period('2018Q1', freq='Q-MAR')
        >>> per.start_time
        Timestamp('2017-04-01 00:00:00')
        >>> per.qyear
        2018
        >>> per.year
        2017
        a  
        The number of days in the month.

        See Also
        --------
        PeriodIndex.day : The days of the period.
        PeriodIndex.days_in_month : The number of days in the month.
        PeriodIndex.daysinmonth : The number of days in the month.
        PeriodIndex.month : The month as January=1, December=12.

        Examples
        --------
        For Series:

        >>> period = pd.period_range('2020-1-1 00:00', '2020-3-1 00:00', freq='M')
        >>> s = pd.Series(period)
        >>> s
        0   2020-01
        1   2020-02
        2   2020-03
        dtype: period[M]
        >>> s.dt.days_in_month
        0    31
        1    29
        2    31
        dtype: int64

        For PeriodIndex:

        >>> idx = pd.PeriodIndex(["2023-01", "2023-02", "2023-03"], freq="M")
        >>> idx.days_in_month   # It can be also entered as `daysinmonth`
        Index([31, 28, 31], dtype='int64')
        c                   V ^8  d   QhRR/# )rF   rg   znpt.NDArray[np.bool_]rJ   )rK   s   "rL   rM   rh     s     5 53 5rN   c                T    \        \        P                  ! V P                  4      4      # )aR  
Logical indicating if the date belongs to a leap year.

See Also
--------
PeriodIndex.qyear : Fiscal year the Period lies in according to its
    starting-quarter.
PeriodIndex.year : The year of the period.

Examples
--------
>>> idx = pd.PeriodIndex(["2023", "2024", "2025"], freq="Y")
>>> idx.is_leap_year
array([False,  True, False])
)r   r   r   rq   rj   s   &rL   rn   PeriodArray.is_leap_year  s    " bjj344rN   c                    V ^8  d   QhRRRR/# )rF   howrH   rg   r>   rJ   )rK   s   "rL   rM   rh     s     m m3 m] mrN   c                   ^ RI Hp \        P                  ! V4      pV P                  P
                  R8X  g   VR8X  d   RpMRpVR8H  pV'       d   VR8X  g   V P                  R8X  d9   \        ^RR7      \        ^VR7      ,
          pV P                  RR	7      V,           # \        ^VR7      pW P                  ,           P                  RR	7      V,
          # Vf6   V P                  P                  4       p\        V^4      pVP                  pTp	M"\        P                  ! V4      pVP                  p	V P                  WR	7      p
\        P                   ! V
P"                  V	4      pVP$                  ! WP&                  R
7      pVP(                  V8X  g   Q hV P                  P*                  R8X  d   \,        P.                  ! V P"                  4      p\1        V4      ^8X  dY   V^ ,          pWP&                  P2                  8X  d   V P                  Vn        V# V^8X  d   V P                  P
                  Vn        V# VP7                  R4      pVev   \9        V4      p\;        VP                  \<        4      '       dK   \;        V\<        4      '       g5   \        V4      \        VP                  P>                  R7      8X  d   Wn        V# )ap  
Cast to DatetimeArray/Index.

If possible, gives microsecond-unit DatetimeArray/Index. Otherwise
gives nanosecond unit.

Parameters
----------
freq : str or DateOffset, optional
    Target frequency. The default is 'D' for week or longer,
    's' otherwise.
how : {'s', 'e', 'start', 'end'}
    Whether to use the start or end of the time period being converted.

Returns
-------
DatetimeArray/Index
    Timestamp representation of given Period-like object.

See Also
--------
PeriodIndex.day : The days of the period.
PeriodIndex.from_fields : Construct a PeriodIndex from fields
    (year, month, day, etc.).
PeriodIndex.from_ordinals : Construct a PeriodIndex from ordinals.
PeriodIndex.hour : The hour of the period.
PeriodIndex.minute : The minute of the period.
PeriodIndex.month : The month as January=1, December=12.
PeriodIndex.second : The second of the period.
PeriodIndex.year : The year of the period.

Examples
--------
>>> idx = pd.PeriodIndex(["2023-01", "2023-02", "2023-03"], freq="M")
>>> idx.to_timestamp()
DatetimeIndex(['2023-01-01', '2023-02-01', '2023-03-01'],
dtype='datetime64[us]', freq='MS')

The frequency will not be inferred if the index contains less than
three elements, or if the values of index are not strictly monotonic:

>>> idx = pd.PeriodIndex(["2023-01", "2023-02"], freq="M")
>>> idx.to_timestamp()
DatetimeIndex(['2023-01-01', '2023-02-01'], dtype='datetime64[us]', freq=None)

>>> idx = pd.PeriodIndex(
...     ["2023-01", "2023-02", "2023-02", "2023-03"], freq="2M"
... )
>>> idx.to_timestamp()
DatetimeIndex(['2023-01-01', '2023-02-01', '2023-02-01', '2023-03-01'],
dtype='datetime64[us]', freq=None)
)r>   nsusEBD)unitr   )r  r   inferdays) pandas.core.arraysr>   r   validate_end_aliasr   rV   r   to_timestampr   _get_to_timestamp_baser   r   r#   r   _period_dtype_codeasfreqperiodarr_to_dt64arrrT   r   rR   r	  rG   libalgosunique_deltaslen_n_freq
_with_freqr   ra   r   n)rU   r   r  r>   r	  r   adjust	freq_coderR   rV   new_parrnew_datadtadiffsdiffs   &&&            rL   r  PeriodArray.to_timestamp  s    j 	5**3/99>>T!TT\DDSjs{dii3."13/)AD2II((W(5>>"140yy(6676CfLL<::<I#Iq1E>>DD--d3D**D;;t;-11(--F**8>>Jxx499>>S  **4995E5zQQx::==( $		CI J QY $		CIJ..)C sxx--&tS11!$9#((**+EE $IJrN   c                   V ^8  d   QhRR/# )rF   rg   r   rJ   )rK   s   "rL   rM   rh   g  s     ? ?. ?rN   c                	D    \         P                  ! WP                  R 7      # ))r   r   )r#   _from_ordinalr   )rU   rb   s   &&rL   	_box_funcPeriodArray._box_funcg  s    ##AII>>rN   r   PeriodIndex
other_namec                    V ^8  d   QhRRRR/# )rF   r  rH   rg   r   rJ   )rK   s   "rL   rM   rh   k  s     C1 C1S C14 C1rN   c                0   \         P                  ! V4      p\        V\        4      '       d(   \	        VR4      '       d   \        V4      P                  p\        P                  ! V4      pV P                  P                  pVP                  pV P                  pVR8H  pV'       d%   WPP                  P                  ,           ^,
          pMTp\        WsWF4      pV P                   '       d   \"        WP$                  &   \        V4      p	\'        V 4      ! WR7      # )a  
Convert the {klass} to the specified frequency `freq`.

Equivalent to applying :meth:`pandas.Period.asfreq` with the given arguments
to each :class:`~pandas.Period` in this {klass}.

Parameters
----------
freq : str
    A frequency.
how : str {{'E', 'S'}}, default 'E'
    Whether the elements should be aligned to the end
    or start within pa period.

    * 'E', 'END', or 'FINISH' for end,
    * 'S', 'START', or 'BEGIN' for start.

    January 31st ('END') vs. January 1st ('START') for example.

Returns
-------
{klass}
    The transformed {klass} with the new frequency.

See Also
--------
{other}.asfreq: Convert each Period in a {other_name} to the given frequency.
Period.asfreq : Convert a :class:`~pandas.Period` object to the given frequency.

Examples
--------
>>> pidx = pd.period_range("2010-01-01", "2015-01-01", freq="Y")
>>> pidx
PeriodIndex(['2010', '2011', '2012', '2013', '2014', '2015'],
dtype='period[Y-DEC]')

>>> pidx.asfreq("M")
PeriodIndex(['2010-12', '2011-12', '2012-12', '2013-12', '2014-12',
'2015-12'], dtype='period[M]')

>>> pidx.asfreq("M", how="S")
PeriodIndex(['2010-01', '2011-01', '2012-01', '2013-01', '2014-01',
'2015-01'], dtype='period[M]')
r  r  r   )r   r  ra   r   hasattrr,   r   r#   r   r   rS   r  rT   rR   r  r%   _hasnar   r   r   )
rU   r   r  base1base2rT   r   r   r  rR   s
   &&&       rL   r  PeriodArray.asfreqj  s    \ **3/dJ''GD:N,O,Ot$--D))$/''''yySjZZ]]*Q.GG$WU@;;;$(H[[!D!Dz(00rN   c                    V ^8  d   QhRRRR/# )rF   boxedr   rg   zCallable[[object], str]rJ   )rK   s   "rL   rM   rh     s       1H rN   c                	6    V'       d   \         # R P                  # )z'{}')rH   rK   )rU   r2  s   &&rL   
_formatterPeriodArray._formatter  s    J}}rN   na_repr   date_formatc                    V ^8  d   QhRRRR/# )rF   r6  zstr | floatrg   znpt.NDArray[np.object_]rJ   )rK   s   "rL   rM   rh     s     
 
$
	 
rN   c               n    \         P                  ! V P                  V P                  P                  W4      # )z#
actually format my specific types
)r   period_array_strftimerT   rR   rS   )rU   r6  r7  kwargss   &$$,rL   _format_native_types PeriodArray._format_native_types  s,     ..IItzz--v
 	
rN   Tc                   V ^8  d   QhRR/# )rF   r   r   rJ   )rK   s   "rL   rM   rh     s     0 0$ 0rN   c                	  < \        V4      pWP                  8X  d   V'       g   V # V P                  4       # \        V\        4      '       d   V P                  VP                  4      # \        P                  ! VR 4      '       g   \        V\        4      '       dR   \        VRR4      p\        P                  ! V4      pV P                  4       P                  V4      P                  V4      # \         SV `E  WR7      # )Mr   Nr   )r*   r   r   ra   r,   r  r   r   is_np_dtyper+   getattrr   dtype_to_unitr  tz_localizeas_unitsuperastype)rU   rR   r   r   r	  	__class__s   &&&  rL   rH  PeriodArray.astype  s     U#KKyy{"e[));;uzz**??5#&&*UO*L*Ld+B$$U+D $$&2226>>tDDw~e~//rN   c               (    V ^8  d   QhRRRRRRRR/# )	rF   r   z$NumpyValueArrayLike | ExtensionArraysidezLiteral['left', 'right']sorterzNumpySorter | Nonerg   znpt.NDArray[np.intp] | np.intprJ   )rK   s   "rL   rM   rh     s8     E E3E 'E #	E
 
(ErN   c                	    V P                  V4      P                  R 4      pV P                  P                  R 4      pVP                  WBVR7      # )M8[ns])rL  rM  )_validate_setitem_valuer   r   searchsorted)rU   r   rL  rM  npvaluem8arrs   &&&&  rL   rQ  PeriodArray.searchsorted  sK     ..u5::8D ""8,!!'V!DDrN   limit
limit_areac          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rF   methodr8   rU  z
int | NonerV  z#Literal['inside', 'outside'] | Noner   r   rg   r   rJ   )rK   s   "rL   rM   rh     s>        	
 8  
rN   c               	    V P                  R 4      pVP                  WW4R7      pV'       d&   \        RVP                  V P                  4      4      # V # )rO  )rX  rU  rV  r   r   )r   _pad_or_backfillr
   rR   )rU   rX  rU  rV  r   r  rW   s   &$$$$  rL   rZ  PeriodArray._pad_or_backfill  sP     ii!%%: & 
 DJJ 788KrN   c               $    V ^8  d   QhRRRRRR/# )rF   r   znp.ndarray | intopzCallable[[Any, Any], Any]rg   r   rJ   )rK   s   "rL   rM   rh     s$     8 8%8+D8	8rN   c                   V\         P                  \         P                  39   g   Q hV\         P                  J d   V) p\        V P                  \
        P                  ! VRR7      4      p\        V 4      ! W0P                  R7      # )z
Add or subtract array of integers.

Parameters
----------
other : np.ndarray[int64] or int
op : {operator.add, operator.sub}

Returns
-------
result : PeriodArray
r   r   )	operatoraddsubr   rT   r   r   r   rR   )rU   r   r]  
res_valuess   &&& rL   _addsub_int_array_or_scalar'PeriodArray._addsub_int_array_or_scalar  s`     hllHLL1111FE%diiE1NO
Dz*JJ77rN   c                   V ^8  d   QhRR/# )rF   r   r   rJ   )rK   s   "rL   rM   rh     s     G G GrN   c                	(   \        V\        4      '       d   Q h\        V\        4      '       d)   V \        P                  ! VP
                  R 4      ,           # V P                  VRR7       V P                  VP
                  \        P                  4      # )r  T)rV   )
ra   r   r   r   timedelta64r  r   rc  r_  r`  r   s   &&rL   _add_offsetPeriodArray._add_offset  sj    eT****eS!!"..#666##E#5//FFrN   c                  < \        V P                  \        \        34      '       g   \	        W4      h\        V4      '       d   \        SV `  V4      # \        V\        4      '       d6   \        P                  ! \        VP                  R7      P                  4      pM)\        P                  ! \        V4      P                  4      pV P                  V4      # )z\
Parameters
----------
other : timedelta, Tick, np.timedelta64

Returns
-------
PeriodArray
r  )ra   r   r   r   r   r1   rG  _add_timedeltalike_scalarr   r   r   r  asm8_add_timedelta_arraylike)rU   r   tdrI  s   && rL   rk  %PeriodArray._add_timedeltalike_scalar  s     $))dC[11'44;;74U;;eS!!I5773889BIe,112B,,R00rN   c                    V ^8  d   QhRRRR/# )rF   r   z,TimedeltaArray | npt.NDArray[np.timedelta64]rg   r   rJ   )rK   s   "rL   rM   rh   4  s     #8 #8A#8	#8rN   c                   V P                   P                  4       '       g   \        RV P                    24      h\        P                   ! RV P                   P                   R24      p \        \        P                  ! V4      VRRR7      p\        T P                  \        P                  ! TP                  R4      4      4      p\        T 4      ! YPP                   R	7      #   \         d   p\        R4      ThRp?ii ; i)
zc
Parameters
----------
other : TimedeltaArray or ndarray[timedelta64]

Returns
-------
PeriodArray
z2Cannot add or subtract timedelta64[ns] dtype from m8[]FrR   r   round_okznCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freq.Nr   r   )rR   _is_tick_liker   r   
_td64_unitr   r   r   r"   r   rT   r   r   )rU   r   rR   deltaerrrb  s   &&    rL   rm  $PeriodArray._add_timedelta_arraylike4  s     zz''))DTZZLQ  3tzz445Q78
	'

5!UUE &diiEJJt<L1MN
Dz*JJ77  	 (E 	s   (#C   C<+C77C<c                "   V P                   P                  4       '       g   Q h\        P                   ! RV P                   P                   R24      p\	        V\
        \        P                  \        34      '       d+   \        P                  ! \        V4      P                  4      pM\        P                  ! V4      p \        W2RRR7      pTP                  R4      p\        P                   ! T4      #   \         d   p\        Y4      ThRp?ii ; i)a  
Arithmetic operations with timedelta-like scalars or array `other`
are only valid if `other` is an integer multiple of `self.freq`.
If the operation is valid, find that integer multiple.  Otherwise,
raise because the operation is invalid.

Parameters
----------
other : timedelta, np.timedelta64, Tick,
        ndarray[timedelta64], TimedeltaArray, TimedeltaIndex

Returns
-------
multiple : int or ndarray[int64]

Raises
------
IncompatibleFrequency
rr  rs  Frt  Nr   )rR   rv  r   rw  ra   r   rg  r   r   r   rl  r   r   r   r   r   item_from_zerodim)rU   r   rR   rn  rx  ry  s   &&    rL    _check_timedeltalike_freq_compat,PeriodArray._check_timedeltalike_freq_compatY  s    ( zz''))))3tzz445Q78ei>??Ie,112BE"B	>'eeTE 

4 $$U++	  	>'4#=	>s   =C2 2D=D		Dskipnakeepdimsc               $    V ^8  d   QhRRRRRR/# )rF   rG   rH   r  r   r  rJ   )rK   s   "rL   rM   rh     s$      $(;?rN   c               	   < \         SV `  ! V3R VRV/VB pV'       d=   \        V\        P                  4      '       d   V P                  WPP                  R7      # V# )r  r  r   )rG  _reducera   r   r   r   rR   )rU   rG   r  r  r;  rW   rI  s   &&$$, rL   r  PeriodArray._reduce  sR     RfRxR6R
62::66&&vZZ&@@rN   rJ   )r   )
start_timeend_timer   )rq   rr   rs   rt   ru   rv   
weekofyearweekdayrw   	dayofweekrx   	dayofyearry   rz   r{   r|   daysinmonth)strftimer  r  NFrQ   )NN)Nr   )Nr  )F)T)leftN)NrZ   
__module____qualname____firstlineno__r[   __array_priority___typr   r   r   _internal_fill_valuer#   _recognized_scalarsre   __annotations___infer_matchesr\   rk   rm   ro   rp   r}   r~   r   r   classmethodr   r   r   r   r   r   r   r   r   r&   rR   r   r   r   r   r]   rq   rr   rs   rt   ru   rv   r  rw   rx   r  r  r  ry   rz   r{   r|   r  rn   r  r&  r'   _shared_doc_kwargsr  r4  r<  rH  rQ  rZ  rc  rh  rk  rm  r}  r  __static_attributes____classcell__)rI  s   @rL   rD   rD   |   s   4n D88D>!)84  !N  J	*+Iy+?K?J	 & $.#;i#GyG'M9M
4: ( ( * #	*
 * *6 C=BC C
 & &(   4 4T-0     / /24O< 	D* 	E" 	C, 	D$ 	F& 	F& !	J( D!	K. IG-	 I: 	G" '	*EX $ 	#MH  K5 5$mb? 	MM]M}MC1 NC1P

',
:>
0 0,E !	
 ;? ,8*G10#8J#,P+/BG  rN   c                   V ^8  d   QhRR/# )rF   rg   r"   rJ   )rK   s   "rL   rM   rM     s     !& !&*? !&rN   c                   \        V\        P                  \        34      '       g   Vf   RpM\        V\        4      '       dZ   \
        P                  ! 4       ;_uu_ 4        \
        P                  ! RR\        R7       \        V4      P                  pRRR4       ML\        V\        \        \        34      '       d   VP                  pM\        \!        V4      4      P                  p\        V P"                  4      P                  p\$        P&                  ! \)        V 4      P*                  VXR7      p\-        V4      #   + '       g   i     Lf; i)a  
Helper function to render a consistent error message when raising
IncompatibleFrequency.

Parameters
----------
left : PeriodArray
right : None, DateOffset, Period, ndarray, or timedelta-like

Returns
-------
IncompatibleFrequency
    Exception to be raised by the caller.
NignorezPeriodDtype\[B\] is deprecated)category)r   own_freq
other_freq)ra   r   r   r0   r   warningscatch_warningsfilterwarningsFutureWarningr,   r   r.   rD   r#   r   r    r   r   r!   rK   r   rZ   r"   )r  rightr  r  msgs   &&   rL   r   r     s      %"**&7899U]
	E:	&	&$$&&##;m %U+44J	 '&
 
ENK@	A	A]]
"9U#34<<
499%..H


J(zC !%% '&s   !3D??E	c               (    V ^8  d   QhRRRRRRRR/# )	rF   r   z,Sequence[Period | str | None] | AnyArrayLiker   zstr | Tick | BaseOffset | Noner   r   rg   rD   rJ   )rK   s   "rL   rM   rM     s6     ]9 ]9
6]9
(]9 ]9 	]9rN   c                   \        V RR4      p\        P                  ! VR4      '       d   \        P	                  W4      # \        V\        4      '       d5   \        V 4      pVe$   WP                  8X  d   V# VP                  V4      # V# \        V \        P                  \        \        \        34      '       g   \        V 4      p \        P                  ! V 4      pV'       d   \        V4      pMRpVP                  P                   R8X  d   \#        V4      ^ 8  d   \%        R4      hVP                  P                   R9   dD   VP'                  \        P(                  RR7      p\*        P,                  ! Wq4      p\        WR	7      # \/        V4      p Vf   \*        P0                  ! V 4      p\        V4      p\        P3                  WR	7      # )
a  
Construct a new PeriodArray from a sequence of Period scalars.

Parameters
----------
data : Sequence of Period objects
    A sequence of Period objects. These are required to all have
    the same ``freq.`` Missing values can be indicated by ``None``
    or ``pandas.NaT``.
freq : str, Tick, or Offset
    The frequency of every element of the array. This can be specified
    to avoid inferring the `freq` from `data`.
copy : bool, default False
    Whether to ensure a copy of the data is made.

Returns
-------
PeriodArray

See Also
--------
PeriodArray
pandas.PeriodIndex

Examples
--------
>>> period_array([pd.Period("2017", freq="Y"), pd.Period("2018", freq="Y")])
<PeriodArray>
['2017', '2018']
Length: 2, dtype: period[Y-DEC]

>>> period_array([pd.Period("2017", freq="Y"), pd.Period("2018", freq="Y"), pd.NaT])
<PeriodArray>
['2017', '2018', 'NaT']
Length: 3, dtype: period[Y-DEC]

Integers that look like years are handled

>>> period_array([2000, 2001, 2002], freq="D")
<PeriodArray>
['2000-01-01', '2001-01-01', '2002-01-01']
Length: 3, dtype: period[D]

Datetime-like strings may also be passed

>>> period_array(["2000-Q1", "2000-Q2", "2000-Q3", "2000-Q4"], freq="Q")
<PeriodArray>
['2000Q1', '2000Q2', '2000Q3', '2000Q4']
Length: 4, dtype: period[Q-DEC]
rR   Nr@  rX   z9PeriodIndex does not allow floating point in constructioniuFrA  r   )rC  r   rB  rD   r   ra   r,   r   r  r   r   r   tupler/   r   rR   kindr  r   rH  r   r   from_ordinalsr)   r   r   )	r   r   r   
data_dtypeoutarrdatarR   arrr   s	   &&&      rL   period_arrayr    sg   n w-J
z3''++D77*k**$&
::d##
 dRZZui@AADzjjG D!}}S S\A%5STT}}T!nnRXXEn2 **35811!D|%%d+E%%d%88rN   c                    V ^8  d   QhRRRR/# )rF   r   rA   rg   rJ   )rK   s   "rL   rM   rM     s     E E[ E[ ErN   c                    R # rQ   rJ   r   s   &&rL   r   r     s    BErN   c                    V ^8  d   QhRRRR/# )rF   r   ztimedelta | str | Nonerg   r   rJ   )rK   s   "rL   rM   rM     s     O O%; O
 OrN   c                    R # rQ   rJ   r   s   &&rL   r   r     s    LOrN   c                    V ^8  d   QhRRRR/# )rF   r   z1BaseOffsetT | BaseOffset | timedelta | str | Nonerg   rA   rJ   )rK   s   "rL   rM   rM     s     " "B""rN   c                    Ve   \        VRR7      pV eZ   \        V 4      p \        V \        4      '       g   \	        R4      hVf   V P
                  pV# WP
                  8w  d   \        R4      hV# )a<  
If both a dtype and a freq are available, ensure they match.  If only
dtype is available, extract the implied freq.

Parameters
----------
dtype : dtype
freq : DateOffset or None

Returns
-------
freq : DateOffset

Raises
------
ValueError : non-period dtype
IncompatibleFrequency : mismatch between dtype and freq
T	is_periodzdtype must be PeriodDtypez&specified freq and dtype are different)r   r*   ra   r,   r   r   r"   r   s   &&rL   r   r     ss    * .U#%--899<::D
 K	 ZZ'(PQQ KrN   c                   V ^8  d   QhRR/# )rF   rg   z(tuple[npt.NDArray[np.int64], BaseOffset]rJ   )rK   s   "rL   rM   rM   ?  s     %N %N-%NrN   c                   \        V P                  \        P                  4      '       d   V P                  P                  R8w  d   \	        RV P                   24      hVfg   \        V \
        4      '       d   V P                  V P                  rM`\        V \        4      '       d"   V P                  V P                  P                  rM(\        V \
        \        34      '       d   V P                  p \        V P                  4      p\        P                  ! V4      pVP                  p\        V P                  R4      WBVR7      V3# )a  
Convert a datetime-like array to values Period ordinals.

Parameters
----------
data : Union[Series[datetime64[ns]], DatetimeIndex, ndarray[datetime64ns]]
freq : Optional[Union[str, Tick]]
    Must match the `freq` on the `data` if `data` is a DatetimeIndex
    or Series.
tz : Optional[tzinfo]

Returns
-------
ordinals : ndarray[int64]
freq : Tick
    The frequency extracted from the Series or DatetimeIndex if that's
    used.

r@  zWrong dtype: r   )reso)ra   rR   r   r  r   r-   r   r   r/   dtr   r#   r   r  c_dt64arr_to_periodarrr   )r   r   r   r  rV   s   &&&  rL   r   r   ?  s    , djj"((++tzz#/E=566|dH%%tyy$i((tww||$	D8Y/	0	0||tzz*D%%d+D""D!$))D/4$GMMrN   c                   V ^8  d   QhRR/# )rF   multintrJ   )rK   s   "rL   rM   rM   g  s     . . .rN   c                   \         P                  ! WV4      ^8w  d   \        R4      hVe   \        VRR7      pVP                  pV e   \        W4      p Ve   \        W4      p\        V \
        4      p\        V\
        4      pV'       d/   V'       d'   V P                  VP                  8w  d   \        R4      hV \        J g   V\        J d   \        R4      hVfB   V'       d   V P                  pM V'       d   VP                  pM\        R4      hVP                  pVe   W$,          pV fU   \        P                  ! VP                  V,
          V,           VP                  ^,           V\        P                  R7      pWs3# \        P                  ! V P                  V P                  V,           V\        P                  R7      p Ws3# \        P                  ! V P                  VP                  ^,           V\        P                  R7      pWs3# )rF   zOOf the three parameters: start, end, and periods, exactly two must be specifiedTr  z!start and end must have same freqzstart and end must not be NaTz#Could not infer freq from start/endr   )comcount_not_noner   r   r  r#   ra   r   r   r   aranger   r   )r   r   r   r   r  is_start_per
is_end_perr   s   &&&&&   rL   r   r   g  s   
%g.!3,
 	

 .vvu#
SeV,LC(J
uzzSXX'=<==|scz899|::D88DBCCvv.=99g%,ckkAot288D : 99u}}w6BHHD : yyaRXXN:rN   c                   V ^8  d   QhRR/# )rF   rg   ztuple[np.ndarray, BaseOffset]rJ   )rK   s   "rL   rM   rM     s     .4 .4 #.4rN   c                   Vf   ^ pVf   ^ pVf   ^ pVf   ^p. pVEe   Vf7   \        RRR7      p\        \        \        P                  P
                  4      p	M[\        VRR7      p\        P                  ! V4      p	V	\        \        \        P                  P
                  4      8w  d   \        R4      hVP                  p
\        W4      w  r\        WRR7       FL  w  r\        P                  ! WV
4      w  r\        P                  ! W^^^^^ ^ V	4	      pVP                  V4       KN  	  Mv\        VRR7      p\        P                  ! V4      p	\        WW4WV4      p\        VRR/  F7  w  ppppppVP                  \        P                  ! VVVVVV^ ^ V	4	      4       K9  	  \         P"                  ! V\         P$                  R7      V3# )NQTr  zbase must equal FR_QTR)strictr  r   )r   r
   r  r   FR_QTRr   r   freq_to_dtype_codeAssertionErrorr   _make_field_arrayszipr   quarter_to_myearperiod_ordinalappendr   r   r   )rq   rr   rz   rs   rt   ru   rv   r   r   rV   r   yqcalendar_yearcalendar_monthvalarraysmthdhmnss   &&&&&&&&              rL   r   r     s    |~~
{H<SD1DY--334DTT2D//5DtC!1!1!7!788$%=>>,,*49d3DA,3,D,DQ7,S)M**q!Q1aC OOC  4 .++D1#DFK#&#<t#<AsAq"aOOI44QQ2q!QPTUV $= 88HBHH-t33rN   c                   V ^8  d   QhRR/# )rF   rg   zlist[np.ndarray]rJ   )rK   s   "rL   rM   rM     s      #3 rN   c            	        R pV  F`  p\        V\        \        P                  \        34      '       g   K0  Ve   \        V4      V8w  d   \        R4      hVe   KU  \        V4      pKb  	  V  Uu. uFZ  p\        V\        P                  \        \        34      '       d   \        P                  ! V4      M\        P                  ! W!4      NK\  	  up# u upi )NzMismatched Period array lengths)	ra   r   r   r   r/   r  r   r   repeat)r   lengthrb   s   *  rL   r  r    s    Fa$

I677!c!f&6 !BCC~Q    A !bjj$	:;; JJqM1%&   s   -A CrQ   r  )   )NNNNNNNN)i
__future__r   datetimer   r_  typingr   r   r   r   r	   r
   r   r  numpyr   pandas._libsr   r  r   pandas._libs.arraysr   pandas._libs.tslibsr   r   r   r   r   r   r   r   r  r   r   r   r   r   r   pandas._libs.tslibs.dtypesr   r   pandas._libs.tslibs.fieldsr   pandas._libs.tslibs.offsetsr   r    pandas._libs.tslibs.periodr!   r"   r#   r$   r%   pandas.util._decoratorsr&   r'   r(   pandas.core.dtypes.commonr)   r*   pandas.core.dtypes.dtypesr+   r,   pandas.core.dtypes.genericr-   r.   r/   r0   pandas.core.dtypes.missingr1   r  r2   r   pandas.core.commoncorecommonr  collections.abcr3   r4   pandas._typingr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   pandas.core.arrays.baser@   rA   r  r]   DatelikeOpsPeriodMixinrD   r   r  r   r   r   r  rJ   rN   rL   <module>r     sK   "       .    6    , 2    
	 	 	 9 7 m:6 ] 
 OH#//9#8#8 H HV !&P]9@ 
 E 
 E 
 O 
 O"J%NP.b.4brN   