§
    ªöÉgE  ã                  óP  — d dl mZ d dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZ d dlmZmZmZmZmZ d dlmZmZ d d	lmZmZ d d
lmZmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)m*Z* d dl+m,Z, erd dl-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 g d¢Z5e5D ]Z6eD ]Z7e6› de7› �Z8ee6         ee8<   ŒŒdD ]Z6eD ]Z7e6› de7› �Z9e9ee9<   ŒŒeD ]Z:de:› �ede:› �<   Œd8d„Z;d9d„Z< G d „ d!¦  «        Z= G d"„ d#e=¦  «        Z>d:d'„Z?d;d+„Z@d<d,„ZAd<d-„ZBd=d.„ZCd>d1„ZDd?d3„ZEd?d4„ZFd?d5„ZGd?d6„ZHg d7¢ZIdS )@é    )Ú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Úfreq_to_period_freqstr)Úbuild_field_sarrayÚmonth_position_check)Ú
DateOffsetÚDayÚ	to_offset)Úget_rule_month)Úcache_readonly)Úis_numeric_dtype)ÚDatetimeTZDtypeÚPeriodDtype)ÚABCIndexÚ	ABCSeries)Úunique)Únpt)ÚDatetimeIndexÚSeriesÚTimedeltaIndex)ÚDatetimeLikeArrayMixin)ÚQSÚBQEÚBQSÚYSÚBYEÚBYSú-)ÚYÚQúW-Ú
offset_strÚstrÚreturnú
str | Nonec                ó,   — t          j        | d¦  «        S )z4
    Alias to closest period strings BQ->Q etc.
    N)r   Úget)r.   s    úf/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tseries/frequencies.pyÚget_period_aliasr5   N   s   € õ $Ô'¨
°DÑ9Ô9Ð9ó    Úindexú@DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixinc                óÀ  — ddl m} t          | t          ¦  «        rd| j        }t          j        |j        d¦  «        sAt          |j        t          ¦  «        s'|j        t          k    st          d| j        › �¦  «        ‚|} t          | d¦  «        sn‘t          | j        t          ¦  «        rt          d¦  «        ‚t          j        | j        d¦  «        r#t          | ¦  «        }|                     ¦   «         S t          | j        ¦  «        rt          d| j        › �¦  «        ‚t          | |¦  «        s || ¦  «        } t!          | ¦  «        }|                     ¦   «         S )	aW  
    Infer the most likely frequency given the input index.

    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.

    Examples
    --------
    >>> idx = pd.date_range(start='2020/12/01', end='2020/12/30', periods=30)
    >>> pd.infer_freq(idx)
    'D'
    r   )r    Ú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 )Úpandas.core.apir    Ú
isinstancer   Ú_valuesr   Úis_np_dtyper;   r   ÚobjectÚ	TypeErrorÚhasattrr   Ú_TimedeltaFrequencyInfererÚget_freqr   Ú_FrequencyInferer)r7   r    ÚvaluesÚinferers       r4   Ú
infer_freqrI   Y   s�  € ð: .Ð-Ð-Ð-Ð-Ð-å�%�Ñ#Ô#ð Ø”ˆåŒO˜FœL¨$Ñ/Ô/ð	å˜&œ,­Ñ8Ô8ð	ð Œ|�vÒ%Ð%åð0Ø"'¤+ð0ð 0ñô ð ð ˆõ �5˜'Ñ"Ô"ð 
ØÝ	�E”K¥Ñ	-Ô	-ð 
Ýð+ñ
ô 
ð 	
õ 
Œ˜œ cÑ	*Ô	*ð 
å,¨UÑ3Ô3ˆØ×ÒÑ!Ô!Ð!å	˜%œ+Ñ	&Ô	&ð 
ÝØTÀuÄ{ÐTÐTñ
ô 
ð 	
õ �e˜]Ñ+Ô+ð %Ø�˜eÑ$Ô$ˆå Ñ&Ô&€GØ×ÒÑÔÐr6   c                  óR  — e Zd ZdZdd„Zed d„¦   «         Zed d„¦   «         Zed!d	„¦   «         Zed!d
„¦   «         Z	d"d„Z
ed#d„¦   «         Zed#d„¦   «         Zed$d„¦   «         Zed%d„¦   «         Zd"d„Zed d„¦   «         Zed d„¦   «         Zd"d„Zd"d„Zd"d„Zd"d„Zd"d„Zd!d„Zd"d„ZdS )&rF   z8
    Not sure if I can avoid the state machine here
    r0   ÚNonec                óÒ  — || _         |j        | _        t          |t          ¦  «        r$t          |j        j        j        ¦  «        | _	        nt          |j        j        ¦  «        | _	        t          |d¦  «        r-|j        �&t          | j        |j        | j	        ¬¦  «        | _        t          |¦  «        dk     rt          d¦  «        ‚| j         j        p| j         j        | _        d S )NÚtz©Úresoé   z(Need at least 3 dates to infer frequency)r7   Úasi8Úi8valuesr>   r   r   Ú_dataÚ_ndarrayr;   Ú_cresorC   rM   r
   ÚlenÚ
