Ë
    ýÿæic’  ã                  óŽ  — U d dl mZ d dlZd dlZd dlmZmZ d dlZd dlmZm	Z	m
Z
 d dlZd dlZd dlmZ d dlmZ d dl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m Z  d d	l!m"Z"m#Z#m$Z$m%Z%m&Z& d d
l'm(Z(m)Z)m*Z* d dl+m,c m-Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m,c m6c m7Z6 erd dl8m9Z9 d dl:m;Z; d dl<m=Z= d dlm>Z> i Z?de@d<   d9d„ZAd:d„ZBej†                  d;d„«       ZDd<d„ZEd<d„ZFd=d„ZGd„ ZH G d„ dej’                  «      ZJ G d„ dej–                  j˜                  «      ZM G d„ dejœ                  «      ZOd>d „ZP G d!„ d"ejœ                  «      ZQ G d#„ d$ej¤                  «      ZS G d%„ d&ej¨                  «      ZU G d'„ d(ej¬                  «      ZWd?d)„ZXd@d*„ZYdAd+„ZZdBd,„Z[dCd-„Z\ejº                  dDd.„«       Z^ejº                  dDd/„«       Z_ejº                  dDd0„«       Z`ejº                  dDd1„«       Zad>d2„Zb G d3„ d4ej–                  jÆ                  «      Zd G d5„ d6ej–                  j˜                  «      Ze G d7„ d8ej–                  j˜                  «      Zfy)Eé    )ÚannotationsN)ÚdatetimeÚtzinfo)ÚTYPE_CHECKINGÚAnyÚcast)Úlib)Ú	TimestampÚ	to_offset)Ú	FreqGroupÚperiods_per_day)ÚFÚnpt)Úis_floatÚis_float_dtypeÚ
is_integerÚis_integer_dtypeÚis_nested_list_like)ÚIndexÚSeriesÚ
get_option)Ú
date_range)ÚPeriodÚPeriodIndexÚperiod_range)Ú	Generator)ÚAxis)Ú
BaseOffset)ÚTimeUnitÚdictÚ
_mpl_unitsc                 óÞ   — t         t        ft        t        ft        j
                  t        ft        j                  t        ft        j                  t        ft        j                  t        fg} | S ©N)r
   ÚDatetimeConverterr   ÚPeriodConverterÚpydtr   ÚdateÚtimeÚTimeConverterÚnpÚ
datetime64)Úpairss    úz/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pandas/plotting/_matplotlib/converter.pyÚ	get_pairsr.   F   sT   € ä	Ô%Ð&Ü	”Ð!Ü	�‰Ô)Ð*Ü	�‰Ô%Ð&Ü	�‰”MÐ"Ü	�‰Ô)Ð*ð€Eð €Ló    c                ó^   ‡ — t        j                  ‰ «      ˆ fd„«       }t        t        |«      S )z/
    Decorator applying pandas_converters.
    c                 óT   •— t        «       5   ‰| i |¤Žcd d d «       S # 1 sw Y   y xY wr#   )Úpandas_converters)ÚargsÚkwargsÚfuncs     €r-   Úwrapperz6register_pandas_matplotlib_converters.<locals>.wrapperW   s"   ø€ äÕ Ù˜Ð( Ñ(÷ !× Ò ús   Œž')Ú	functoolsÚwrapsr   r   )r5   r6   s   ` r-   Ú%register_pandas_matplotlib_convertersr9   R   s/   ø€ ô
 ‡_�_�TÓó)ó ð)ô ”�7ÓÐr/   c               #  óŽ   K  — t        d«      } | r
t        «        	 d–— | dk(  rt        «        yy# | dk(  rt        «        w w xY w­w)z¨
    Context manager registering pandas' converters for a plot.

    See Also
    --------
    register_pandas_matplotlib_converters : Decorator that applies this.
    z'plotting.matplotlib.register_convertersNÚauto)r   ÚregisterÚ
deregister)Úvalues    r-   r2   r2   _   sE   è ø€ ô Ð@ÓA€EáäŒ
ðÛà�FŠ?ä�Lð øˆ5�FŠ?ä�Lð üs   ‚A›0 ŸA°AÁAc                 óò   — t        «       } | D ]h  \  }}|t        j                  v r9t        t        j                  |   |«      st        j                  |   }|t        |<    |«       t        j                  |<   Œj y r#   )r.   ÚmunitsÚregistryÚ
isinstancer!   )r,   Útype_ÚclsÚpreviouss       r-   r<   r<   u   s]   € Ü‹K€EÛ‰
ˆˆsà”F—O‘OÑ#¬J´v·±ÀuÑ7MÈsÔ,SÜ—‘ uÑ-ˆHØ (ŒJ�uÑá!$£Œ�‰˜Òñ r/   c                 óT  — t        «       D ]O  \  } }t        t        j                  j	                  | «      «      |u sŒ1t        j                  j                  | «       ŒQ t        j                  «       D ]5  \  }}t        |«      t        t        t        hvsŒ#|t        j                  |<   Œ7 y r#   )r.   Útyper@   rA   ÚgetÚpopr!   Úitemsr$   r%   r)   )rC   rD   ÚunitÚ	formatters       r-   r=   r=   €   s{   € ä–k‰
ˆˆsä”—‘×#Ñ# EÓ*Ó+¨sÒ2Ü�O‰O×Ñ Õ&ð "ô &×+Ñ+Ö-‰ˆˆiÜ�	‹?Ô#4´oÄ}Ð"UÒUà$-ŒF�O‰O˜DÒ!ñ .r/   c                ó~   — | j                   dz  | j                  dz  z   | j                  z   | j                  dz  z   }|S )Ni  é<   é@B )ÚhourÚminuteÚsecondÚmicrosecond)ÚtmÚtot_secs     r-   Ú_to_ordinalfrV   Ž   s8   € Ø�g‰g˜‰n˜rŸy™y¨2™~Ñ-°·	±	Ñ9¸B¿N¹NÈUÑ<RÑR€GØ€Nr/   c                ó¸   — t        | t        «      r$t        | «      }t        |j	                  «       «      S t        | t
        j                  «      rt        | «      S | S r#   )rB   Ústrr
   rV   r(   r&   )ÚdÚparseds     r-   Útime2numr[   “   sC   € Ü�!”SÔÜ˜1“ˆÜ˜FŸK™K›MÓ*Ð*Ü�!”T—Y‘YÔÜ˜A‹ÐØ€Hr/   c                  ó@   — e Zd Zed„ «       Zedd„«       Zedd„«       Zy)r)   c                óf  — t         t        j                  f}t        | |«      st	        | «      st        | «      rt        | «      S t        | t        «      r| j                  t        «      S t        | t        t        t        j                  t        f«      r| D �cg c]  }t        |«      ‘Œ c}S | S c c}w r#   )rX   r&   r(   rB   r   r   r[   r   ÚmapÚlistÚtupler*   Úndarray)r>   rK   ÚaxisÚvalid_typesÚxs        r-   ÚconvertzTimeConverter.convert�   s„   € äœDŸI™IÐ&ˆÜ�e˜[Ô)¬Z¸Ô->Ä(È5Ä/Ü˜E“?Ð"Ü�eœUÔ#Ø—9‘9œXÓ&Ð&Ü�eœd¤E¬2¯:©:´uÐ=Ô>Ù).Ó/© A”H˜Q•K¨Ñ/Ð/Øˆùò 0s   ÂB.c                ó�   — | dk7  ry t         j                  j                  «       }t        |«      }t	        j
                  ||d¬«      S )Nr(   )ÚmajlocÚmajfmtÚlabel)ÚmplÚtickerÚAutoLocatorÚTimeFormatterr@   ÚAxisInfo)rK   rb   rg   rh   s       r-   ÚaxisinfozTimeConverter.axisinfo¨   s;   € à�6Š>Øä—‘×'Ñ'Ó)ˆÜ˜vÓ&ˆÜ�‰ f°VÀ6ÔJÐJr/   c                 ó   — y)Nr(   © )rd   rb   s     r-   Údefault_unitszTimeConverter.default_units±   s   € àr/   N)Úreturnzmunits.AxisInfo | None)rs   rX   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodre   ro   rr   rq   r/   r-   r)   r)   œ   s>   „ Øñó ðð òKó ðKð òó ñr/   r)   c                  ó   — e Zd Zdd„Zddd„Zy)rm   c                ó   — || _         y r#   )Úlocs)Úselfrz   s     r-   Ú__init__zTimeFormatter.__init__¸   s	   € Øˆ�	r/   c                ó  — d}t        |«      }t        ||z
  dz  «      }|dz  }|dz  }t        |d«      \  }}t        |d«      \  }	}t        |	d«      \  }
}	|dk7  r't        j                  |	|||«      j                  |«      S |dk7  r*t        j                  |	|||«      j                  |«      dd S |dk7  r&t        j                  |	||«      j                  d	«      S t        j                  |	|«      j                  d
«      S )a¾  
        Return the time of day as a formatted string.

        Parameters
        ----------
        x : float
            The time of day specified as seconds since 00:00 (midnight),
            with up to microsecond precision.
        pos
            Unused

        Returns
        -------
        str
            A string in HH:MM:SS.mmmuuu format. Microseconds,
            milliseconds and seconds are only displayed if non-zero.
        z%H:%M:%S.%frO   éè  rN   é   r   Néýÿÿÿú%H:%M:%Sú%H:%M)ÚintÚroundÚdivmodr&   r(   Ústrftime)r{   rd   ÚposÚfmtÚsÚmsusÚmsÚusÚmÚhÚ_s              r-   Ú__call__zTimeFormatter.__call__»   sø   € ð$ ˆÜ�‹FˆÜ�a˜!‘e˜u‘_Ó%ˆØ�T‰\ˆØ�D‰[ˆÜ�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ø�Š7Ü—9‘9˜Q  1 dÓ+×4Ñ4°SÓ9Ð9Ø�1ŠWÜ—9‘9˜Q  1 dÓ+×4Ñ4°SÓ9¸#¸2Ð>Ð>Ø�!ŠVÜ—9‘9˜Q  1Ó%×.Ñ.¨zÓ:Ð:ä�y‰y˜˜A‹×'Ñ'¨Ó0Ð0r/   N©rs   ÚNone©r   ©r‡   z
int | Noners   rX   )rt   ru   rv   r|   r�   rq   r/   r-   rm   rm   ·   s   „ óõ!1r/   rm   c                  óB   — e Zd Zedd„«       Zedd„«       Zedd„«       Zy)r%   c                óŠ   — t        |d«      st        d«      ‚t        |j                  d¬«      }t        j                  | |«      S )NÚfreqz/Axis must have `freq` set to convert to PeriodsT©Ú	is_period)ÚhasattrÚ	TypeErrorr   r—   r%   Úconvert_from_freq)ÚvaluesrK   rb   r—   s       r-   re   zPeriodConverter.convertã   s=   € ô �t˜VÔ$ÜÐMÓNÐNÜ˜Ÿ™¨dÔ3ˆÜ×0Ñ0°¸Ó>Ð>r/   c                óœ   — t        | «      r%| D �cg c]  }t        j                  ||«      ‘Œ } }| S t        j                  | |«      } | S c c}w r#   )r   r%   Ú_convert_1d)r�   r—   Úvs      r-   rœ   z!PeriodConverter.convert_from_freqð   sQ   € ä˜vÔ&ÙDJÓKÁF¸q”o×1Ñ1°!°TÕ:ÀFˆFÐKð ˆô %×0Ñ0°¸Ó>ˆFØˆùò Ls   �A	c                ój  ‡— t         t        t        t        j                  t
        j                  f}t        j                  «       5  t        j                  ddt        ¬«       t        j                  ddt        ¬«       t        | |«      st        | «      st        | «      rt        | ‰«      cd d d «       S t        | t        «      r$| j!                  ‰«      j"                  cd d d «       S t        | t$        «      r| j'                  ˆfd„«      cd d d «       S t)        j*                  | d¬«      dk(  r t        | ‰¬	«      j"                  cd d d «       S t        | t,        t.        t
        j0                  f«      r#| D �cg c]  }t        |‰«      ‘Œ c}cd d d «       S 	 d d d «       | S c c}w # 1 sw Y   | S xY w)
