� H�gE��P�ddlmZddlmZddlZddlmZddlm Z ddl m Z m Z m Z mZddlmZmZmZmZmZddlmZmZdd lmZmZdd lmZmZmZdd lm Z dd l!m"Z"dd l#m$Z$ddl%m&Z&m'Z'ddl(m)Z)m*Z*ddl+m,Z,erddl-m.Z.ddl/m0Z0m1Z1m2Z2ddl3m4Z4gd�Z5e5D]Z6eD]Z7e6�de7��Z8ee6ee8<��dD]Z6eD]Z7e6�de7��Z9e9ee9<��eD] Z:de:��ede:��<�d8d�Z;d9d�Z<Gd �d!��Z=Gd"�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�ZHgd7�ZIdS)@�)� 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�,�tj|d��S)z4 Alias to closest period strings BQ->Q etc. N)r�get)r.s �j/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/pandas/tseries/frequencies.py�get_period_aliasr5Ns�� $� '� �D� 9� 9�9��index�@DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixinc���ddlm}t|t��rd|j}t j|jd��sAt|jt��s'|jtkstd|j�����|}t|d��sn�t|jt��rtd���t j|jd��r#t|��}|���St|j��rtd|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)r7r �values�inferers r4� infer_freqrIYs���:.�-�-�-�-�-��%��#�#� ���� �O�F�L�$� /� /� ��&�,��8�8� ��|�v�%�%��0�"'�+�0�0��� ��� �5�'� "� "� � � �E�K�� -� -�  �� +� � � � ����c� *� *� �,�U�3�3�����!�!�!� �%�+� &� &� �� T�u�{� T� T� � � � �e�]� +� +�%�� �e�$�$����&�&�G� � � � � �r6c�R�eZdZdZdd�Zed d���Zed d���Zed!d ���Zed!d ���Z d"d �Z ed#d���Z ed#d���Z ed$d���Z ed%d���Zd"d�Zed d���Zed d���Zd"d�Zd"d�Zd"d�Zd"d�Zd"d�Zd!d�Zd"d�ZdS)&rFz8 Not sure if I can avoid the state machine here r0�Nonec���||_|j|_t|t��r$t |jjj��|_ nt |jj��|_ t|d��r-|j �&t|j|j |j ���|_t|��dkrtd���|jjp |jj|_dS)N�tz��reso�z(Need at least 3 dates to infer frequency)r7�asi8�i8valuesr>rr�_data�_ndarrayr;�_cresorCrMr �len� ValueError�_is_monotonic_increasing�_is_monotonic_decreasing� is_monotonic)�selfr7s 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)rrR�r[s r4�deltasz_FrequencyInferer.deltas�s���T�]�+�+�+r6c�4�t|jj��Sr_)rr7rQr`s r4� deltas_asi8z_FrequencyInferer.deltas_asi8�s���T�Z�_�-�-�-r6�boolc�2�t|j��dkS�N�)rVrar`s r4� is_uniquez_FrequencyInferer.is_unique�s���4�;���1�$�$r6c�2�t|j��dkSrf)rVrcr`s r4�is_unique_asi8z _FrequencyInferer.is_unique_asi8�s���4�#�$�$��)�)r6r1c���|jr |jjsdS|jd}t |j��}|r$t ||��r|���S|jddgddggd�fvrdS|j sdS|j d}|dz}|d z}|d z}t ||��rtd ||z ��St ||��rtd ||z ��St ||��rtd ||z ��St ||d z��rtd||d zz ��St ||dz��rtd||dzz ��Std|��S)z� Find the appropriate frequency string to describe the inferred frequency of self.i8values Returns ------- str or None Nrrg��A)rgrlrm�bh��<�h�min�si��msi@B�us�ns) rZr7� _is_uniquerar rU� _is_multiple�_infer_daily_rule� hour_deltasrjrc�_maybe_add_count)r[�delta�ppd�pph�ppm�ppss r4rEz_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����fd�|jD��S)Nc���g|]}|�z ��S�r�)�.0�xr}s �r4� <listcomp>z0_FrequencyInferer.day_deltas.<locals>.<listcomp> ����-�-�-�A��C��-�-�-r6�r rUra)r[r}s @r4� day_deltasz_FrequencyInferer.day_deltass.����d�k�*�*��-�-�-�-���-�-�-�-r6c�X��t|j��dz��fd�|jD��S)Nroc���g|]}|�z ��Sr�r�)r�r�r~s �r4r�z1_FrequencyInferer.hour_deltas.<locals>.<listcomp>r�r6r�)r[r~s @r4rzz_FrequencyInferer.hour_deltas s3����d�k�*�*�b�0��-�-�-�-���-�-�-�-r6� np.ndarrayc�8�t|j|j���S)NrN)rrRrUr`s r4�fieldsz_FrequencyInferer.fieldss��!�$�-�d�k�B�B�B�Br6rc�N�t|jd|jj���S)Nr)�unit)rrRr7r�r`s r4� rep_stampz_FrequencyInferer.rep_stamps �����q�)�� ��@�@�@�@r6c�@�t|j|jj��Sr_)rr�r7� dayofweekr`s r4rz&_FrequencyInferer.month_position_checks��#�D�K���1E�F�F�Fr6c��|jddz|jdz}t|�d����S)Nr+� �M�i8)r�r�astype)r[�nmonthss r4�mdiffsz_FrequencyInferer.mdiffss9���+�c�"�R�'�$�+�c�*:�:���W�^�^�D�1�1�2�2�2r6c�\�t|jd�d����S)Nr+r�)rr�r�r`s r4�ydiffsz_FrequencyInferer.ydiffs!s%���T�[��-�4�4�T�:�:�;�;�;r6c�b�|���}|r;|jd}t|jj}|�d|��}t ||��S|���}|rM|jddz }dddd�}t||jjdz}|�d|��}t ||��S|���}|rt ||jd��S|j r|� ��S|� ��rdS|� ��} | r| SdS) Nrr*rPr�� � )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 r4ryz#_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��tr6c���t|j��}|jd|z }|dzdkr<t|j���}d|��}t ||dz ��St d|��S)Nr�r-�D)r rUrarr��weekdayr{)r[r}�days�wdr�s r4r�z!_FrequencyInferer._get_daily_ruleEsu���d�k�*�*���{�1�~��#�� �!�8�q�=�=���� 6� 6� 8� 8�9�B���I�I�E�#�E�4�!�8�4�4� 4�#�C��.�.� .r6c���t|j��dkrdStt|jd����dkrdS|���}|�dSddddd��|��S)Nrgr�r'r)�YEr(��cs�bs�ce�be)rVr�rr�rr3�r[� pos_checks r4r�z"_FrequencyInferer._get_annual_rulePs�� �t�{� � �a� � ��4� �v�d�k�#�&�'�'� (� (�1� ,� ,��4��-�-�/�/� � � ��4��e�4�u�E�E�I�I�)�T�T� Tr6c���t|j��dkrdS|jddzdksdS|���}|�dSddddd��|��S) NrgrrPr$r&�QEr%r��rVr�rr3r�s r4r�z%_FrequencyInferer._get_quarterly_rule^ss�� �t�{� � �a� � ��4��{�1�~��!�Q�&�&��4��-�-�/�/� � � ��4��e�4�u�E�E�I�I�)�T�T� Tr6c��t|j��dkrdS|���}|�dSddddd��|��S)Nrg�MS�BMS�ME�BMEr�r�r�s r4r�z#_FrequencyInferer._get_monthly_rulelsX�� �t�{� � �a� � ��4��-�-�/�/� � � ��4��e�4�u�E�E�I�I�)�T�T� Tr6c��|jddgkrdS|jd���}tj|j��}t |j��}tj||��}tj |tj |��zd��}ttj |dk|dkz|dk|dkz|dkzz����S)NrgrPFrr��) r�r7r��np�diffrRr rU� floor_divide�mod�cumsumrd�all)r[� first_weekday�shiftsr}�weekdayss r4r�z$_FrequencyInferer._is_business_dailyvs��� �?�q�!�f� $� $��5�� �1� �-�-�/�/� �����'�'���d�k�*�*������-�-���6�-�"�)�F�*;�*;�;�Q�?�?��� �F��a�-�F�a�K�0��q�L�X��]�3�v��{�C�E� � � � � r6c�N�t|jj��}t|��dkrdSt|jjdz dz��}||dk}t|��dkst|��dkrdS|ddz}t |d}d|�|��S)Nrgr�r�rzWOM-)rr7r�rV�dayr)r[r��week_of_months�weekr�s r4r�z_FrequencyInferer._get_wom_rule�s����$�*�,�-�-�� �x�=�=�1� � ��4�����!�!3�� 9�:�:��'���(:�;�� �~� � �!� #� #�s�>�':�':�Q�'>�'>��4��a� �1�$�� �H�Q�K� (�� �d� �B� � � r6N)r0rK)r0r]�r0rd)r0r1)r0r�)r0r�)r0r)�__name__� __module__� __qualname__�__doc__r\rrarcrhrjrEr�rzr�r�rr�r�ryr�r�r�r�r�r�r�r6r4rFrF�s@�������� � � � �>�,�,�,��^�,��.�.�.��^�.� �%�%�%��^�%��*�*�*��^�*�01�01�01�01�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� � � � �&!�!�!�!�!�!r6rFc��eZdZd�ZdS)rDc�<�|jr|���SdSr_)rhr�r`s r4ryz,_TimedeltaFrequencyInferer._infer_daily_rule�s(�� �>� *��'�'�)�)� )� *� *r6N)r�r�r�ryr�r6r4rDrD�s#������*�*�*�*�*r6rD�mult�intrdc��||zdkS)Nrr�)rur�s r4rxrx�s�� ��9��>�r6�base�count�floatc�f�|dkr*|t|��ksJ�t|��}|�|��S|Srf)r�)r�r�s r4r{r{�sC�� ��z�z���E� � �"�"�"�"��E� � ��������� r6c � �|�|�dSt|��}t|��}t|��r=t|��r*tt |��t |����S|dvSt|��r|dvSt |��r|dvSt |��r||ddddd d d d d h vS|dkr|dvS|dkr|dvS|dkr|dvS|dkr|dvS|d kr|dvS|d kr|dvS|d kr|dvS|d kr|dvS|d kr|dvSdS)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�rqrsrtrvrurr> r�r�r�rqrsrtrvrurrr�r�r�rqrrrsrtrurv>r�rqrsrtrvrurr>r�rqrsrtrvrurr>r�rqrsrtrvrurr>rqrsrtrvrurr>rsrtrvrurr>rsrtrvru>rtrvru>rvru>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��������ur6c ��|�|�dSt|��}t|��}t|��rpt|��r t|��t|��kSt|��r.t|��}t|��}t ||��S|dvSt|��r|dvSt |��r|dvSt |��r||ddddd d d d d h vS|dkr|dvS|dkr|dvS|dkr|dvS|dkr|dvS|d kr|dvS|d kr|dvS|d kr|dvS|d kr|dvS|d kr|dvSdS)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�rqrsrtrvrurr> r�r�r�rqrsrtrvrurrr�r�r�rqrrrsrtrurv>rqrsrtrvrurr>rsrtrvrurr>rsrtrvru>rtrvru>rvru>rv)r�r�rr�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��������ur6c��|�J�t|t��rtd|j��}|dvr|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>rqrsrtrvrurr)r>rr�name�upper)�codes r4r�r�#sR�� � � � ��$� �#�#�4�%�a���3�3�� �2�2�2�� ��z�z�|�|�r6r�r�c�N�t|}t|}|dz|dzkS)NrP)r )r�r��snum�tnums r4r�r�9s)�� �� �D� �� �D� �!�8�t�a�x� �r6�rulec�`�|���}|dkp|�d��S)Nr+zY-�r�� startswith�r�s r4r�r�?�*�� �:�:�<�<�D� �3�;� /�$�/�/�$�/�/�/r6c�`�|���}|dkp|�d��S)Nr,)zQ-�BQr�rs r4r�r�Ds*�� �:�:�<�<�D� �3�;� 7�$�/�/�,�7�7�7r6c�2�|���}|dvS)N)r��BM)r�rs r4r�r�Is�� �:�:�<�<�D� �;� �r6c�`�|���}|dkp|�d��S)N�Wr-r�rs r4r�r�Nrr6)rr5rIr�r�r)r.r/r0r1)r7r8r0r1)r�r�r0rd)r�r/r�r�r0r/r�)r0r/)r�r/r�r/r0rd)r�r/r0rd)J� __future__r�typingr�numpyr�� pandas._libsr�pandas._libs.algosr�pandas._libs.tslibsrrr r �pandas._libs.tslibs.ccalendarr r r rr�pandas._libs.tslibs.dtypesrr�pandas._libs.tslibs.fieldsrr�pandas._libs.tslibs.offsetsrrr�pandas._libs.tslibs.parsingr�pandas.util._decoratorsr�pandas.core.dtypes.commonr�pandas.core.dtypes.dtypesrr�pandas.core.dtypes.genericrr�pandas.core.algorithmsr�pandas._typingr�pandasr r!r"�pandas.core.arrays.datetimeliker#� _need_suffix�_prefix�_m�key�_alias�_dr5rIrFrDrxr{r�r�r�r�r�r�r�r��__all__r�r6r4�<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�Ly!�y!�y!�y!�y!�y!�y!�y!�x*�*�*�*�*�!2�*�*�*� ��������4�4�4�4�n7�7�7�7�t����, � � � � 0�0�0�0� 8�8�8�8� ���� 0�0�0�0�  � � ���r6
Memory