ValueErrorÚ_is_monotonic_increasingÚ_is_monotonic_decreasingÚis_monotonic)Úselfr7   s     r4   Ú__init__z_FrequencyInferer.__init__¤   sÞ   € ØˆŒ
Øœ
ˆŒõ �e�XÑ&Ô&ð 	Dõ .Ø”Ô$Ô*ñô ˆDŒKˆKõ
 .¨e¬nÔ.BÑCÔCˆDŒKõ �5˜$ÑÔð 	ØŒxÐ#Ý 3Ø”M 5¤8°$´+ð!ñ !ô !�”õ ˆu‰:Œ:˜Š>ˆ>ÝÐGÑHÔHÐHð ŒJÔ/ÐV°4´:Ô3Vð 	ÔÐÐr6   únpt.NDArray[np.int64]c                ó*   — t          | j        ¦  «        S ©N)r   rR   ©r[   s    r4   Údeltasz_FrequencyInferer.deltasÃ   s   € å˜Tœ]Ñ+Ô+Ð+r6   c                ó4   — t          | j        j        ¦  «        S r_   )r   r7   rQ   r`   s    r4   Údeltas_asi8z_FrequencyInferer.deltas_asi8Ç   s   € õ ˜TœZœ_Ñ-Ô-Ð-r6   Úboolc                ó2   — t          | j        ¦  «        dk    S ©Né   )rV   ra   r`   s    r4   Ú	is_uniquez_FrequencyInferer.is_uniqueÍ   s   € å�4”;ÑÔ 1Ò$Ð$r6   c                ó2   — t          | j        ¦  «        dk    S rf   )rV   rc   r`   s    r4   Úis_unique_asi8z _FrequencyInferer.is_unique_asi8Ñ   s   € å�4Ô#Ñ$Ô$¨Ò)Ð)r6   r1   c                óÂ  — | j         r| j        j        sdS | j        d         }t	          | j        ¦  «        }|r$t          ||¦  «        r|                      ¦   «         S | j        ddgddgg d¢fv rdS | j	        sdS | j
        d         }|dz  }|d	z  }|d	z  }t          ||¦  «        rt          d
||z  ¦  «        S t          ||¦  «        rt          d||z  ¦  «        S t          ||¦  «        rt          d||z  ¦  «        S t          ||dz  ¦  «        rt          d||dz  z  ¦  «        S t          ||dz  ¦  «        rt          d||dz  z  ¦  «        S t          d|¦  «        S )z¨
        Find the appropriate frequency string to describe the inferred
        frequency of self.i8values

        Returns
        -------
        str or None
        Nr   rg   é   éA   )rg   rl   rm   Úbhé   é<   ÚhÚminÚsiè  Úmsi@B ÚusÚns)rZ   r7   Ú