NÚignoreú#Period with BDay freq is deprecated©ÚcategoryúPeriodDtype\[B\] is deprecatedc                ó   •— t        | ‰«      S r#   )Ú_get_datevalue)rd   r—   s    €r-   Ú<lambda>z-PeriodConverter._convert_1d.<locals>.<lambda>  s   ø€ ¬N¸1¸dÔ,Cr/   F)ÚskipnaÚperiod)r—   )rX   r   r   r&   r'   r*   r+   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningrB   r   r   r¨   r   ÚasfreqÚasi8r   r^   r	   Úinfer_dtyper_   r`   ra   )r�   r—   rc   rd   s    `  r-   rŸ   zPeriodConverter._convert_1dø   sU  ø€ äœH¤f¬d¯i©i¼¿¹ÐGˆÜ×$Ñ$Õ&Ü×#Ñ#ØÐ?Ì-õô ×#Ñ#ØÐ;Ämõô ˜6 ;Ô/Ü˜fÔ%Ü˜FÔ#ä% f¨dÓ3÷ 'Ñ&ô ˜F¤KÔ0Ø—}‘} TÓ*×/Ñ/÷ 'Ñ&ô ˜F¤EÔ*Ø—z‘zÓ"CÓD÷! 'Ñ&ô" —‘ °Ô6¸(ÒBô # 6°Ô5×:Ñ:÷) 'Ñ&ô* ˜F¤T¬5´"·*±*Ð$=Ô>Ù9?Ó@¹°Aœ q¨$Õ/¸Ñ@÷- 'Ñ&ð* ?÷+ 'ð. ˆùò A÷- 'ð. ˆús7   ÁA&F(Â5*F(Ã)#F(Ä0F(Å)F(Å9F#ÆF(Æ#F(Æ(F2N©rb   r   ©r—   r   )rt   ru   rv   rw   re   rœ   rŸ   rq   r/   r-   r%   r%   â   s<   „ Øò
?ó ð
?ð òó ðð òó ñr/   r%   c                ó@  — t        | t        «      r| j                  |«      j                  S t        | t        t
        t        j                  t        j                  f«      rt        | |«      j                  S t        | «      st        | «      r| S | €y t        d| › d�«      ‚)NzUnrecognizable date 'Ú')rB   r   r°   ÚordinalrX   r   r&   r'   r*   r+   r   r   Ú
