ó
    Ò]jmH  ã                  ó¨  • S SK Jr  S SKJr  S SKrS SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJrJrJrJrJr  S SKJr  S S	KJrJr  S S
KJrJrJr  S SKJr  S SK J!r!J"r"  S SK#J$r$  S SK%J&r&J'r'J(r(  S SK)J*r*J+r+  S SK,J-r-  \(       a  S SK.J/r/  S SK0J1r1J2r2J3r3  S SK4J5r5  / SQr6\6 H  r7\ H  r8\7 S\8 3r9\\7   \\9'   M     M     S H  r7\ H  r8\7 S\8 3r:\:\\:'   M     M     \ H  r;S\; 3\S\; 3'   M     S*S jr<\"" S5          S+S j5       r= " S S5      r> " S S\>5      r?S,S jr@S-S  jrAS.S! jrBS.S" jrCS/S# jrDS0S$ jrES1S% jrFS1S& jrGS1S' jrHS1S( jrI/ S)QrJg)2é    )Úannotations)ÚTYPE_CHECKINGN)Úlib)Úunique_deltas)Ú	TimestampÚget_unit_from_dtypeÚperiods_per_dayÚtz_convert_from_utc)ÚDAYSÚMONTH_ALIASESÚMONTH_NUMBERSÚMONTHSÚint_to_weekday)ÚOFFSET_TO_PERIOD_FREQSTR)Úbuild_field_sarrayÚmonth_position_check)Ú
DateOffsetÚDayÚ	to_offset)Úget_rule_month)Úcache_readonlyÚ
set_module)Úis_numeric_dtype)Ú
ArrowDtypeÚDatetimeTZDtypeÚPeriodDtype)ÚABCIndexÚ	ABCSeries)Úunique)Únpt)ÚDatetimeIndexÚSeriesÚTimedeltaIndex)ÚDatetimeLikeArrayMixin)ÚQSÚBQEÚBQSÚYSÚBYEÚBYSÚ-)ÚYÚQúW-c                ó0   • [         R                  " U S5      $ )z,
Alias to closest period strings BQ->Q etc.
N)r   Úget)Ú
offset_strs    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/tseries/frequencies.pyÚget_period_aliasr3   O   s   € ô $×'Ò'¨
°DÓ9Ð9ó    Úpandasc                óÆ  • SSK Jn  [        U [        5      (       aæ  U R                  n[        U R
                  [        5      (       aH  SSKnUR                  R                  UR
                  R                  5      (       a  UR                  5       n[        R                  " UR
                  S5      (       dK  [        UR
                  [        5      (       d,  UR
                  [        :X  d  [!        SU R
                   35      eUn [#        U S5      (       d  O�[        U R
                  [$        5      (       a  [!        S5      e[        R                  " U R
                  S5      (       a  ['        U 5      nUR)                  5       $ [+        U R
                  5      (       a  [!        S	U R
                   35      e[        X5      (       d  U" U S
S9n [-        U 5      nUR)                  5       $ )a0  
Infer the most likely frequency given the input index.

This method attempts to deduce the most probable frequency (e.g., 'D' for daily,
'H' for hourly) from a sequence of datetime-like objects. It is particularly useful
when the frequency of a time series is not explicitly set or known but can be
inferred from its values.

Parameters
----------
index : DatetimeIndex, TimedeltaIndex, Series or array-like
  If passed a Series will use the values of the series (NOT THE INDEX).

Returns
-------
str or None
    None if no discernible frequency.

Raises
------
TypeError
    If the index is not datetime-like.
ValueError
    If there are fewer than three values.

See Also
--------
date_range : Return a fixed frequency DatetimeIndex.
timedelta_range : Return a fixed frequency TimedeltaIndex with day as the default.
period_range : Return a fixed frequency PeriodIndex.
DatetimeIndex.freq : Return the frequency object if it is set, otherwise None.

Examples
--------
>>> idx = pd.date_range(start="2020/12/01", end="2020/12/30", periods=30)
>>> pd.infer_freq(idx)
'D'
r   )r!   NÚmMz>cannot infer freq from a non-convertible dtype on a Series of ÚdtypezJPeriodIndex given. Check the `freq` attribute instead of using infer_freq.Úmz8cannot infer freq from a non-convertible index of dtype F)Úcopy)Úpandas.core.apir!   Ú
isinstancer   Ú_valuesr8   r   ÚpyarrowÚtypesÚis_timestampÚpyarrow_dtypeÚ_to_datetimearrayr   Úis_np_dtyper   ÚobjectÚ	TypeErrorÚhasattrr   Ú_TimedeltaFrequencyInfererÚget_freqr   Ú_FrequencyInferer)Úindexr!   ÚvaluesÚpaÚinferers        r2   Ú
infer_freqrN   Z   sy  € õT .ä�%œ×#Ñ#Ø—‘ˆä�e—k‘k¤:×.Ñ.Û à�x‰x×$Ñ$ V§\¡\×%?Ñ%?×@Ñ@à×1Ñ1Ó3�ô �OŠO˜FŸL™L¨$×/Ñ/Ü˜&Ÿ,™,¬×8Ñ8Ø�|‰|œvÓ%äð"Ø"'§+¡+ ð0óð ð ˆô �5˜'×"Ñ"ØÜ	�E—K‘K¤×	-Ñ	-ÜØXó
ð 	
ô 
�Š˜Ÿ™ c×	*Ñ	*ä,¨UÓ3ˆØ×ÑÓ!Ð!ä	˜%Ÿ+™+×	&Ñ	&ÜØFÀuÇ{Á{ÀmÐTó
ð 	
ô �e×+Ñ+Ù˜e¨%Ñ0ˆä Ó&€GØ×ÑÓÐr4   c                  óD  • \ rS rSrSrSS jr\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
SS jr\SS	 j5       r\SS
 j5       r\SS j5       r\SS j5       rSS jr\SS j5       r\SS j5       rSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrg) rI   é´   z0
Not sure if I can avoid the state machine here
c                ó>  • Xl         UR                  U l        [        U[        5      (       a/  [        UR                  R                  R                  5      U l	        O$[        UR                  R                  5      U l	        [        US5      (       a;  UR                  b.  [        U R                  UR                  U R                  S9U l        [        U5      S:  a  [        S5      eU R                   R                  =(       d    U R                   R                   U l        g )NÚtz©Úresoé   z(Need at least 3 dates to infer frequency)rJ   Úasi8Úi8valuesr<   r   r   Ú_dataÚ_ndarrayr8   Ú_cresorF   rR   r
   ÚlenÚ
ValueErrorÚ_is_monotonic_increasingÚ_is_monotonic_decreasingÚis_monotonic)ÚselfrJ   s     r2   Ú__init__Ú_FrequencyInferer.__init__¹   sÑ   € ØŒ
ØŸ
™
ˆŒô �eœX×&Ñ&ô .Ø—‘×$Ñ$×*Ñ*óˆD�Kô
 .¨e¯n©n×.BÑ.BÓCˆDŒKô �5˜$×ÑØ�x‰xÑ#Ü 3Ø—M‘M 5§8¡8°$·+±+ñ!�”ô ˆu‹:˜‹>ÜÐGÓHÐHð �J‰J×/Ñ/×V°4·:±:×3VÑ3Vð 	Õr4   c                ó,   • [        U R                  5      $ ©N)r   rW   ©r`   s    r2   ÚdeltasÚ_FrequencyInferer.deltasØ   s   € ä˜TŸ]™]Ó+Ð+r4   c                ó@   • [        U R                  R                  5      $ rd   )r   rJ   rV   re   s    r2   Údeltas_asi8Ú_FrequencyInferer.deltas_asi8Ü   s   € ô ˜TŸZ™ZŸ_™_Ó-Ð-r4   c                ó2   • [        U R                  5      S:H  $ ©Né   )r[   rf   re   s    r2   Ú	is_uniqueÚ_FrequencyInferer.is_uniqueâ   s   € ä�4—;‘;Ó 1Ñ$Ð$r4   c                ó2   • [        U R                  5      S:H  $ rl   )r[   ri   re   s    r2   Úis_unique_asi8Ú _FrequencyInferer.is_unique_asi8æ   s   € ä�4×#Ñ#Ó$¨Ñ)Ð)r4   c                óâ  • U R                   (       a  U R                  R                  (       d  gU R                  S   n[	        U R
                  5      nU(       a   [        X5      (       a  U R                  5       $ U R                  SS/SS// SQ4;   a  gU R                  (       d  gU R                  S   nUS-  nUS	-  nUS	-  n[        X5      (       a  [        S
X-  5      $ [        X5      (       a  [        SX-  5      $ [        X5      (       a  [        SX-  5      $ [        XS-  5      (       a  [        SXS-  -  5      $ [        XS-  5      (       a  [        SXS-  -  5      $ [        SU5      $ )zx
Find the appropriate frequency string to describe the inferred
frequency of self.i8values

Returns
-------
str or None
Nr   rm   é   éA   )rm   rt   ru   Úbhé   é<   ÚhÚminÚsiè  Úmsi@B ÚusÚns)r_   rJ   Ú
_is_uniquerf   r	   rZ   Ú_is_multipleÚ_infer_daily_ruleÚhour_deltasrq   ri   Ú_maybe_add_count)r`   ÚdeltaÚppdÚpphÚppmÚppss         r2   rH   Ú_FrequencyInferer.get_freqê   sS  € ð × × ¨¯
©
×(=×(=Øà—‘˜A‘ˆÜ˜dŸk™kÓ*ˆÞ”\ %×-Ñ-Ø×)Ñ)Ó+Ð+ð ×Ñ  B ¨!¨R¨²+Ð>Ó>Øð
 ×"×"Øà× Ñ  Ñ#ˆØ�R‰iˆØ�R‰iˆØ�R‰iˆÜ˜×#Ñ#ä# C¨©Ó5Ð5Ü˜%×%Ñ%ä# E¨5©;Ó7Ð7Ü˜%×%Ñ%ä# C¨©Ó5Ð5Ü˜%¨¡+×/Ñ/ä# D¨%¸$±;Ñ*?Ó@Ð@Ü˜%¨Ñ"2×4Ñ4ä# D¨%¸)Ñ3CÑ*DÓEÐEô $ D¨%Ó0Ð0r4   c                ót   • [        U R                  5      nU R                   Vs/ s H  o"U-  PM	     sn$ s  snf rd   ©r	   rZ   rf   )r`   r…   Úxs      r2   Ú
day_deltasÚ_FrequencyInferer.day_deltas  s.   € ä˜dŸk™kÓ*ˆØ!%§¢Ó-¢˜A�C”¡Ñ-Ð-ùÒ-s   ¤5c                óz   • [        U R                  5      S-  nU R                   Vs/ s H  o"U-  PM	     sn$ s  snf )Nrw   r‹   )r`   r†   rŒ   s      r2   r‚   Ú_FrequencyInferer.hour_deltas!  s3   € ä˜dŸk™kÓ*¨bÑ0ˆØ!%§¢Ó-¢˜A�C”¡Ñ-Ð-ùÒ-s   §8c                ó>   • [        U R                  U R                  S9$ )NrS   )r   rW   rZ   re   s    r2   ÚfieldsÚ_FrequencyInferer.fields&  s   € ä! $§-¡-°d·k±kÑBÐBr4   c                óX   • [        U R                  S   U R                  R                  S9$ )Nr   )Úunit)r   rW   rJ   r•   re   s    r2   Ú	rep_stampÚ_FrequencyInferer.rep_stamp*  s    € ä˜Ÿ™ qÑ)°·
±
·±Ñ@Ð@r4   c                óV   • [        U R                  U R                  R                  5      $ rd   )r   r’   rJ   Ú	dayofweekre   s    r2   r   Ú&_FrequencyInferer.month_position_check.  s   € Ü# D§K¡K°·±×1EÑ1EÓFÐFr4   c                óz   • U R                   S   S-  U R                   S   -   n[        UR                  S5      5      $ )Nr,   é   ÚMÚi8)r’   r   Úastype)r`   Únmonthss     r2   ÚmdiffsÚ_FrequencyInferer.mdiffs1  s7   € à—+‘+˜cÑ" RÑ'¨$¯+©+°cÑ*:Ñ:ˆÜ˜WŸ^™^¨DÓ1Ó2Ð2r4   c                óP   • [        U R                  S   R                  S5      5      $ )Nr,   rž   )r   r’   rŸ   re   s    r2   ÚydiffsÚ_FrequencyInferer.ydiffs6  s!   € ä˜TŸ[™[¨Ñ-×4Ñ4°TÓ:Ó;Ð;r4   c                ór  • U R                  5       nU(       a>  U R                  S   n[        U R                  R                     nU SU 3n[        XB5      $ U R                  5       nU(       aL  U R                  S   S-  nSSSS.n[        XpR                  R                  S-        nU SU 3n[        XF5      $ U R                  5       nU(       a  [        X€R                  S   5      $ U R                  (       a  U R                  5       $ U R                  5       (       a  gU R                  5       n	U	(       a  U	$ g )	Nr   r+   rU   rœ   é   é
   )r   é   rm   ÚB)Ú_get_annual_ruler¤   r   r–   Úmonthrƒ   Ú_get_quarterly_ruler¡   Ú_get_monthly_rulern   Ú_get_daily_ruleÚ_is_business_dailyÚ_get_wom_rule)
r`   Úannual_ruleÚnyearsr¬   ÚaliasÚquarterly_ruleÚ	nquartersÚmod_dictÚmonthly_ruleÚwom_rules
             r2   r�   Ú#_FrequencyInferer._infer_daily_rule:  s  € Ø×+Ñ+Ó-ˆÞØ—[‘[ ‘^ˆFÜ! $§.¡.×"6Ñ"6Ñ7ˆEØ"�m 1 U GÐ,ˆEÜ# EÓ2Ð2à×1Ñ1Ó3ˆÞØŸ™ A™¨Ñ*ˆIØ "¨Ñ,ˆHÜ! (¯>©>×+?Ñ+?À!Ñ+CÑ"DÑEˆEØ%Ð& a¨ wÐ/ˆEÜ# EÓ5Ð5à×-Ñ-Ó/ˆÞÜ# L·+±+¸a±.ÓAÐAà�>�>Ø×'Ñ'Ó)Ð)à×"Ñ"×$Ñ$Øà×%Ñ%Ó'ˆÞØˆOàr4   c                óâ   • [        U R                  5      nU R                  S   U-  nUS-  S:X  a4  [        U R                  R                  5          nSU 3n[        XBS-  5      $ [        SU5      $ )Nr   é   r.   ÚD)r	   rZ   rf   r   r–   Úweekdayrƒ   )r`   r…   ÚdaysÚwdr´   s        r2   r¯   Ú!_FrequencyInferer._get_daily_ruleZ  sk   € Ü˜dŸk™kÓ*ˆØ�{‰{˜1‰~ Ñ#ˆØ�!‰8�q‹=ä §¡× 6Ñ 6Ó 8Ñ9ˆBØ˜˜�IˆEÜ# E°!©8Ó4Ð4ä# C¨Ó.Ð.r4   c                óÖ   • [        U R                  5      S:”  a  g [        [        U R                  S   5      5      S:”  a  g U R	                  5       nUc  g SSSSS.R                  U5      $ )Nrm   r�   r(   r*   ÚYEr)   ©ÚcsÚbsÚceÚbe)r[   r¤   r   r’   r   r0   ©r`   Ú	pos_checks     r2   r«   Ú"_FrequencyInferer._get_annual_rulee  se   € Üˆt�{‰{Ó˜aÓØäŒv�d—k‘k #Ñ&Ó'Ó(¨1Ó,Øà×-Ñ-Ó/ˆ	àÑØà e°4¸uÑE×IÑIÈ)ÓTÐTr4   c                ó¸   • [        U R                  5      S:”  a  g U R                  S   S-  S:X  d  g U R                  5       nUc  g SSSSS.R                  U5      $ )	Nrm   r   rU   r%   r'   ÚQEr&   rÄ   ©r[   r¡   r   r0   rÉ   s     r2   r­   Ú%_FrequencyInferer._get_quarterly_rules  s_   € Üˆt�{‰{Ó˜aÓØà�{‰{˜1‰~ Ñ! QÓ&Øà×-Ñ-Ó/ˆ	àÑØà e°4¸uÑE×IÑIÈ)ÓTÐTr4   c                óŠ   • [        U R                  5      S:”  a  g U R                  5       nUc  g SSSSS.R                  U5      $ )Nrm   ÚMSÚBMSÚMEÚBMErÄ   rÎ   rÉ   s     r2   r®   Ú#_FrequencyInferer._get_monthly_rule�  sG   € Üˆt�{‰{Ó˜aÓØØ×-Ñ-Ó/ˆ	àÑØà e°4¸uÑE×IÑIÈ)ÓTÐTr4   c                óÈ  • U R                   SS/:w  a  gU R                  S   R                  5       n[        R                  " U R
                  5      n[        U R                  5      n[        R                  " X#5      n[        R                  " U[        R                  " U5      -   S5      n[        [        R                  " US:H  US:H  -  US:„  US:*  -  US:H  -  -  5      5      $ )Nrm   rU   Fr   r¼   é   )r�   rJ   r¾   ÚnpÚdiffrW   r	   rZ   Úfloor_divideÚmodÚcumsumÚboolÚall)r`   Úfirst_weekdayÚshiftsr…   Úweekdayss        r2   r°   Ú$_FrequencyInferer._is_business_daily‹  sÁ   € à�?‰?˜q !˜fÓ$Øð Ÿ
™
 1™×-Ñ-Ó/ˆÜ—’˜Ÿ™Ó'ˆÜ˜dŸk™kÓ*ˆÜ—’ Ó-ˆÜ—6’6˜-¬"¯)ª)°FÓ*;Ñ;¸QÓ?ˆäÜ�FŠFØ˜a‘- F¨a¡KÑ0Ø˜q‘L X°¡]Ñ3°vÀ±{ÑCñEóó
ð 	
r4   c                ó,  • [        U R                  R                  5      n[        U5      S:”  a  g [        U R                  R                  S-
  S-  5      nX"S:     n[        U5      S:X  d  [        U5      S:”  a  g US   S-   n[
        US      nSU U 3$ )Nrm   r¼   r×   r   zWOM-)r   rJ   r¾   r[   Údayr   )r`   rá   Úweek_of_monthsÚweekrÀ   s        r2   r±   Ú_FrequencyInferer._get_wom_rulež  sš   € Ü˜$Ÿ*™*×,Ñ,Ó-ˆÜˆx‹=˜1ÓØä §¡§¡°!Ñ!3¸Ñ 9Ó:ˆà'¸Ñ(:Ñ;ˆÜˆ~Ó !Ó#¤s¨>Ó':¸QÓ'>Øð ˜aÑ  1Ñ$ˆÜ˜H Q™KÑ(ˆà�d�V˜B˜4Ð Ð r4   )rZ   rW   rJ   r_   N)ÚreturnÚNone)rè   znpt.NDArray[np.int64]©rè   rÝ   )rè   ú
str | None)rè   z	list[int])rè   z
np.ndarray)rè   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ra   r   rf   ri   rn   rq   rH   r�   r‚   r’   r–   r   r¡   r¤   r�   r¯   r«   r­   r®   r°   r±   Ú__static_attributes__© r4   r2   rI   rI   ´   s  † ñô
ð> ó,ó ð,ð ó.ó ð.ð
 ó%ó ð%ð ó*ó ð*ô01ðd ó.ó ð.ð ó.ó ð.ð óCó ðCð óAó ðAôGð ó3ó ð3ð ó<ó ð<ôô@	/ôUôUôUô
÷&!r4   rI   c                  ó   • \ rS rSrS rSrg)rG   i°  c                óF   • U R                   (       a  U R                  5       $ g rd   )rn   r¯   re   s    r2   r�   Ú,_TimedeltaFrequencyInferer._infer_daily_rule±  s   € Ø�>�>Ø×'Ñ'Ó)Ð)ð r4   rò   N)rì   rí   rî   rï   r�   rñ   rò   r4   r2   rG   rG   °  s   † õ*r4   rG   c                ó   • X-  S:H  $ )Nr   rò   )r}   Úmults     r2   r€   r€   ¶  s   € Ø‰9˜‰>Ðr4   c                óV   • US:w  a"  U[        U5      :X  d   e[        U5      nU U  3$ U $ rl   )Úint)ÚbaseÚcounts     r2   rƒ   rƒ   º  s8   € Ø�ƒzØœ˜E›
Ó"Ð"Ð"Ü�E“
ˆØ�˜˜ÐÐàˆr4   c                ó  • Ub  U c  g[        U 5      n [        U5      n[        U5      (       a3  [        U 5      (       a  [        [	        U 5      [	        U5      5      $ U S;   $ [        U5      (       a  U S;   $ [        U5      (       a  U S;   $ [        U5      (       a  XSSSSSS	S
SS1
;   $ US:X  a  U S;   $ US:X  a  U S;   $ US:X  a  U S;   $ US:X  a  U S;   $ US:X  a  U S;   $ US	:X  a  U S;   $ US
:X  a  U S;   $ US:X  a  U S;   $ US:X  a  U S;   $ g)zí
Returns True if downsampling is possible between source and target
frequencies

Parameters
----------
source : str or DateOffset
    Frequency converting from
target : str or DateOffset
    Frequency converting to

Returns
-------
bool
F>
   rª   ÚCr½   r�   ry   r{   r|   r~   r}   rz   >	   rª   rý   r½   ry   r{   r|   r~   r}   rz   r½   rý   rª   ry   rz   r{   r|   r}   r~   >   rª   ry   r{   r|   r~   r}   rz   >   rý   ry   r{   r|   r~   r}   rz   >   r½   ry   r{   r|   r~   r}   rz   >   ry   r{   r|   r~   r}   rz   >   r{   r|   r~   r}   rz   >   r{   r|   r~   r}   >   r|   r~   r}   >   r~   r}   >   r~   )Ú_maybe_coerce_freqÚ
_is_annualÚ_is_quarterlyÚ_quarter_months_conformr   Ú_is_monthlyÚ
_is_weekly)ÚsourceÚtargets     r2   Úis_subperiodr  Ç  sg  € ð  �~˜™ØÜ Ó'€FÜ Ó'€Fä�&×ÑÜ˜× Ñ Ü*Ü˜vÓ&¬°vÓ(>óð ð ÐPÑPÐPÜ	�v×	Ñ	ØÐPÑPÐPÜ	�V×	Ñ	ØÐKÑKÐKÜ	�F×	Ñ	Ø # s¨C°°e¸SÀ$ÈÈdÐSÑSÐSØ	�3‹ØÐAÑAÐAØ	�3‹ØÐAÑAÐAØ	�3‹ØÐAÑAÐAØ	�3‹ØÐ<Ñ<Ð<Ø	�5‹ØÐ7Ñ7Ð7Ø	�3‹ØÐ0Ñ0Ð0Ø	�4‹ØÐ+Ñ+Ð+Ø	�4‹Ø˜Ñ%Ð%Ø	�4‹Ø˜ÑÐàr4   c                ón  • Ub  U c  g[        U 5      n [        U5      n[        U 5      (       a]  [        U5      (       a  [        U 5      [        U5      :H  $ [        U5      (       a!  [        U 5      n[        U5      n[	        X#5      $ US;   $ [        U 5      (       a  US;   $ [        U 5      (       a  US;   $ [        U 5      (       a  XSSSSSS	S
SS1
;   $ U S:X  a  US;   $ U S:X  a  US;   $ U S:X  a  US;   $ U S:X  a  US;   $ U S:X  a  US;   $ U S	:X  a  US;   $ U S
:X  a  US;   $ U S:X  a  US;   $ U S:X  a  US;   $ g)zë
Returns True if upsampling is possible between source and target
frequencies

Parameters
----------
source : str or DateOffset
    Frequency converting from
target : str or DateOffset
    Frequency converting to

Returns
-------
bool
F>
   rª   rý   r½   r�   ry   r{   r|   r~   r}   rz   >	   rª   rý   r½   ry   r{   r|   r~   r}   rz   r½   rý   rª   ry   rz   r{   r|   r}   r~   >   ry   r{   r|   r~   r}   rz   >   r{   r|   r~   r}   rz   >   r{   r|   r~   r}   >   r|   r~   r}   >   r~   r}   >   r~   )rþ   rÿ   r   r   r  r  r  )r  r  ÚsmonthÚtmonths       r2   Úis_superperiodr
  þ  sˆ  € ð  �~˜™ØÜ Ó'€FÜ Ó'€Fä�&×ÑÜ�f×ÑÜ! &Ó)¬^¸FÓ-CÑCÐCä˜× Ñ Ü# FÓ+ˆFÜ# FÓ+ˆFÜ*¨6Ó:Ð:ØÐPÑPÐPÜ	�v×	Ñ	ØÐPÑPÐPÜ	�V×	Ñ	ØÐKÑKÐKÜ	�F×	Ñ	Ø # s¨C°°e¸SÀ$ÈÈdÐSÑSÐSØ	�3‹ØÐKÑKÐKØ	�3‹ØÐKÑKÐKØ	�3‹ØÐKÑKÐKØ	�3‹ØÐ<Ñ<Ð<Ø	�5‹ØÐ7Ñ7Ð7Ø	�3‹ØÐ0Ñ0Ð0Ø	�4‹ØÐ+Ñ+Ð+Ø	�4‹Ø˜Ñ%Ð%Ø	�4‹Ø˜ÑÐàr4   c                ó¶   • U c   e[        U [        5      (       a(  [        [        U R                  5      5      R
                  n U S;   a  U $ U R                  5       $ )z¤we might need to coerce a code to a rule_code
and uppercase it

Parameters
----------
source : str or DateOffset
    Frequency converting from

Returns
-------
str
>   ry   r{   r|   r~   r}   rz   )r<   r   r   r   ÚnameÚ_freqstrÚupper)Úcodes    r2   rþ   rþ   8  sP   € ð ÑÐÐÜ�$œ
×#Ñ#Üœ9 T§Y¡YÓ/Ó0×9Ñ9ˆØÐ2Ó2Øˆà�z‰z‹|Ðr4   c                ó<   • [         U    n[         U   nUS-  US-  :H  $ )NrU   )r   )r  r  ÚsnumÚtnums       r2   r  r  N  s)   € Ü˜Ñ €DÜ˜Ñ €DØ�!‰8�t˜a‘xÑÐr4   c                ó\   • U R                  5       n U S:H  =(       d    U R                  S5      $ )Nr,   zY-©r  Ú
startswith©Úrules    r2   rÿ   rÿ   T  ó%   € Ø�:‰:‹<€DØ�3‰;×/˜$Ÿ/™/¨$Ó/Ð/r4   c                ó\   • U R                  5       n U S:H  =(       d    U R                  S5      $ )Nr-   )zQ-ÚBQr  r  s    r2   r   r   Y  s%   € Ø�:‰:‹<€DØ�3‰;×7˜$Ÿ/™/¨,Ó7Ð7r4   c                ó,   • U R                  5       n U S;   $ )N)r�   ÚBM)r  r  s    r2   r  r  ^  s   € Ø�:‰:‹<€DØ�;ÑÐr4   c                ó\   • U R                  5       n U S:H  =(       d    U R                  S5      $ )NÚWr.   r  r  s    r2   r  r  c  r  r4   )r   r3   rN   r  r
  r   )r1   Ústrrè   rë   )rJ   z@DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixinrè   rë   )r÷   rù   rè   rÝ   )rú   r  rû   Úfloatrè   r  rê   )rè   r  )r  r  r  r  rè   rÝ   )r  r  rè   rÝ   )KÚ
__future__r   Útypingr   ÚnumpyrØ   Úpandas._libsr   Úpandas._libs.algosr   Úpandas._libs.tslibsr   r   r	   r
   Úpandas._libs.tslibs.ccalendarr   r   r   r   r   Úpandas._libs.tslibs.dtypesr   Úpandas._libs.tslibs.fieldsr   r   Úpandas._libs.tslibs.offsetsr   r   r   Úpandas._libs.tslibs.parsingr   Úpandas.util._decoratorsr   r   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.dtypesr   r   r   Úpandas.core.dtypes.genericr   r   Úpandas.core.algorithmsr   Úpandas._typingr    r5   r!   r"   r#   Úpandas.core.arrays.datetimeliker$   Ú_need_suffixÚ_prefixÚ_mÚkeyÚ_aliasÚ_dr3   rN   rI   rG   r€   rƒ   r  r
  rþ   r  rÿ   r   r  r  Ú__all__rò   r4   r2   Ú<module>r:     s�  ðÝ "å  ã å Ý ,÷ó ÷õ õ @÷÷ñ õ
 7÷õ
 7÷ñ ÷
õ
 *æÝ"÷ñ õ
 Gò 8€ã€GÛˆØ�	˜˜2˜$ÐˆØ(@ÀÑ(IÐ  Ó%ó ñ ó
 €GÛˆØ�9˜A˜b˜TÐ"ˆØ+1Ð  Ó(ó ñ ó
 €BØ,.¨r¨d¨)Ð˜r " ˜YÓ'ñ ô:ñ ˆHÓðVØKðVàóVó ðV÷ry!ñ y!ôx*Ð!2ô *ôôô4ôn7ôtô, ô0ô
8ô
ô
0ò
�r4   