_is_uniquera   r	   rU   Ú_is_multipleÚ_infer_daily_ruleÚhour_deltasrj   rc   Ú_maybe_add_count)r[   ÚdeltaÚppdÚpphÚppmÚppss         r4   rE   z_FrequencyInferer.get_freqÕ   s«  € ð Ô ð 	¨¬
Ô(=ð 	Ø�4à”˜A”ˆÝ˜dœkÑ*Ô*ˆØð 	,•\ %¨Ñ-Ô-ð 	,Ø×)Ò)Ñ+Ô+Ð+ð Ô  B ¨!¨R¨°+°+°+Ð>Ð>Ð>Ø�4ð
 Ô"ð 	Ø�4àÔ  Ô#ˆØ�R‰iˆØ�R‰iˆØ�R‰iˆÝ˜˜sÑ#Ô#ð 	1å# C¨°©Ñ5Ô5Ð5Ý˜% Ñ%Ô%ð 	1å# E¨5°3©;Ñ7Ô7Ð7Ý˜% Ñ%Ô%ð 	1å# C¨°©Ñ5Ô5Ð5Ý˜% #¨¡+Ñ/Ô/ð 	1å# D¨%°3¸$±;Ñ*?Ñ@Ô@Ð@Ý˜% #¨Ñ"2Ñ4Ô4ð 	1å# D¨%°3¸)Ñ3CÑ*DÑEÔEÐEõ $ D¨%Ñ0Ô0Ð0r6   ú	list[int]c                óR   ‡— t          | j        ¦  «        Šˆfd„| j        D ¦   «         S )Nc                ó   •— g | ]}|‰z  ‘ŒS © r„   )Ú.0Úxr}   s     €r4   ú
<listcomp>z0_FrequencyInferer.day_deltas.<locals>.<listcomp>
  ó   ø€ Ð-Ð-Ð-˜A��C‘Ð-Ð-Ð-r6   ©r	   rU   ra   )r[   r}   s    @r4   Ú
day_deltasz_FrequencyInferer.day_deltas  s.   ø€ å˜dœkÑ*Ô*ˆØ-Ð-Ð-Ð- ¤Ð-Ñ-Ô-Ð-r6   c                óX   ‡— t          | j        ¦  «        dz  Šˆfd„| j        D ¦   «         S )Nro   c                ó   •— g | ]}|‰z  ‘ŒS r„   r„   )r…   r†   r~   s     €r4   r‡   z1_FrequencyInferer.hour_deltas.<locals>.<listcomp>  rˆ   r6   r‰   )r[   r~   s    @r4   rz   z_FrequencyInferer.hour_deltas  s3   ø€ å˜dœkÑ*Ô*¨bÑ0ˆØ-Ð-Ð-Ð- ¤Ð-Ñ-Ô-Ð-r6   ú
np.ndarrayc                ó8   — t          | j        | j        ¬¦  «        S )NrN   )r   rR   rU   r`   s    r4   Úfieldsz_FrequencyInferer.fields  s   € å! $¤-°d´kÐBÑBÔBÐBr6   r   c                óN   — t          | j        d         | j        j        ¬¦  «        S )Nr   )Úunit)r   rR   r7   r‘   r`   s    r4   Ú	rep_stampz_FrequencyInferer.rep_stamp  s    € å˜œ qÔ)°´
´Ð@Ñ@Ô@Ð@r6   c                ó@   — t          | j        | j        j        ¦  «        S r_   )r   r�   r7   Ú	dayofweekr`   s    r4   r   z&_FrequencyInferer.month_position_check  s   € Ý# D¤K°´Ô1EÑFÔFÐFr6   c                ó‚   — | j         d         dz  | j         d         z   }t          |                     d¦  «        ¦  «        S )Nr+   é   ÚMÚi8)r�   r   Úastype)r[   Únmonthss     r4   Úmdiffsz_FrequencyInferer.mdiffs  s9   € à”+˜cÔ" RÑ'¨$¬+°cÔ*:Ñ:ˆÝ˜WŸ^š^¨DÑ1Ô1Ñ2Ô2Ð2r6   c                ó\   — t          | j        d                              d¦  «        ¦  «        S )Nr+   r˜   )r   r�   r™   r`   s    r4   Úydiffsz_FrequencyInferer.ydiffs!  s%   € å˜Tœ[¨Ô-×4Ò4°TÑ:Ô:Ñ;Ô;Ð;r6   c                ób  — |                       ¦   «         }|r;| j        d         }t          | j        j                 }|› d|› �}t          ||¦  «        S |                      ¦   «         }|rM| j        d         dz  }ddddœ}t          || j        j        dz                    }|› d|› �}t          ||¦  «        S |                      ¦   «         }|rt          || j        d         ¦  «        S | j	        r|  
                    ¦   «         S |                      ¦   «         rdS |                      ¦   «         }	|	r|	S d S )	Nr   r*   rP   r–   é   é
   )r   é   rg   ÚB)Ú_get_annual_ruler�   r   r’   Úmonthr{   Ú_get_quarterly_ruler›   Ú_get_monthly_rulerh   Ú_get_daily_ruleÚ_is_business_dailyÚ_get_wom_rule)