ValueError)r'   r—   s     r-   r¨   r¨     s   € Ü�$œÔØ�{‰{˜4Ó ×(Ñ(Ð(Ü	�Dœ3¤¬$¯)©)´R·]±]ÐCÔ	DÜ�d˜DÓ!×)Ñ)Ð)Ü	�DÔ	œX dœ^ØˆØ	ˆØÜ
Ð,¨T¨F°!Ð4Ó
5Ð5r/   c                  ó@   — e Zd Zedd„«       Zed„ «       Zedd„«       Zy)r$   c                ó    — t        | «      r&| D �cg c]  }t        j                  |||«      ‘Œ } }| S t        j                  | ||«      } | S c c}w r#   )r   r$   rŸ   )r�   rK   rb   r    s       r-   re   zDatetimeConverter.convert#  sX   € ô ˜vÔ&ÙLRÓSÉFÀqÔ'×3Ñ3°A°t¸TÕBÈFˆFÐSð ˆô '×2Ñ2°6¸4ÀÓFˆFØˆùò Ts   �Ac                óà  — d„ }t        | t        t        j                  t        j
                  t        j                  f«      rt        j                  | «      S t        | «      st        | «      r| S t        | t        «      r || «      S t        | t        t        t        j                  t        t         f«      r©t        | t         «      rt        | «      } t        | t        «      r| j"                  } t        | t        j                  «      st%        j&                  | «      } t)        | «      st+        | «      r| S 	 t-        j.                  | «      } t        j                  | «      } | S # t0        $ r Y Œ"w xY w)Nc                óv   — 	 t        j                  t        j                  | «      «      S # t        $ r | cY S w xY wr#   )ÚmdatesÚdate2numÚtoolsÚto_datetimeÚ	Exception)r�   s    r-   Ú	try_parsez0DatetimeConverter._convert_1d.<locals>.try_parse4  s5   € ðÜ—‘¤u×'8Ñ'8¸Ó'@ÓAÐAøÜò Ø’ðús   ‚'* ª8·8)rB   r   r&   r'   r*   r+   r(   r½   r¾   r   r   rX   r_   r`   ra   r   r   r�   ÚcomÚasarray_tuplesafer   r   r¿   rÀ   rÁ   )r�   rK   rb   rÂ   s       r-   rŸ   zDatetimeConverter._convert_1d2  s  € ò	ô �fœx¬¯©´B·M±MÄ4Ç9Á9ÐMÔNÜ—?‘? 6Ó*Ð*Ü˜Ô¤8¨FÔ#3ØˆMÜ˜¤Ô$Ù˜VÓ$Ð$Ü˜¤¤u¬b¯j©j¼%ÄÐ HÔIÜ˜&¤&Ô)ô ˜v›�Ü˜&¤%Ô(ØŸ™�Ü˜f¤b§j¡jÔ1Ü×.Ñ.¨vÓ6�ä Ô'¬>¸&Ô+AØ�ðÜ×*Ñ*¨6Ó2�ô —_‘_ VÓ,ˆFàˆøô ò Ùðús   Ä5E! Å!	E-Å,E-c                óÊ   — | }t        |¬«      }t        ||¬«      }t        j                  ddd«      }t        j                  ddd«      }t	        j
                  ||d||f¬«      S )z°
        Return the :class:`~matplotlib.units.AxisInfo` for *unit*.

        *unit* is a tzinfo instance or None.
        The *axis* argument is required but not used.
        )ÚtziÐ  é   iÚ  Ú )rg   rh   ri   Údefault_limits)ÚPandasAutoDateLocatorÚPandasAutoDateFormatterr&   r'   r@   rn   )rK   rb   rÆ   rg   rh   ÚdateminÚdatemaxs          r-   ro   zDatetimeConverter.axisinfoV  sb   € ð ˆä&¨"Ô-ˆÜ(¨°BÔ7ˆÜ—)‘)˜D ! QÓ'ˆÜ—)‘)˜D ! QÓ'ˆä�‰Ø &°ÀGÈWÐCUô
ð 	
r/   Nr³   )rK   ztzinfo | Noners   zmunits.AxisInfo)rt   ru   rv   rw   re   rŸ   ro   rq   r/   r-   r$   r$   "  s=   „ Øòó ðð ñ!ó ð!ðF ò
ó ñ
r/   r$   c                  ó   — e Zd Zddd„Zy)rË   Nc                óH   — t         j                  j                  | |||«       y r#   )r½   ÚAutoDateFormatterr|   )r{   ÚlocatorrÆ   Ú
defaultfmts       r-   r|   z PandasAutoDateFormatter.__init__k  s   € Ü× Ñ ×)Ñ)¨$°¸¸ZÕHr/   )Nz%Y-%m-%d)rÒ   rX   rs   r’   )rt   ru   rv   r|   rq   r/   r-   rË   rË   j  s   „ õIr/   rË   c                  ó   — e Zd Zd„ Zd„ Zy)rÊ   c                óÐ  — ||z
  j                  «       }t        |«      | j                  k  r›d| _        t	        | j
                  «      }|j                  | j                  «        |j                  j                  | j                  j                  «       Ž   |j                  j                  | j                  j                  «       Ž  |S t        j                  j                  | ||«      S )z*Pick the best locator based on a distance.éÿÿÿÿ)Útotal_secondsÚabsÚminticksÚ_freqÚMilliSecondLocatorrÆ   Úset_axisrb   Úset_view_intervalÚget_view_intervalÚset_data_intervalÚget_data_intervalr½   ÚAutoDateLocatorÚget_locator)r{   ÚdminÚdmaxrU   rÑ   s        r-   rá   z!PandasAutoDateLocator.get_locatorp  s¹   € à˜$‘;×-Ñ-Ó/ˆäˆw‹<˜$Ÿ-™-Ò'ØˆDŒJÜ(¨¯©Ó1ˆGØ×Ñ˜TŸY™YÔ'ð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð ˆNä×%Ñ%×1Ñ1°$¸¸dÓCÐCr/   c                ó@   — t         j                  | j                  «      S r#   )rÚ   Úget_unit_genericrÙ   ©r{   s    r-   Ú	_get_unitzPandasAutoDateLocator._get_unit…  s   € Ü!×2Ñ2°4·:±:Ó>Ð>r/   N)rt   ru   rv   rá   rç   rq   r/   r-   rÊ   rÊ   o  s   „ òDó*?r/   rÊ   c                  ó@   — e Zd ZdZd	d„Zd„ Zed„ «       Zd„ Zd„ Z	d„ Z
y)
rÚ   g÷LêÚH>c                óR   — t         j                  j                  | |«       d| _        y )Ng      ð?)r½   ÚDateLocatorr|   Ú	_interval)r{   rÆ   s     r-   r|   zMilliSecondLocator.__init__Œ  s   € Ü×Ñ×#Ñ# D¨"Ô-Øˆ�r/   c                ó$   — | j                  d«      S )NrÕ   )rå   ræ   s    r-   rç   zMilliSecondLocator._get_unit�  s   € Ø×$Ñ$ RÓ(Ð(r/   c                ón   — t         j                  j                  | «      }|dk  rt        j                  S |S )Nr   )r½   ÚRRuleLocatorrå   rÚ   ÚUNIT)r—   rK   s     r-   rå   z#MilliSecondLocator.get_unit_generic“  s0   € ä×"Ñ"×3Ñ3°DÓ9ˆØ�!Š8Ü%×*Ñ*Ð*Øˆr/   c                óF  — 	 | j                  «       \  }}t        j                  ||f«      \  }}||z
  dz  dz  }d}dD ]  }|||dz
  z  k  r	|| _         n	d| _        Œ ||z
  | j                  «       | j                  «       z  z  }|| j                  dz  kD  r't        d|d	›d