r[   Úannual_ruleÚnyearsr¤   ÚaliasÚquarterly_ruleÚ	nquartersÚmod_dictÚmonthly_ruleÚwom_rules
             r4   ry   z#_FrequencyInferer._infer_daily_rule%  sT  € Ø×+Ò+Ñ-Ô-ˆØð 	3Ø”[ ”^ˆFÝ! $¤.Ô"6Ô7ˆEØ"Ð,Ð, UÐ,Ð,ˆEÝ# E¨6Ñ2Ô2Ð2à×1Ò1Ñ3Ô3ˆØð 	6Øœ Aœ¨Ñ*ˆIØ "¨Ð,Ð,ˆHÝ! (¨4¬>Ô+?À!Ñ+CÔ"DÔEˆEØ%Ð/Ð/¨Ð/Ð/ˆEÝ# E¨9Ñ5Ô5Ð5à×-Ò-Ñ/Ô/ˆØð 	BÝ# L°$´+¸a´.ÑAÔAÐAàŒ>ð 	*Ø×'Ò'Ñ)Ô)Ð)à×"Ò"Ñ$Ô$ð 	Ø�3à×%Ò%Ñ'Ô'ˆØð 	ØˆOàˆtr6   c                óô   — t          | j        ¦  «        }| j        d         |z  }|dz  dk    r<t          | j                             ¦   «                  }d|› �}t          ||dz  ¦  «        S t          d|¦  «        S )Nr   é   r-   ÚD)r	   rU   ra   r   r’   Úweekdayr{   )r[   r}   ÚdaysÚwdr¬   s        r4   r§   z!_FrequencyInferer._get_daily_ruleE  su   € Ý˜dœkÑ*Ô*ˆØŒ{˜1Œ~ Ñ#ˆØ�!‰8�qŠ=ˆ=å ¤× 6Ò 6Ñ 8Ô 8Ô9ˆBØ˜�I�IˆEÝ# E¨4°!©8Ñ4Ô4Ð4å# C¨Ñ.Ô.Ð.r6   c                óô   — t          | j        ¦  «        dk    rd S t          t          | j        d         ¦  «        ¦  «        dk    rd S |                      ¦   «         }|€d S dddddœ                     |¦  «        S )Nrg   r—   r'   r)   ÚYEr(   ©ÚcsÚbsÚceÚbe)rV   r�   r   r�   r   r3   ©r[   Ú	pos_checks     r4   r£   z"_FrequencyInferer._get_annual_ruleP  s   € ÝˆtŒ{ÑÔ˜aÒÐØ�4å�v�d”k #Ô&Ñ'Ô'Ñ(Ô(¨1Ò,Ð,Ø�4à×-Ò-Ñ/Ô/ˆ	àÐØ�4à e°4¸uÐEÐE×IÒIÈ)ÑTÔTÐTr6   c                óÆ   — t          | j        ¦  «        dk    rd S | j        d         dz  dk    sd S |                      ¦   «         }|€d S dddddœ                     |¦  «        S )	Nrg   r   rP   r$   r&   ÚQEr%   rº   ©rV   r›   r   r3   r¿   s     r4   r¥   z%_FrequencyInferer._get_quarterly_rule^  ss   € ÝˆtŒ{ÑÔ˜aÒÐØ�4àŒ{˜1Œ~ Ñ! QÒ&Ð&Ø�4à×-Ò-Ñ/Ô/ˆ	àÐØ�4à e°4¸uÐEÐE×IÒIÈ)ÑTÔTÐTr6   c                óš   — t          | j        ¦  «        dk    rd S |                      ¦   «         }|€d S dddddœ                     |¦  «        S )Nrg   ÚMSÚBMSÚMEÚBMErº   rÃ   r¿   s     r4   r¦   z#_FrequencyInferer._get_monthly_rulel  sX   € ÝˆtŒ{ÑÔ˜aÒÐØ�4Ø×-Ò-Ñ/Ô/ˆ	àÐØ�4à e°4¸uÐEÐE×IÒIÈ)ÑTÔTÐTr6   c                ó¸  — | j         ddgk    rdS | j        d                              ¦   «         }t          j        | j        ¦  «        }t          | j        ¦  «        }t          j        ||¦  «        }t          j	        |t          j
        |¦  «        z   d¦  «        }t          t          j        |dk    |dk    z  |dk    |dk    z  |dk    z  z  ¦  «        ¦  «        S )Nrg   rP   Fr   r³   é   )rŠ   r7   rµ   ÚnpÚdiffrR   r	   rU   Úfloor_divideÚmodÚcumsumrd   Úall)r[   Úfirst_weekdayÚshiftsr}   Úweekdayss        r4   r¨   z$_FrequencyInferer._is_business_dailyv  sÒ   € àŒ?˜q !˜fÒ$Ð$Ø�5ð œ
 1œ×-Ò-Ñ/Ô/ˆÝ”˜œÑ'Ô'ˆÝ˜dœkÑ*Ô*ˆÝ” ¨Ñ-Ô-ˆÝ”6˜-­"¬)°FÑ*;Ô*;Ñ;¸QÑ?Ô?ˆåÝŒFØ˜a’- F¨a¢KÑ0Ø˜q’L X°¢]Ñ3°vÀ²{ÑCñEñô ñ