|› d|› d| j                  dz  d	›d�	«      ‚| j                  «       }|› d�}	| j                  j                  d «      }
|j                  d ¬«      }|j                  d ¬«      }t        |||	|
¬«      j                  t        «      }	 t        |«      dkD  r&| j!                  t        j                  |«      «      }|S 	 t        j                  ||g«      }|S # t        $ r g cY S w xY w# t"        $ r Y Œ5w xY w)Ni€Q r~   é   )rÇ   é
   é2   éd   éÈ   iô  rÇ   g     @�@é   z)MillisecondLocator estimated to generate rY   z ticks from z to z: exceeds Locator.MAXTICKS* 2 (z) r‹   )r   )ÚstartÚendr—   rÆ   r   )Úviewlim_to_dtr¸   r½   r¾   rë   rç   Ú_get_intervalÚMAXTICKSÚRuntimeErrorrÆ   ÚtznameÚreplacer   ÚastypeÚobjectÚlenÚraise_if_exceedsrÁ   )r{   râ   rã   ÚnmaxÚnminÚnumÚmax_millis_ticksÚintervalÚestimater—   rÆ   ÚstÚedÚ	all_datesrz   Úlimss                   r-   r�   zMilliSecondLocator.__call__š  sÎ  € ð	Ø×+Ñ+Ó-‰JˆD�$ô
 —_‘_ d¨D \Ó2‰
ˆˆdà�d‰{˜eÑ# dÑ*ˆØÐÛ2ˆHØ�hÐ"2°QÑ"6Ñ7Ò7Ø!)�”Ùà#ˆD�Nð 3ð ˜4‘K D§N¡NÓ$4°t×7IÑ7IÓ7KÑ$KÑLˆà�d—m‘m aÑ'Ò'ÜØ;Ø˜A�,˜l¨4¨&°°T°Fð ;ØŸ™¨Ñ)¨!Ð,¨Bð0óð ð ×%Ñ%Ó'ˆØ�˜2ˆˆØ�W‰W�^‰^˜DÓ!ˆØ�\‰\ ˆ\Ó&ˆØ�\‰\ ˆ\Ó&ˆÜ R¨R°d¸rÔB×IÑIÌ&ÓQˆ	ð	Ü�9‹~ Ò!Ø×,Ñ,¬V¯_©_¸YÓ-GÓH�Ø�ð "ô �‰  d˜|Ó,ˆØˆøôO ò 	ØŠIð	ûôF ò 	Ùð	ús#   ‚F Ä53F ÆFÆFÆ	F ÆF c                ó   — | j                   S r#   )rë   ræ   s    r-   rú   z MilliSecondLocator._get_intervalÇ  s   € Ø�~‰~Ðr/   c                ó    — | j                  «       \  }}t        j                  |«      }t        j                  |«      }| j                  ||«      S )z@
        Set the view limits to include the data range.
        )Údatalim_to_dtr½   r¾   Únonsingular)r{   râ   rã   ÚvminÚvmaxs        r-   Ú	autoscalezMilliSecondLocator.autoscaleÊ  sE   € ð
 ×'Ñ'Ó)‰
ˆˆdä�‰˜tÓ$ˆÜ�‰˜tÓ$ˆà×Ñ  dÓ+Ð+r/   Nr‘   )rt   ru   rv   rï   r|   rç   rw   rå   r�   rú   r  rq   r/   r-   rÚ   rÚ   ‰  s5   „ Ø#€Dóò)ð ñó ðò+òZó
,r/   rÚ   c                óÖ   — | dk  r	d\  }}||fS | dk  r	d\  }}||fS | dk  r	d\  }}||fS | dk  r	d\  }}||fS | d	k  r	d
\  }}||fS | dk  r	d\  }}||fS | dz  dz   }|dz  |dz  }}||fS )zN
    Returns a default spacing between consecutive ticks for annual data.
    é   )rÇ   rÇ   é   )rÇ   rö   ró   )rÇ   é   rô   )r  rò   rõ   )r  é   iX  )rò   ró   r~   rÇ   rq   )ÚnyearsÚmin_spacingÚmaj_spacingÚfactors       r-   Ú_get_default_annual_spacingr  Þ  sî   € ð �‚{Ø%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�"ŠØ%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�"ŠØ%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%,Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%,Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%-Ñ"ˆ�kð ˜Ð%Ð%ð ˜4‘ !Ñ#ˆØ&,¨r¡k°6¸C±<�kˆØ˜Ð%Ð%r/   c                óJ   — t        | |«      }t        j                  |«      d   S )zÓ
    Returns the indices where the given period changes.

    Parameters
    ----------
    dates : PeriodIndex
        Array of intervals to monitor.
    period : str
        Name of the period to monitor.
    r   )Ú_period_break_maskr*   Únonzero)Údatesr«   Úmasks      r-   Ú_period_breakr#  ô  s$   € ô ˜e VÓ,€DÜ�:‰:�dÓ˜AÑÐr/   c                ó\   — t        | |«      }t        | d| j                  z  z
  |«      }||k7  S )NrÇ   )Úgetattrr—   )r!  r«   ÚcurrentrE   s       r-   r  r    s2   € Ü�e˜VÓ$€GÜ�u˜q 5§:¡:™~Ñ-¨vÓ6€HØ�hÑÐr/   c                ób   — | j                   dk(  s| j                   dk(  r| d   dk(  r	|dz  dkD  ryy)zè
    Returns true if the ``label_flags`` indicate there is at least one label
    for this level.

    if the minimum view limit is not an exact integer, then the first tick
    label won't be shown, so we must adjust for that.
    r   rÇ   ç        FT©Úsize)Úlabel_flagsr  s     r-   Úhas_level_labelr,  	  s;   € ð ×Ñ˜1ÒØ×Ñ˜AÒ +¨a¡.°AÒ"5¸$À¹(ÀSº.ààr/   c                ó  — | j                   }t        j                  |«      }d}|t        j                  j                  k\  r t        | j                  «      }d|z  }d|z  }nž|t        j                  k(  rd}d}n†|t        j                  k(  rd}d}nn|t        j                  k(  rd}d}nV|t        j                  k(  rd}d	}n>|t        j                  k(  rd}d
}n&|t        j                  k(  rd}d}nt        d|› �«      ‚|||fS )NrÕ   é   im  é   i  é   é4   rÇ   é   é   úUnsupported frequency: )Ú_period_dtype_coder   Úfrom_period_dtype_codeÚFR_HRr>   r   Ú_cresoÚFR_BUSÚFR_DAYÚFR_WKÚFR_MTHÚFR_QTRÚFR_ANNÚNotImplementedError)r—   Ú
dtype_codeÚ
freq_groupÚppdÚppmÚppys         r-   Ú_get_periods_per_ymdrE    s  € à×(Ñ(€JÜ×1Ñ1°*Ó=€Jà
€Cà”Y—_‘_×*Ñ*Ò*ä˜dŸk™kÓ*ˆØ�3‰hˆØ�C‰i‰Ø	”y×'Ñ'Ò	'ØˆØ‰Ø	”y×'Ñ'Ò	'ØˆØ‰Ø	”y—‘Ò	&ØˆØ‰Ø	”y×'Ñ'Ò	'ØˆØ‰Ø	”y×'Ñ'Ò	'ØˆØ‰Ø	”y×'Ñ'Ò	'ØˆØ‰ä!Ð$;¸J¸<Ð"HÓIÐIà��Sˆ=Ðr/   c           	     óN
  ‡‡‡‡‡‡‡‡— |j                   }t        |«      \  }}}| Št        | «      t        |«      }} || z
  dz   }t        j                  «       5  t        j
                  ddt        ¬«       t        j
                  ddt        ¬«       t        t        | |¬«      t        ||¬«      |¬«      Šd d d «       t        j                  |dt        j                  fd	t        fd
t        fdg¬«      }‰j                  |d   d d  d|d   d d  d|d	   ddg<   |d	   Š|d
   Š|d   Šˆfd„Š||k  �r·t        ‰d«      Št        ‰d«      }	t        ‰d«      Šd<ˆˆˆˆˆˆˆˆfd„}
d=ˆˆˆˆˆˆfd„}d=ˆˆˆˆˆˆfd„}||dz  k  r
 |d«       |S ||dz  k  r
 |d«       |S ||dz  k  r
 |d«       |S ||dz  k  r
 |d«       |S ||d z  k  r
 |d!«       |S ||d"z  k  r
 |d#«       |S ||d$z  k  r
 |d«       |S ||d%z  k  r
 |d«       |S ||d&z  k  r
 |d«       |S ||d'z  k  r
 |d!«       |S ||d(z  k  r
 |d#«       |S ||d)z  k  r |
dd*«       |S ||d+z  k  r |
dd*«       |S ||d,z  k  r |
d-d*«       |S ||d)z  k  r |
d(d«       |S ||d.z  k  r |
d'd«       |S d‰|	<   d‰‰<   d/‰‰<   d0‰|	<   d1‰‰<   t        ‰‰«      s$t        |	‰«      sd1‰ ‰‰«      <   |S d1‰ ‰|	«      <   |S ||d.z  k  r¡t        ‰d«      }	d‰|	<   |t         j"                  j$                  k  rd|d
<   nt        ‰d«      Šd|d
   ‰<   t        ‰d2«      }t        ‰d«      Šd/‰|<   d3‰|	<   d4‰‰<   t        ‰‰«      s$t        |	‰«      sd4‰ ‰|«      <   |S d4‰ ‰|	«      <   |S |d5|z  k  r[t        ‰d«      Št        ‰d«      }	t        ‰d2«      }d‰|	<   d‰|<   d*‰‰<   d*‰|	<   d6‰|	<   d7‰‰<   t        ‰‰«      sd7‰ ‰|	«      <   |S |d)|z  k  r:t        ‰d«      Št        ‰d8«      }t        ‰d«      }	d‰|<   d‰|	<   d6‰|<   d7‰‰<   |S |d.|z  k  rPt        ‰d«      Št        ‰d«      }	d‰‰<   d‰|	<   d*‰‰<   ‰|	   j&                  }|	|dk(  |d9k(  z     }d6‰|<   d7‰‰<   |S |d:|z  k  r.t        ‰d«      Št        ‰d8«      }d‰‰<   d‰|<   d*‰‰<   d;‰‰<   |S t        ‰d«      Š‰‰   j(                  }||z  }t+        |«      \  }}‰||z  dk(     }d‰|<   ‰||z  dk(     }d‰|<   d;‰|<   |S # 1 sw Y   �ŒgxY w)>NrÇ   r¢   r£   r¤   r¦   ©r·   r—   )r÷   rø   r—   ÚvalÚmajÚmin)rˆ   z|S20©ÚdtyperÈ   rˆ   Tr   rÕ   c                óV   •— | d   dk(  r| j                   dkD  r‰dz  dkD  r| d   S | d   S )Nr   rÇ   r(  r)  )r+  Ú	vmin_origs    €r-   Úfirst_labelz"_daily_finder.<locals>.first_labelb  s<   ø€ Ø˜‰N˜aÒ k×&6Ñ&6¸Ò&:À)ÈaÁ-ÐSVÒAVØ˜q‘>Ð!à˜q‘>Ð!r/   ÚdayÚmonthÚyearc                óÂ   •— ‰j                   }t        ‰d«      }d‰‰<   d‰	||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰<   |rt        ‰‰
«      sd‰ ‰‰«      <   y y y )NrP   Tr   r‚   ú%H:%M
%d-%bú%H:%M
%d-%b
%Y)rP   r  r,  )Úlabel_intervalÚforce_year_startÚtargetr"  Údates_Ú	day_startrO  Úinfo_fmtÚinfo_majÚinfo_minrN  Ú
year_starts       €€€€€€€€r-   Ú_hour_finderz#_daily_finder.<locals>._hour_findern  sŒ   ø€ Ø—[‘[ˆFÜ% f¨fÓ5ˆDØ"&ˆH�YÑØ>BˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø>EˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø"0ˆH�YÑØ#5ˆH�ZÑ Ù¬¸
ÀIÔ(NØ3E�™ YÓ/Ò0ð )OÐr/   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )NrP   rQ   Tr   r‚   rT  rU  )rQ   r#  r  )
rV  rX  Ú
hour_startr"  rY  rZ  r[  r\  r]  r^  s
       €€€€€€r-   Ú_minute_finderz%_daily_finder.<locals>._minute_findery  st   ø€ Ø—]‘]ˆFÜ& v¨vÓ6ˆJÜ% f¨hÓ7ˆDØ#'ˆH�ZÑ Ø>BˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø>EˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø"0ˆH�YÑØ#5ˆH�ZÒ r/   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )NrQ   rR   Tr   r�   z%H:%M:%S
%d-%bz%H:%M:%S
%d-%b
%Y)rR   r#  r  )
rV  rX  Úminute_startr"  rY  rZ  r[  r\  r]  r^  s
       €€€€€€r-   Ú_second_finderz%_daily_finder.<locals>._second_finderƒ  st   ø€ Ø—]‘]ˆFÜ(¨°Ó:ˆLÜ% f¨hÓ7ˆDØ%)ˆH�\Ñ"Ø>BˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø>HˆH�T˜V nÑ4¸Ñ9Ñ:Ñ;Ø"3ˆH�YÑØ#8ˆH�ZÒ r/   ià.  ip  rö   i`	  r  i°  rò   i   é   i�  é   é–   éF   r   r2  rñ   ç      @Fg      ø?g      ô?r0  r3  z%dz%d
%bz%d
%b
%YÚweekz

%bz