ô 
ð 	
r6   c                óN  — t          | j        j        ¦  «        }t          |¦  «        dk    rd S t          | j        j        dz
  dz  ¦  «        }||dk              }t          |¦  «        dk    st          |¦  «        dk    rd S |d         dz   }t
          |d                  }d|› |› �S )Nrg   r³   rÊ   r   zWOM-)r   r7   rµ   rV   Údayr   )r[   rÓ   Úweek_of_monthsÚweekr·   s        r4   r©   z_FrequencyInferer._get_wom_rule‰  s°   € Ý˜$œ*Ô,Ñ-Ô-ˆÝˆx‰=Œ=˜1ÒÐØ�4å ¤¤°!Ñ!3¸Ñ 9Ñ:Ô:ˆà'¨¸Ò(:Ô;ˆÝˆ~ÑÔ !Ò#Ð#¥s¨>Ñ':Ô':¸QÒ'>Ð'>Ø�4ð ˜aÔ  1Ñ$ˆÝ˜H QœKÔ(ˆà �dÐ ˜BÐ Ð Ð r6   N)r0   rK   )r0   r]   ©r0   rd   )r0   r1   )r0   r�   )r0   r�   )r0   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r\   r   ra   rc   rh   rj   rE   rŠ   rz   r�   r’   r   r›   r�   ry   r§   r£   r¥   r¦   r¨   r©   r„   r6   r4   rF   rF   Ÿ   s@  € € € € € ðð ð
ð 
ð 
ð 
ð> ð,ð ,ð ,ñ „^ð,ð ð.ð .ð .ñ „^ð.ð
 ð%ð %ð %ñ „^ð%ð ð*ð *ð *ñ „^ð*ð01ð 01ð 01ð 01ðd ð.ð .ð .ñ „^ð.ð ð.ð .ð .ñ „^ð.ð ðCð Cð Cñ „^ðCð ðAð Að Añ „^ðAðGð Gð Gð Gð ð3ð 3ð 3ñ „^ð3ð ð<ð <ð <ñ „^ð<ðð ð ð ð@	/ð 	/ð 	/ð 	/ðUð Uð Uð UðUð Uð Uð UðUð Uð Uð Uð
ð 
ð 
ð 
ð&!ð !ð !ð !ð !ð !r6   rF   c                  ó   — e Zd Zd„ ZdS )rD   c                ó<   — | j         r|                      ¦   «         S d S r_   )rh   r§   r`   s    r4   ry   z,_TimedeltaFrequencyInferer._infer_daily_ruleœ  s(   € ØŒ>ð 	*Ø×'Ò'Ñ)Ô)Ð)ð	*ð 	*r6   N)rÙ   rÚ   rÛ   ry   r„   r6   r4   rD   rD   ›  s#   € € € € € ð*ð *ð *ð *ð *r6   rD   ÚmultÚintrd   c                ó   — | |z  dk    S )Nr   r„   )ru   rß   s     r4   rx   rx   ¡  s   € Ø�‰9˜Š>Ðr6   ÚbaseÚcountÚfloatc                óf   — |dk    r*|t          |¦  «        k    sJ ‚t          |¦  «        }|› | › �S | S rf   )rà   )râ   rã   s     r4   r{   r{   ¥  sC   € Ø�‚z€zØ�˜E™
œ
Ò"Ð"Ð"Ð"Ý�E‘
”
ˆØÐ˜ÐÐÐàˆr6   c                ó   — |�| €dS t          | ¦  «        } t          |¦  «        }t          |¦  «        r=t          | ¦  «        r*t          t	          | ¦  «        t	          |¦  «        ¦  «        S | dv S t          |¦  «        r| dv S t          |¦  «        r| dv S t          |¦  «        r| |ddddd	d
dddh
v S |dk    r| dv S |dk    r| dv S |dk    r| dv S |dk    r| dv S |d	k    r| dv S |d
k    r| dv S |dk    r| dv S |dk    r| dv S |dk    r| dv S dS )a  
    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
    NF>
   r¢   ÚCr´   r—   rq   rs   rt   rv   ru   rr   >	   r¢   rç   r´   rq   rs   rt   rv   ru   rr   r´   rç   r¢   rq   rr   rs   rt   ru   rv   >   r¢   rq   rs   rt   rv   ru   rr   >   rç   rq   rs   rt   rv   ru   rr   >   r´   rq   rs   rt   rv   ru   rr   >   rq   rs   rt   rv   ru   rr   >   rs   rt   rv   ru   rr   >   rs   rt   rv   ru   >   rt   rv   ru   >   rv   ru   >   rv   )Ú_maybe_coerce_freqÚ
_is_annualÚ_is_quarterlyÚ_quarter_months_conformr   Ú_is_monthlyÚ
_is_weekly)ÚsourceÚtargets     r4   Úis_subperiodrð   ²  s©  € ð  €~˜˜ØˆuÝ Ñ'Ô'€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ŠˆØ˜ÐÐàˆur6   c                ó†  — |�| €dS t          | ¦  «        } t          |¦  «        }t          | ¦  «        rpt          |¦  «        r t          | ¦  «        t          |¦  «        k    S t          |¦  «        r.t          | ¦  «        }t          |¦  «        }t	          ||¦  «        S |dv S t          | ¦  «        r|dv S t          | ¦  «        r|dv S t          | ¦  «        r|| ddddd	d
dddh
v S | dk    r|dv S | dk    r|dv S | dk    r|dv S | dk    r|dv S | d	k    r|dv S | d
k    r|dv S | dk    r|dv S | dk    r|dv S | dk    r|dv S dS )a  
    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
    NF>
   r¢   rç   r´   r—   rq   rs   rt   rv   ru   rr   >	   r¢   rç   r´   rq   rs   rt   rv   ru   rr   r´   rç   r¢   rq   rr   rs   rt   ru   rv   >   rq   rs   rt   rv   ru   rr   >   rs   rt   rv   ru   rr   >   rs   rt   rv   ru   >   rt   rv   ru   >   rv   ru   >   rv   )rè   ré   r   rê   rë   rì   rí   )rî   rï   ÚsmonthÚtmonths       r4   Úis_superperiodrô   é  sÖ  € ð  €~˜˜ØˆuÝ Ñ'Ô'€FÝ Ñ'Ô'€Få�&ÑÔð "Ý�fÑÔð 	DÝ! &Ñ)Ô)­^¸FÑ-CÔ-CÒCÐCå˜Ñ Ô ð 	;Ý# FÑ+Ô+ˆFÝ# FÑ+Ô+ˆFÝ*¨6°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ŠˆØ˜ÐÐàˆur6   c                ó’   — | €J ‚t          | t          ¦  «        rt          d| j        ¦  «        } | dv r| S |                      ¦   «         S )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
    Nrg   >   rq   rs   rt   rv   ru   rr   )r>   r   r   ÚnameÚupper)Úcodes    r4   rè   rè   #  sR   € ð ÐÐÐÝ�$�
Ñ#Ô#ð 4Ý% a¨¬Ñ3Ô3ˆØÐ2Ð2Ð2Øˆà�zŠz‰|Œ|Ðr6   rî   rï   c                óN   — t           |          }t           |         }|dz  |dz  k    S )NrP   )r   )rî   rï   ÚsnumÚtnums       r4   rë   rë   9  s)   € Ý˜Ô €DÝ˜Ô €DØ�!‰8�t˜a‘xÒÐr6   Úrulec                ó`   — |                       ¦   «         } | dk    p|                      d¦  «        S )Nr+   zY-©r÷   Ú
startswith©rü   s    r4   ré   ré   ?  ó*   € Ø�:Š:‰<Œ<€DØ�3Š;Ð/˜$Ÿ/š/¨$Ñ/Ô/Ð/r6   c                ó`   — |                       ¦   «         } | dk    p|                      d¦  «        S )Nr,   )zQ-ÚBQrþ   r   s    r4   rê   rê   D  s*   € Ø�:Š:‰<Œ<€DØ�3Š;Ð7˜$Ÿ/š/¨,Ñ7Ô7Ð7r6   c                ó2   — |                       ¦   «         } | dv S )N)r—   ÚBM)r÷   r   s    r4   rì   rì   I  s   € Ø�:Š:‰<Œ<€DØ�;ÐÐr6   c                ó`   — |                       ¦   «         } | dk    p|                      d¦  «        S )NÚWr-   rþ   r   s    r4   rí   rí   N  r  r6   )r   r5   rI   rð   rô   r   )r.   r/   r0   r1   )r7   r8   r0   r1   )rß   rà   r0   rd   )râ   r/   rã   rä   r0   r/   rØ   )r0   r/   )rî   r/   rï   r/   r0   rd   )rü   r/   r0   rd   )JÚ
__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   r   Úpandas._libs.tslibs.fieldsr   r   Úpandas._libs.tslibs.offsetsr   r   r   Úpandas._libs.tslibs.parsingr   Úpandas.util._decoratorsr   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.dtypesr   r   Úpandas.core.dtypes.genericr   r   Úpandas.core.algorithmsr   Úpandas._typingr   Úpandasr    r!   r"   Úpandas.core.arrays.datetimeliker#   Ú_need_suffixÚ_prefixÚ_mÚkeyÚ_aliasÚ_dr5   rI   rF   rD   rx   r{   rð   rô   rè   rë   ré   rê   rì   rí   Ú__all__r„   r6   r4   ú<module>r"     s�  ðØ "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð à Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2à 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð
 *Ð )Ð )Ð )Ð )Ð )àð GØ"Ð"Ð"Ð"Ð"Ð"ðð ð ð ð ð ð ð ð ð ð
 GÐFÐFÐFÐFÐFð 8Ð7Ð7€àð Jð J€GØð Jð JˆØÐÐ˜2ÐÐˆØ(@ÀÔ(IÐ  Ñ%Ð%ðJð ð 2ð 2€GØð 2ð 2ˆØÐ"Ð"˜bÐ"Ð"ˆØ+1Ð  Ñ(Ð(ð2ð ð 4ð 4€BØ*3¨r¨)¨)Ð˜Y "˜Y˜YÑ'Ð'ð:ð :ð :ð :ðCð Cð Cð CðLy!ð y!ð y!ð y!ð y!ñ y!ô y!ð y!ðx*ð *ð *ð *ð *Ð!2ñ *ô *ð *ðð ð ð ðð ð ð ð4ð 4ð 4ð 4ðn7ð 7ð 7ð 7ðtð ð ð ð, ð  ð  ð  ð0ð 0ð 0ð 0ð
8ð 8ð 8ð 8ð
ð ð ð ð
0ð 0ð 0ð 0ð
ð ð €€€r6   