%b
%Yçffffffò?ú%bú%b
%YÚquarteré   r  ú%Y)rV  rƒ   rW  Úboolrs   r’   )rV  rƒ   rs   r’   )r5  rE  rƒ   r¬   r­   r®   r¯   r   r   r*   ÚzerosÚint64rr  r±   r#  r,  r   r7  r>   rQ  rR  r  )r  r  r—   r@  ÚperiodsperdayÚperiodspermonthÚperiodsperyearÚspanÚinfoÚmonth_startr_  rb  re  Ú
week_startÚquarter_startÚmonth_breakÚ
jan_or_julÚ
year_breakr  Ú
min_anndefÚ
maj_anndefÚ	major_idxÚ	minor_idxrY  rZ  rO  r[  r\  r]  rN  r^  s                          @@@@@@@@r-   Ú_daily_finderr„  =  s2  ÿ€ ð ×(Ñ(€Jä5IÈ$Ó5OÑ2€M�? Nð €IÜ˜“Iœs 4›yˆ4€TØ�$‰;˜‰?€Dä	×	 Ñ	 Õ	"Ü×ÑØÐ;Ämõ	
ô 	×ÑØÐ7Ä-õ	
ô Ü ¨DÔ1Ü˜t¨$Ô/Øô
ˆ÷ 
#ô �8‰8Ø�eœRŸX™XÐ&¨´¨¸¼t°}ÀoÐVô€Dð —[‘[€Dˆ�K‘€NØ€Dˆ�K‘€NØ€Dˆ�K��B�Ñà�E‰{€HØ�E‰{€HØ�E‰{€Hô"ð ˆÓÜ! &¨%Ó0ˆ	Ü# F¨GÓ4ˆÜ" 6¨6Ó2ˆ
÷		Fô 		F÷	6ò 	6÷	9ò 	9ð �- %Ñ'Ò'Ù˜1Ôðh €Kðg �M DÑ(Ò(Ù˜1Ôðd €Kðc �M DÑ(Ò(Ù˜1Ôð` €Kð_ �M DÑ(Ò(Ù˜2Ôð\ €Kð[ �M CÑ'Ò'Ù˜2ÔðX €KðW �M CÑ'Ò'Ù˜2ÔðT €KðS �M CÑ'Ò'Ù˜1ÔðP €KðO �M BÑ&Ò&Ù˜1ÔðL €KðK �M BÑ&Ò&Ù˜1ÔðH €KðG �M BÑ&Ò&Ù˜2ÔðD €KðC �M AÑ%Ò%Ù˜2Ôð@ €Kð �M CÑ'Ò'Ù˜˜EÔ"ð| €Kð{ �M CÑ'Ò'Ù˜˜EÔ"ðx €Kðw �M DÑ(Ò(Ù˜˜EÔ"ðt €Kðs �M CÑ'Ò'Ù˜˜DÔ!ðp €Kðo �M AÑ%Ò%Ù˜˜TÔ"ðl €Kði %)ˆH�[Ñ!Ø"&ˆH�YÑØ"&ˆH�YÑØ$,ˆH�[Ñ!Ø#/ˆH�ZÑ Ü" :¨yÔ9Ü& {°IÔ>Ø7C�H™[¨Ó3Ñ4ðZ €KðW :F�H™[¨Ó5Ñ6ðV €KðQ 
� 1Ñ$Ò	$Ü# F¨GÓ4ˆØ $ˆ�ÑØœ	Ÿ™×-Ñ-Ò-ØˆD�ŠKä% f¨eÓ4ˆIØ%)ˆD�‰K˜	Ñ"Ü" 6¨6Ó2ˆ
Ü" 6¨6Ó2ˆ
Ø#ˆ�ÑØ (ˆ�ÑØ+ˆ�ÑÜ˜z¨9Ô5Ü" ;°	Ô:Ø4@�™ ZÓ0Ñ1ðr €Kðo 6B�™ [Ó1Ñ2ðn €Kðk 
�˜Ñ&Ò	&Ü" 6¨6Ó2ˆ
Ü# F¨GÓ4ˆÜ" 6¨6Ó2ˆ
Ø $ˆ�ÑØ#ˆ�ÑØ$ˆ�ÑØ %ˆ�ÑØ $ˆ�ÑØ'ˆ�ÑÜ˜z¨9Ô5Ø19ˆH‘[ Ó-Ñ.ðT €KðQ 
��~Ñ%Ò	%Ü" 6¨6Ó2ˆ
Ü% f¨iÓ8ˆÜ# F¨GÓ4ˆØ"&ˆ�ÑØ $ˆ�ÑØ"&ˆ�ÑØ'ˆ�ÑðB €Kð? 
��^Ñ#Ò	#Ü" 6¨6Ó2ˆ
Ü# F¨GÓ4ˆØ#ˆ�ÑØ $ˆ�ÑØ$ˆ�Ñà˜[Ñ)×/Ñ/ˆØ  +°Ñ"2°{ÀaÑ7GÑ!HÑIˆ
Ø#ˆ�ÑØ'ˆ�Ñð* €Kð' 
��nÑ$Ò	$Ü" 6¨6Ó2ˆ
Ü% f¨iÓ8ˆØ#ˆ�ÑØ"&ˆ�ÑØ$ˆ�ÑØ#ˆ�Ñð €Kô # 6¨6Ó2ˆ
Ø˜JÑ'×,Ñ,ˆ
Ø˜Ñ&ˆÜ#>¸vÓ#FÑ ˆ�ZØ 
¨ZÑ 7¸1Ñ <Ñ>ˆ	Ø"ˆ�ÑØ 
¨ZÑ 7¸1Ñ <Ñ>ˆ	Ø"ˆ�ÑØ"ˆ�Ñà€K÷s 
#Ñ	"ús   ÁATÔT$c                ó˜  — t        |«      \  }}}| }t        | «      t        |«      }} || z
  dz   }t        j                  |dt        fdt        fdt        fdg¬«      }t        j
                  | |dz   «      |d<   |d   }d|d<   |d	z  d
k(  j                  «       d
   }	|d   }
|d   }|d|z  k  r;d|
|	<   d|d<   d|d d  d||	<   t        |	|«      s|j                  dkD  rd}nd
}d||<   |S |d|z  k  r4|dz  d
k(  j                  «       }d|
|	<   d|d   |<   d|d<   d||<   d||	<   |S |d|z  k  r'd|
|	<   d|d<   |d	z  d
k(  |d	z  dk(  z  }d||<   d||	<   |S |d|z  k  r*|dz  d
k(  j                  «       }d|
|	<   d|d   |<   d||	<   |S ||z  }t        |«      \  }}||	   d	z  dz   }|	||z  d
k(     }d|
|<   d|d   |	||z  d
k(     <   d||<   |S )NrÇ   rH  rI  rJ  ©rˆ   z|S8rK  rÈ   rˆ   r2  r   rl  Trm  rn  rj  r0  r3  rñ   r  rq  ©
rE  rƒ   r*   rs  rr  Úaranger   r,  r*  r  )r  r  r—   r�   rw  rN  rx  ry  rY  r^  r\  r[  Úidxr|  r~  r  r€  r�  Úyearsr‚  s                       r-   Ú_monthly_finderr‹    s¡  € ä/°Ó5Ñ€A€qˆ.à€IÜ˜“Iœs 4›yˆ4€TØ�$‰;˜‰?€Dô �8‰8Ø�eœS�\ E¬4 =°5¼$°-ÀÐPô€Dô —)‘)˜D $¨¡(Ó+€Dˆ�KØ�%‰[€FØ€Dˆ�KØ˜2‘+ Ñ"×+Ñ+Ó-¨aÑ0€JØ�E‰{€HØ�E‰{€Hàˆt�nÑ$Ò$Ø#ˆ�ÑØˆˆU‰àˆ‘ˆØ'ˆ�Ñä˜z¨9Ô5Ø�{‰{˜QŠØ‘à�Ø$ˆH�S‰MðL €KðI 
��~Ñ%Ò	%Ø !™ q™×1Ñ1Ó3ˆØ#ˆ�Ñð &*ˆˆU‰�MÑ"ØˆˆU‰à"&ˆ�ÑØ'ˆ�Ñð6 €Kð3 
��^Ñ#Ò	#Ø#ˆ�ÑØˆˆU‰à˜r‘k QÑ&¨6°B©;¸!Ñ+;Ñ<ˆ
Ø#ˆ�ÑØ'ˆ�Ñð& €Kð# 
��nÑ$Ò	$Ø !™ q™×1Ñ1Ó3ˆØ#ˆ�ÑØ%)ˆˆU‰�MÑ"à#ˆ�Ñð €Kð ˜Ñ&ˆÜ#>¸vÓ#FÑ ˆ�ZØ�zÑ" bÑ(¨1Ñ,ˆØ ¨
Ñ 2°aÑ 7Ñ9ˆ	Ø"ˆ�ÑØ=AˆˆU‰�J ¨
Ñ 2°aÑ 7Ñ9Ñ:à"ˆ�Ñà€Kr/   c                ó�  — t        |«      \  }}}| }t        | «      t        |«      }} || z
  dz   }t        j                  |dt        fdt        fdt        fdg¬«      }t        j
                  | |dz   «      |d<   d|d<   |d   }|d   }	|d   }
|d	z  d
k(  j                  «       d
   }|d|z  k  r;d|	|<   d|d<   d|
d d  d|
|<   t        ||«      s|j                  dkD  rd}nd
}d|
|<   |S |d|z  k  rd|	|<   d|d<   d|
|<   |S ||   d	z  dz   }||z  }t        |«      \  }}|||z  d
k(     }d|	|<   d|d   |||z  d
k(     <   d|
|<   |S )NrÇ   rH  rI  rJ  r†  rK  rÈ   rˆ   r3  r   g      @TzQ%qzQ%q
%Fr  z%Fi²  r‡  )r  r  r—   r�   rw  rN  rx  ry  rY  r\  r[  r^  r‰  rŠ  r  r€  r�  r‚  s                     r-   Ú_quarterly_finderr�  M  sÅ  € ä/°Ó5Ñ€A€qˆ.Ø€IÜ˜“Iœs 4›yˆ4€TØ�$‰;˜‰?€Dä�8‰8Ø�eœS�\ E¬4 =°5¼$°-ÀÐPô€Dô —)‘)˜D $¨¡(Ó+€Dˆ�KØ€Dˆ�KØ�%‰[€FØ�E‰{€HØ�E‰{€HØ˜1‘* ‘/×*Ñ*Ó,¨QÑ/€Jàˆs�^Ñ#Ò#Ø#ˆ�ÑØˆˆU‰àˆ‘ˆØ(ˆ�ÑÜ˜z¨9Ô5Ø�{‰{˜QŠØ‘à�Ø%ˆH�S‰Mð" €Kð 
��nÑ$Ò	$Ø#ˆ�ÑØˆˆU‰Ø#ˆ�Ñð €Kð �zÑ" aÑ'¨$Ñ.ˆØ˜Ñ&ˆÜ#>¸vÓ#FÑ ˆ�ZØ ¨
Ñ 2°aÑ 7Ñ9ˆ	Ø"ˆ�ÑØ=AˆˆU‰�J ¨
Ñ 2°aÑ 7Ñ9Ñ:Ø"ˆ�Ñà€Kr/   c                óZ  — t        | «      t        |dz   «      }} || z
  dz   }t        j                  |dt         fdt        fdt        fdg¬«      }t        j                  | |dz   «      |d<   d|d<   |d   }t        |«      \  }}||z  d	k(  }||z  d	k(  }	d
|d   |<   d
|d   |	<   d|d   |<   |S )NrÇ   rH  rI  rJ  r†  rK  rÈ   rˆ   r   Trq  )rƒ   r*   rs  rr  rˆ  r  )
r  r  r—   rx  ry  rY  r€  r�  r‚  rƒ  s
             r-   Ú_annual_finderr�  }  sÖ   € ô ˜“Iœs 4¨!¡8›}ˆ4€TØ�$‰;˜‰?€Dä�8‰8Ø�eœS�\ E¬4 =°5¼$°-ÀÐPô€Dô —)‘)˜D $¨¡(Ó+€Dˆ�KØ€Dˆ�KØ�%‰[€Fä:¸4Ó@Ñ€Z�Ø˜Ñ# qÑ(€IØ˜Ñ# qÑ(€IØ!€Dˆ�K�	ÑØ!€Dˆ�K�	ÑØ!€Dˆ�K�	Ñà€Kr/   c                ób  — | j                   }t        j                  |«      }|t        j                  k(  rt        S |t        j
                  k(  rt        S |t        j                  k(  rt        S |t        j                  j                  k\  s|t        j                  k(  rt        S t        d|› �«      ‚)Nr4  )r5  r   r6  r>  r�  r=  r�  r<  r‹  r9  r>   r;  r„  r?  )r—   r@  Úfgroups      r-   Ú
get_finderr’  ”  s‘   € à×(Ñ(€JÜ×-Ñ-¨jÓ9€Fà”×!Ñ!Ò!ÜÐØ	”9×#Ñ#Ò	#Ü Ð Ø	”9×#Ñ#Ò	#ÜÐØ
œ	×(Ñ(×.Ñ.Ò
.°6¼Y¿_¹_Ò3LÜÐä!Ð$;¸J¸<Ð"HÓIÐIr/   c                  ód   — e Zd ZU dZded<   	 	 	 	 	 	 	 d		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Zd„ Zd„ Zd„ Zy)ÚTimeSeries_DateLocatoraß  
    Locates the ticks along an axis controlled by a :class:`Series`.

    Parameters
    ----------
    freq : BaseOffset
        Valid frequency specifier.
    minor_locator : {False, True}, optional
        Whether the locator is for minor ticks (True) or not.
    dynamic_mode : {True, False}, optional
        Whether the locator should work in dynamic mode.
    base : {int}, optional
    quarter : {int}, optional
    month : {int}, optional
    day : {int}, optional
    r   rb   Nc	                ó¾   — t        |d¬«      }|| _        || _        |||c| _        | _        | _        || _        || _        d| _        || _	        t        |«      | _        y ©NTr˜   r   )r   r—   Úbasero  rQ  rP  ÚisminorÚ	isdynamicÚoffsetÚplot_objr’  Úfinder)	r{   r—   Úminor_locatorÚdynamic_moder—  ro  rQ  rP  r›  s	            r-   r|   zTimeSeries_DateLocator.__init__¹  s\   € ô ˜¨Ô.ˆØˆŒ	ØˆŒ	Ø07¸ÀÐ,ˆŒ�t”z 4¤8Ø$ˆŒØ%ˆŒØˆŒØ ˆŒÜ  Ó&ˆ�r/   c                óÄ   — | j                  ||| j                  «      }| j                  rt        j                  |d   |d   «      S t        j                  |d   |d   «      S )z'Returns the default locations of ticks.rJ  rH  rI  )rœ  r—   r˜  r*   Úcompress)r{   r  r  rÑ   s       r-   Ú_get_default_locsz(TimeSeries_DateLocator._get_default_locsÎ  sQ   € à—+‘+˜d D¨$¯)©)Ó4ˆà�<Š<Ü—;‘;˜w u™~¨w°u©~Ó>Ð>Ü�{‰{˜7 5™>¨7°5©>Ó:Ð:r/   c                ó   — t        | j                  j                  «       «      }|\  }}||k  r||}}| j                  r| j	                  ||«      }|S | j
                  }t        ||«      \  }}|dz   |z  }t        t        ||dz   |«      «      }|S )z"Return the locations of the ticks.rÇ   )	r`   rb   rÝ   r™  r¡  r—  r…   r_   Úrange)r{   Úvir  r  rz   r—  rY   r�   s           r-   r�   zTimeSeries_DateLocator.__call__Ö  sš   € ô �4—9‘9×.Ñ.Ó0Ó1ˆØ‰
ˆˆdØ�$Š;Ø˜t�$ˆDØ�>Š>Ø×)Ñ)¨$°Ó5ˆDð ˆð —9‘9ˆDÜ˜D $Ó'‰FˆQ�Ø˜‘E˜T‘>ˆDô œ˜d D¨1¡H¨dÓ3Ó4ˆDØˆr/   c                óÒ   — | j                   j                  «       \  }}| j                  ||«      }|ddg   \  }}||k(  r
|dz  }|dz  }t        j                  j                  ||«      S )zf
        Sets the view limits to the nearest multiples of base that contain the
        data.
        r   rÕ   rÇ   )rb   rß   r¡  rj   Ú
transformsr  )r{   r  r  rz   s       r-   r  z TimeSeries_DateLocator.autoscaleé  sm   € ð —y‘y×2Ñ2Ó4‰ˆˆtà×%Ñ% d¨DÓ1ˆØ˜Q ˜G‘}‰ˆˆtØ�4Š<Ø�A‰IˆDØ�A‰IˆDÜ�~‰~×)Ñ)¨$°Ó5Ð5r/   )FTrÇ   rÇ   rÇ   rÇ   N)r—   r   r�  rr  rž  rr  r—  rƒ   ro  rƒ   rQ  rƒ   rP  rƒ   rs   r’   )	rt   ru   rv   Ú__doc__Ú__annotations__r|   r¡  r�   r  rq   r/   r-   r”  r”  ¥  s‡   … ñð" ƒJð
 $Ø!ØØØØØð'àð'ð ð'ð ð	'ð
 ð'ð ð'ð ð'ð ð'ð 
ó'ò*;òó&6r/   r”  c                  óR   — e Zd ZU dZded<   	 	 	 d		 	 	 	 	 	 	 d
d„Zd„ Zdd„Zddd„Zy)ÚTimeSeries_DateFormatteraš  
    Formats the ticks along an axis controlled by a :class:`PeriodIndex`.

    Parameters
    ----------
    freq : BaseOffset
        Valid frequency specifier.
    minor_locator : bool, default False
        Whether the current formatter should apply to minor ticks (True) or
        major ticks (False).
    dynamic_mode : bool, default True
        Whether the formatter works in dynamic mode or not.
    r   rb   Nc                ó®   — t        |d¬«      }d | _        || _        g | _        d | _        || _        || _        d| _        || _        t        |«      | _
        y r–  )r   Úformatr—   rz   Ú
formatdictr˜  r™  rš  r›  r’  rœ  )r{   r—   r�  rž  r›  s        r-   r|   z!TimeSeries_DateFormatter.__init__  sT   € ô ˜¨Ô.ˆØˆŒØˆŒ	Ø!ˆŒ	Ø15ˆŒØ$ˆŒØ%ˆŒØˆŒØ ˆŒÜ  Ó&ˆ�r/   c           	     óP  — | j                  ||| j                  «      }| j                  r3t        j                  |d   t        j
                  |d   «      z  |«      }nt        j                  |d   |«      }|D ���ci c]
  \  }}}}||“Œ c}}}| _        | j                  S c c}}}w )z"Returns the default ticks spacing.rJ  rI  )rœ  r—   r˜  r*   r   Úlogical_notr­  )r{   r  r  ry  r¬  rd   r�   Úfs           r-   Ú_set_default_formatz,TimeSeries_DateFormatter._set_default_format!  sŠ   € à�{‰{˜4  t§y¡yÓ1ˆà�<Š<Ü—[‘[  e¡¬r¯~©~¸dÀ5¹kÓ/JÑ!JÈDÓQ‰Fä—[‘[  e¡¨dÓ3ˆFÙ4:Õ;±F¡L Q¨¨1¨a˜1˜a™4°FÓ;ˆŒØ�‰Ðùô <s   Á<B!c                ó”   — || _         t        | j                  j                  «       «      \  }}||k  r||}}| j	                  ||«       y)zSets the locations of the ticksN)rz   r`   rb   rÝ   r±  )r{   rz   r  r  s       r-   Úset_locsz!TimeSeries_DateFormatter.set_locs,  sF   € ð
 ˆŒ	ä˜TŸY™Y×8Ñ8Ó:Ó;‰ˆˆtØ�$Š;Ø  $�4ˆTØ× Ñ   tÕ,r/   c                óº  — | j                   €y| j                   j                  |d«      }t        |t        j                  «      r|j                  d«      }t        j                  «       5  t        j                  ddt        ¬«       t        t        |«      | j                  ¬«      }d d d «       t        t        «      sJ ‚|j                  |«      S # 1 sw Y   Œ,xY w)NrÈ   zutf-8r¢   r£   r¤   rG  )r­  rI   rB   r*   Úbytes_Údecoder¬   r­   r®   r¯   r   rƒ   r—   r†   )r{   rd   r‡   rˆ   r«   s        r-   r�   z!TimeSeries_DateFormatter.__call__8  s©   € Ø�?‰?Ð"Øà—/‘/×%Ñ% a¨Ó,ˆCÜ˜#œrŸy™yÔ)Ø—j‘j Ó)�Ü×(Ñ(Õ*Ü×'Ñ'ØØ9Ü*õô
  ¬¨A«°T·Y±YÔ?�÷ +ô ˜f¤fÔ-Ð-Ð-Ø—?‘? 3Ó'Ð'÷ +Ð*ús   Á)=CÃC)FTN)r—   r   r�  rr  rž  rr  rs   r’   r‘   r“   r”   )	rt   ru   rv   r§  r¨  r|   r±  r³  r�   rq   r/   r-   rª  rª  þ  sS   … ñð ƒJð
 $Ø!Øð'àð'ð ð'ð ð	'ð 
ó'ò$	ó
-õ(r/   rª  c                  óP   ‡ — e Zd ZU dZddˆ fd„Zded<   ed	d
d„«       Zddd„Zˆ xZ	S )ÚTimeSeries_TimedeltaFormatterzR
    Formats the ticks along an axis controlled by a :class:`TimedeltaIndex`.
    c                ó0   •— || _         t        ‰| �	  «        y r#   )rK   Úsuperr|   )r{   rK   Ú	__class__s     €r-   r|   z&TimeSeries_TimedeltaFormatter.__init__O  s   ø€ ØˆŒ	Ü‰ÑÕr/   r   rb   c                óL  — t        | d|z  «      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d||z
  z  z  «      }	t        |«      d›dt        |«      d›dt        |«      d›�}|dkD  r|d|	d|› d	�›�z  }|dk7  rt        |«      d	›d
|› �}|S )z8
        Convert seconds to 'D days HH:MM:SS.F'
        rò   rN   r   Ú02dÚ:r   Ú.Ú0rY   z days )r…   rƒ   )
rd   r‡   Ú
n_decimalsÚexpr‰   Únsr�   rŽ   rY   Údecimalss
             r-   Úformat_timedelta_ticksz4TimeSeries_TimedeltaFormatter.format_timedelta_ticksU  sË   € ô
 �q˜"˜c™'Ó"‰ˆˆ2Ü�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ü�r˜B :°Ñ#3Ñ4Ñ4Ó5ˆÜ�1‹v�cˆl˜!œC ›F 3˜< q¬¨Q«°¨Ð5ˆØ˜Š>Ø�1�X˜a 
˜|¨1˜_Ð-Ð.Ñ.ˆAØ�Š6Ü�q“6˜!�*˜F 1 #Ð&ˆAØˆr/   c                ó>  — dddddœ| j                      }t        | j                  j                  «       «      \  }}t	        t        t        j                  t        j                  dd|z  z  t        ||z
  «      z  «      «      «      |«      }| j                  ||||«      S )Né	   rñ   r0  r   )rÃ  rŒ   r‹   r‰   rô   rò   )rK   r`   rb   rÝ   rJ  rƒ   r*   ÚceilÚlog10r×   rÅ  )r{   rd   r‡   rÂ  r  r  rÁ  s          r-   r�   z&TimeSeries_TimedeltaFormatter.__call__f  s…   € Ø˜a q¨qÑ1°$·)±)Ñ<ˆÜ˜TŸY™Y×8Ñ8Ó:Ó;‰ˆˆtÜœœRŸW™W¤R§X¡X¨c°B¸±G©m¼cÀ$ÈÁ+Ó>NÑ.NÓ%OÓPÓQÐSVÓWˆ
Ø×*Ñ*¨1¨c°:¸sÓCÐCr/   )rÃ  )rK   r   )rÇ  )rÁ  rƒ   rÂ  rƒ   rs   rX   r“   r”   )
rt   ru   rv   r§  r|   r¨  rw   rÅ  r�   Ú__classcell__)r»  s   @r-   r¸  r¸  J  s2   ø… ñöð ƒJàóó ð÷ Dð Dr/   r¸  )rs   z-list[tuple[type, type[mdates.DateConverter]]])r5   r   rs   r   )rs   zGenerator[None]r‘   )rT   z	pydt.timers   Úfloatr´   )rs   ztuple[int, int])r!  r   r«   rX   rs   únpt.NDArray[np.intp])r!  r   r«   rX   rs   znpt.NDArray[np.bool_])r+  rÌ  r  rË  rs   rr  )r—   r   rs   ztuple[int, int, int])r  rË  r  rË  r—   r   rs   z
np.ndarray)gÚ
__future__r   Ú
contextlibr   r&   r   r7   Útypingr   r   r   r¬   Ú
matplotlibrj   Úmatplotlib.datesr!  r½   Úmatplotlib.unitsÚunitsr@   Únumpyr*   Úpandas._libsr	   Úpandas._libs.tslibsr
   r   Úpandas._libs.tslibs.dtypesr   r   Úpandas._typingr   r   Úpandas.core.dtypes.commonr   r   r   r   r   Úpandasr   r   r   Úpandas.core.commonÚcoreÚcommonrÃ   Úpandas.core.indexes.datetimesr   Úpandas.core.indexes.periodr   r   r   Úpandas.core.tools.datetimesr¿   Ú	datetimesÚcollections.abcr   Úmatplotlib.axisr   Úpandas._libs.tslibs.offsetsr   r   r!   r¨  r.   r9   Úcontextmanagerr2   r<   r=   rV   r[   ÚConversionInterfacer)   rk   Ú	Formatterrm   ÚDateConverterr%   r¨   r$   rÐ   rË   rà   rÊ   rê   rÚ   r  r#  r  r,  rE  Úcacher„  r‹  r�  r�  r’  ÚLocatorr”  rª  r¸  rq   r/   r-   Ú<module>rë     s+  ðÞ "ã Û ÷ó ÷ñ ó
 ã Ý !Ý !Û å ÷÷÷÷
õ ÷ñ ÷
 !Ð  Ý 4÷ñ ÷
 ,Ó +áÝ)å$å6Ý'ð €
ˆDÓ ó	ó
ð ×Ñòó ðó*'ó.óò
ô�F×.Ñ.ô ô6%1�C—J‘J×(Ñ(ô %1ôV0�f×*Ñ*ô 0óf	6ôE
˜×,Ñ,ô E
ôPI˜f×6Ñ6ô Iô
?˜F×2Ñ2ô ?ô4K,˜×+Ñ+ô K,ój&ó,óóó !ðH ‡�òDó ðDðN ‡�òDó ðDðN ‡�ò,ó ð,ð^ ‡�òó ðó,Jô"Q6˜SŸZ™Z×/Ñ/ô Q6ôrI(˜sŸz™z×3Ñ3ô I(ôX D C§J¡J×$8Ñ$8õ  Dr/   