Ë
    ¤eh©�  ã                  óø  — d dl mZ d dlZd dlZd dlmZmZmZ d dlZd dlm	Z	m
Z
mZ d dlZd dlmZ d dlmZmZm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l0m1c m2Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9 d dl:m1c m;c m<Z; e	rd dl=m>Z> d dl?m@Z@ d dlAmBZB i ZCd„ ZDd9d„ZEejŒ                  d:d„«       ZGd;d„ZHd;d„ZId<d„ZJd„ ZK G d„ dej˜                  «      ZM G d„ de«      ZN G d„ dejž                  «      ZPd„ ZQ G d „ d!ejž                  «      ZR G d"„ d#ej¦                  «      ZT G d$„ d%ejª                  «      ZV G d&„ d'ej®                  «      ZXd=d>d(„ZYd?d)„ZZd@d*„Z[dAd+„Z\dBd,„Z]dCd-„Z^ej¾                  dDd.„«       Z`ej¾                  dDd/„«       Zaej¾                  dDd0„«       Zbej¾                  dDd1„«       ZcdEd2„Zd G d3„ d4e«      Ze G d5„ d6e«      Zf G d7„ d8e«      Zgy)Fé    )ÚannotationsN)ÚdatetimeÚ	timedeltaÚtzinfo)ÚTYPE_CHECKINGÚAnyÚcast)ÚAutoLocatorÚ	FormatterÚLocator)Únonsingular)Ú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)Ú
BaseOffsetc                 óÞ   — 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    úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/plotting/_matplotlib/converter.pyÚ	get_pairsr0   K   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>.wrapper\   s+   ø€ äÓ ñ 	)Ù˜Ð( Ñ(÷	)÷ 	)ò 	)ús   Œž')Ú	functoolsÚwrapsr	   r   )r7   r8   s   ` r/   Ú%register_pandas_matplotlib_convertersr;   W   s/   ø€ ô
 ‡_�_�TÓó)ó ð)ô ”�7ÓÐr1   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/   r4   r4   d   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%   )r0   ÚmunitsÚregistryÚ
isinstanceÚ
_mpl_units)r.   Útype_ÚclsÚpreviouss       r/   r>   r>   z   sb   € Ü‹K€EØò '‰
ˆˆsà”F—O‘OÑ#¬J´v·±ÀuÑ7MÈsÔ,SÜ—‘ uÑ-ˆHØ (ŒJ�uÑá!$£Œ�‰˜Òñ'r1   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%   )r0   ÚtyperB   rC   ÚgetÚpoprE   Úitemsr&   r'   r+   )rF   rG   ÚunitÚ	formatters       r/   r?   r?   …   s…   € ä“kò '‰
ˆˆsä”—‘×#Ñ# EÓ*Ó+¨sÒ2Ü�O‰O×Ñ Õ&ð'ô &×+Ñ+Ó-ò .‰ˆˆiÜ�	‹?Ô#4´oÄ}Ð"UÒUà$-ŒF�O‰O˜DÒ!ñ.r1   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_ordinalfrY   “   s8   € Ø�g‰g˜‰n˜rŸy™y¨2™~Ñ-°·	±	Ñ9¸B¿N¹NÈUÑ<RÑR€GØ€Nr1   c                ó¸   — t        | t        «      r$t        | «      }t        |j	                  «       «      S t        | t
        j                  «      rt        | «      S | S r%   )rD   Ústrr   rY   r*   r(   )ÚdÚparseds     r/   Útime2numr^   ˜   sC   € Ü�!”SÔÜ˜1“ˆÜ˜FŸK™K›MÓ*Ð*Ü�!”T—Y‘YÔÜ˜A‹ÐØ€Hr1   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%   )r[   r(   r*   rD   r   r   r^   r   ÚmapÚlistÚtupler,   Úndarray)r@   rN   Ú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                óh   — | dk7  ry t        «       }t        |«      }t        j                  ||d¬«      S )Nr*   )ÚmajlocÚmajfmtÚlabel)r
   ÚTimeFormatterrB   ÚAxisInfo)rN   re   rj   rk   s       r/   ÚaxisinfozTimeConverter.axisinfo­   s0   € à�6Š>Øä“ˆÜ˜vÓ&ˆÜ�‰ f°VÀ6ÔJÐJr1   c                 ó   — y)Nr*   © ©rg   re   s     r/   Údefault_unitszTimeConverter.default_units¶   s   € àr1   N)Úreturnzmunits.AxisInfo | None)rt   r[   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodrh   ro   rs   rq   r1   r/   r+   r+   ¡   s>   „ Øñó ðð òKó ðKð òó ñr1   r+   c                  ó   — e Zd Zdd„Zddd„Zy)rm   c                ó   — || _         y r%   )Úlocs)Úselfr{   s     r/   Ú__init__zTimeFormatter.__init__½   s	   € Øˆ�	r1   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.%frR   éè  rQ   é   r   Néýÿÿÿú%H:%M:%Sú%H:%M)ÚintÚroundÚdivmodr(   r*   Ústrftime)r|   rg   Ú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Ð0r1   N©rt   ÚNone©r   ©rˆ   z
int | Nonert   r[   )ru   rv   rw   r}   r‘   rq   r1   r/   rm   rm   ¼   s   „ óõ!1r1   rm   c                  ó,   — e Zd Zed„ «       Zed„ «       Zy)r'   c                ó    — t        | «      r&| D �cg c]  }t        j                  |||«      ‘Œ } }| S t        j                  | ||«      } | S c c}w r%   )r   r'   Ú_convert_1d)ÚvaluesÚunitsre   Úvs       r/   rh   zPeriodConverter.convertè   sT   € ä˜vÔ&ØKQÖRÀa”o×1Ñ1°!°U¸DÕAÐRˆFÐRð ˆô %×0Ñ0°¸ÀÓEˆFØˆùò Só   �Ac                ó  ‡— t        ‰d«      st        d«      ‚t        t        t        t
        j                  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#        | ‰j$                  «      cd d d «       S t        | t&        «      r.| j)                  ‰j$                  «      j*                  cd d d «       S t        | t,        «      r| j/                  ˆfd„«      cd d d «       S t1        j2                  | d¬	«      d
k(  r*t'        | ‰j$                  ¬«      j*                  cd d d «       S t        | t4        t6        t        j8                  t,        f«      r-| D �cg c]  }t#        |‰j$                  «      ‘Œ c}cd d d «       S 	 d d d «       | S c c}w # 1 sw Y   | S xY w)NÚfreqz/Axis must have `freq` set to convert to PeriodsÚignoreú#Period with BDay freq is deprecated©ÚcategoryúPeriodDtype\[B\] is deprecatedc                ó0   •— t        | ‰j                  «      S r%   )Úget_datevaluerž   rr   s    €r/   ú<lambda>z-PeriodConverter._convert_1d.<locals>.<lambda>  s   ø€ ¬M¸!¸T¿Y¹YÓ,G€ r1   F)ÚskipnaÚperiod)rž   )ÚhasattrÚ	TypeErrorr[   r   r   r(   r)   r*   r,   r-   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningrD   r   r   r¥   rž   r   ÚasfreqÚasi8r   ra   r   Úinfer_dtyperb   rc   rd   )r™   rš   re   rf   rg   s     `  r/   r˜   zPeriodConverter._convert_1dð   sœ  ø€ ä�t˜VÔ$ÜÐMÓNÐNÜœH¤f¬d¯i©i¼¿¹ÄBÇMÁMÐRˆÜ×$Ñ$Ó&ñ 	EÜ×#Ñ#ØÐ?Ì-õô ×#Ñ#ØÐ;Ämõô ˜6 ;Ô/Ü˜fÔ%Ü˜FÔ#ä$ V¨T¯Y©YÓ7÷	Eñ 	Eô ˜F¤KÔ0Ø—}‘} T§Y¡YÓ/×4Ñ4÷	Eñ 	Eô ˜F¤EÔ*Ø—z‘zÓ"GÓH÷!	Eñ 	Eô" —‘ °Ô6¸(ÒBô # 6°·	±	Ô:×?Ñ?÷)	Eñ 	Eô* ˜F¤T¬5´"·*±*¼eÐ$DÔEØ=CÖD¸œ a¨¯©Õ3ÒD÷-	Eñ 	Eð* F÷+	Eð. ˆùò E÷-	Eð. ˆús7   Á+A0G;Ã%4G;Ä##G;Å:G;Æ.G;ÇG6ÇG;Ç6G;Ç;HN)ru   rv   rw   rx   rh   r˜   rq   r1   r/   r'   r'   ç   s(   „ Øñó ðð ñó ñr1   r'   c                ó¼  — t        | t        «      r| j                  |«      j                  S t        | t        t
        t        j                  t        j                  t        j                  f«      rt        | |«      j                  S t        | «      s:t        | «      s/t        | t        j                  t        f«      r| j                  dk(  r| S | €y t!        d| › d�«      ‚)Né   zUnrecognizable date 'ú')rD   r   r¯   Úordinalr[   r   r(   r)   r*   r,   r-   r   r   rd   r   ÚsizeÚ
ValueError)r)   rž   s     r/   r¥   r¥     s£   € Ü�$œÔØ�{‰{˜4Ó ×(Ñ(Ð(Ü	�Dœ3¤¬$¯)©)´T·Y±YÄÇÁÐNÔ	OÜ�d˜DÓ!×)Ñ)Ð)ä�4ÔÜ�DŒ>Ü�tœbŸj™j¬%Ð0Ô1°t·y±yÀA²~àˆØ	ˆØÜ
Ð,¨T¨F°!Ð4Ó
5Ð5r1   c                  ó>   — e Zd Ze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™   rN   re   r›   s       r/   rh   zDatetimeConverter.convert!  sW   € ô ˜vÔ&ØLRÖSÀqÔ'×3Ñ3°A°t¸TÕBÐSˆFÐSð ˆô '×2Ñ2°6¸4ÀÓFˆFØˆùò Trœ   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_parse,  s5   € ðÜ—‘¤u×'8Ñ'8¸Ó'@ÓAÐAøÜò Ø’ðús   ‚'* ª8·8)rD   r   r(   r)   r,   r-   r*   r¼   r½   r   r   r[   rb   rc   rd   r   r   r™   ÚcomÚasarray_tuplesafer   r   r¾   r¿   rÀ   )r™   rN   re   rÁ   s       r/   r˜   zDatetimeConverter._convert_1d*  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Ð  r³   iÚ  Ú )rj   rk   rl   Údefault_limits)ÚPandasAutoDateLocatorÚPandasAutoDateFormatterr(   r)   rB   rn   )rN   re   rÅ   rj   rk   ÚdateminÚdatemaxs          r/   ro   zDatetimeConverter.axisinfoN  sb   € ð ˆä&¨"Ô-ˆÜ(¨°BÔ7ˆÜ—)‘)˜D ! QÓ'ˆÜ—)‘)˜D ! QÓ'ˆä�‰Ø &°ÀGÈWÐCUô
ð 	
r1   N)rN   útzinfo | Nonert   zmunits.AxisInfo)ru   rv   rw   rx   rh   r˜   ro   rq   r1   r/   r&   r&      s=   „ Øñó ðð ñ!ó ð!ðF ò
ó ñ
r1   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__c  s   € Ü× Ñ ×)Ñ)¨$°¸¸ZÕHr1   )Nz%Y-%m-%d)rÑ   r[   rt   r“   )ru   rv   rw   r}   rq   r1   r/   rÉ   rÉ   b  s   „ õIr1   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_axisre   Úset_view_intervalÚget_view_intervalÚset_data_intervalÚget_data_intervalr¼   ÚAutoDateLocatorÚget_locator)r|   ÚdminÚdmaxrX   rÐ   s        r/   rà   z!PandasAutoDateLocator.get_locatorh  s¹   € à˜$‘;×-Ñ-Ó/ˆäˆw‹<˜$Ÿ-™-Ò'ØˆDŒJÜ(¨¯©Ó1ˆGØ×Ñ˜TŸY™YÔ'ð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð ˆNä×%Ñ%×1Ñ1°$¸¸dÓCÐCr1   c                ó@   — t         j                  | j                  «      S r%   )rÙ   Úget_unit_genericrØ   ©r|   s    r/   Ú	_get_unitzPandasAutoDateLocator._get_unit}  s   € Ü!×2Ñ2°4·:±:Ó>Ð>r1   N)ru   rv   rw   rà   ræ   rq   r1   r/   rÈ   rÈ   g  s   „ òDó*?r1   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¨"Ô-Øˆ�r1   c                ó$   — | j                  d«      S )NrÔ   )rä   rå   s    r/   ræ   zMilliSecondLocator._get_unitˆ  s   € Ø×$Ñ$ RÓ(Ð(r1   c                ón   — t         j                  j                  | «      }|dk  rt        j                  S |S )Nr   )r¼   ÚRRuleLocatorrä   rÙ   ÚUNIT)rž   rN   s     r/   rä   z#MilliSecondLocator.get_unit_generic‹  s0   € ä×"Ñ"×3Ñ3°DÓ9ˆØ�!Š8Ü%×*Ñ*Ð*Øˆr1   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 r\   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_datesr{   Ú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ð	$ð ˜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   € Ø�~‰~Ðr1   c                ó    — | j                  «       \  }}t        j                  |«      }t        j                  |«      }| j                  ||«      S )z@
        Set the view limits to include the data range.
        )Údatalim_to_dtr¼   r½   r   )r|   rá   râ   ÚvminÚvmaxs        r/   Ú	autoscalezMilliSecondLocator.autoscaleÂ  sE   € ð
 ×'Ñ'Ó)‰
ˆˆdä�‰˜tÓ$ˆÜ�‰˜tÓ$ˆà×Ñ  dÓ+Ð+r1   Nr’   )ru   rv   rw   rî   r}   ræ   rx   rä   r‘   rù   r  rq   r1   r/   rÙ   rÙ   �  s5   „ Ø#€Dóò)ð ñó ðò+òZó
,r1   rÙ   c           
     óà  — t        | «      }t        j                  |«      }t        | «      |z
  }t	        d|z  d«      \  }}t	        d|z  d«      \  }}t	        d|z  d«      \  }}t        d|z  «      }|dk  rd}t        |j
                  |j                  |j                  t        |«      t        |«      t        |«      |«      }|�|j                  |«      }|dkD  r|t        d|z
  ¬«      z  }|S )	Nr€   r³   rQ   rR   rñ   r   i6B )Úmicroseconds)
r„   r   ÚfromordinalÚfloatr†   ÚyearÚmonthÚdayÚ
astimezoner   )	rg   rÅ   ÚixÚdtÚ	remainderrS   rT   rU   rV   s	            r/   Ú_from_ordinalr  Ï  sé   € Ü	ˆQ‹€BÜ	×	Ñ	˜bÓ	!€BÜ�a“˜2‘€IÜ˜R )™^¨QÓ/�O€Dˆ)Ü˜r I™~¨qÓ1Ñ€FˆIÜ˜r I™~¨qÓ1Ñ€FˆIÜ�i )Ñ+Ó,€KØ�RÒØˆÜ	Ø
�‰�—‘˜2Ÿ6™6¤3 t£9¬c°&«k¼3¸v»;Èó
€Bð 
€~Ø�]‰]˜2Óˆà�VÒØ
Œi Y°Ñ%<Ô=Ñ=ˆà€Ir1   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ˆØ˜Ð%Ð%r1   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ÑÐr1   c                ó\   — t        | |«      }t        | d| j                  z  z
  |«      }||k7  S )Nr³   )Úgetattrrž   )r+  r¨   ÚcurrentrH   s       r/   r)  r)    s2   € Ü�e˜VÓ$€GÜ�u˜q 5§:¡:™~Ñ-¨vÓ6€HØ�hÑÐr1   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©r¶   )Úlabel_flagsr  s     r/   Úhas_level_labelr5    s;   € ð ×Ñ˜1ÒØ×Ñ˜AÒ +¨a¡.°AÒ"5¸$À¹(ÀSº.ààr1   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_ymdrN  '  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ˆ=Ðr1   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³   r2  r3  )r4  Ú	vmin_origs    €r/   Úfirst_labelz"_daily_finder.<locals>.first_labelp  s<   ø€ Ø˜‰N˜aÒ k×&6Ñ&6¸Ò&:À)ÈaÁ-ÐSVÒAVØ˜q‘>Ð!à˜q‘>Ð!r1   r  r  r  c                óÂ   •— ‰j                   }t        ‰d«      }d‰‰<   d‰	||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰<   |rt        ‰‰
«      sd‰ ‰‰«      <   y y y )NrS   Tr   rƒ   ú%H:%M
%d-%bú%H:%M
%d-%b
%Y)rS   r)  r5  )Úlabel_intervalÚforce_year_startÚtargetr,  Údates_Ú	day_startrX  Úinfo_fmtÚinfo_majÚinfo_minrW  Ú
year_starts       €€€€€€€€r/   Ú_hour_finderz#_daily_finder.<locals>._hour_finder|  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Ðr1   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )NrS   rT   Tr   rƒ   rZ  r[  )rT   r-  r)  )
r\  r^  Ú
hour_startr,  r_  r`  ra  rb  rc  rd  s
       €€€€€€r/   Ú_minute_finderz%_daily_finder.<locals>._minute_finder‡  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Ò r1   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )NrT   rU   Tr   r‚   z%H:%M:%S
%d-%bz%H:%M:%S
%d-%b
%Y)rU   r-  r)  )
r\  r^  Úminute_startr,  r_  r`  ra  rb  rc  rd  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Ò r1   ià.  ip  rõ   i`	  r!  i°  rñ   i   é   i�  é   é–   éF   r€   r;  rð   ç      @Fg      ø?g      ô?r9  r<  z%dz%d
%bz%d
%b
%YÚweekz

%bz

%b
%Yçffffffò?ú%bú%b
%YÚquarteré   r  ú%Y)r\  r„   r]  Úboolrt   r“   )r\  r„   rt   r“   )r>  rN  r„   r«   r¬   r­   r®   r    r   r,   ÚzerosÚint64rx  r°   r-  r5  r   r@  r@   r  r  r'  )r  r  rž   rI  ÚperiodsperdayÚperiodspermonthÚperiodsperyearÚspanÚinfoÚmonth_startre  rh  rk  Ú
week_startÚquarter_startÚmonth_breakÚ
jan_or_julÚ
year_breakr#  Ú
min_anndefÚ
maj_anndefÚ	major_idxÚ	minor_idxr_  r`  rX  ra  rb  rc  rW  rd  s                          @@@@@@@@r/   Ú_daily_finderrŠ  K  s9  ÿ€ ð ×(Ñ(€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³   rQ  rR  rS  ©r‰   z|S8rT  rÆ   r‰   r;  r   rr  Trs  rt  rp  r9  r<  rð   r  rw  ©
rN  r„   r,   ry  rx  Úaranger*  r5  r¶   r'  )r  r  rž   r�   r}  rW  r~  r  r_  rd  rb  ra  Ú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Ñ:à"ˆ�Ñà€Kr1   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³   rQ  rR  rS  rŒ  rT  rÆ   r‰   r<  r   g      @TzQ%qzQ%q
%Fr  z%Fi²  r�  )r  r  rž   r�   r}  rW  r~  r  r_  rb  ra  rd  r�  r�  r#  r†  r‡  rˆ  s                     r/   Ú_quarterly_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Ø€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Ñ:Ø"ˆ�Ñà€Kr1   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³   rQ  rR  rS  rŒ  rT  rÆ   r‰   r   Trw  )r„   r,   ry  rx  rŽ  r'  )
r  r  rž   r~  r  r_  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�	Ñà€Kr1   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|› �«      ‚)Nr=  )r>  r   r?  rG  r•  rF  r“  rE  r‘  rB  r@   rD  rŠ  rH  )rž   rI  Úfgroups      r/   Ú
get_finderr˜  ¢  s‘   € à×(Ñ(€JÜ×-Ñ-¨jÓ9€Fà”×!Ñ!Ò!ÜÐØ	”9×#Ñ#Ò	#Ü Ð Ø	”9×#Ñ#Ò	#ÜÐØ
œ	×(Ñ(×.Ñ.Ò
.°6¼Y¿_¹_Ò3LÜÐä!Ð$;¸J¸<Ð"HÓIÐIr1   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"   re   Nc	                ó¾   — t        |d¬«      }|| _        || _        |||c| _        | _        | _        || _        || _        d| _        || _	        t        |«      | _        y ©NT)Ú	is_periodr   )r   rž   Úbaseru  r  r  ÚisminorÚ	isdynamicÚoffsetÚplot_objr˜  Úfinder)	r|   rž   Úminor_locatorÚdynamic_moderž  ru  r  r  r¢  s	            r/   r}   zTimeSeries_DateLocator.__init__Ç  s\   € ô ˜¨Ô.ˆØˆŒ	ØˆŒ	Ø07¸ÀÐ,ˆŒ�t”z 4¤8Ø$ˆŒØ%ˆŒØˆŒØ ˆŒÜ  Ó&ˆ�r1   c                óÄ   — | j                  ||| j                  «      }| j                  rt        j                  |d   |d   «      S t        j                  |d   |d   «      S )z'Returns the default locations of ticks.rS  rQ  rR  )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©>Ó:Ð:r1   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³   )	rc   re   rÜ   r   r¨  rž  r†   rb   Úrange)r|   Úvir  r  r{   rž  r\   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Øˆr1   c                óª   — | j                   j                  «       \  }}| j                  ||«      }|ddg   \  }}||k(  r
|dz  }|dz  }t        ||«      S )zf
        Sets the view limits to the nearest multiples of base that contain the
        data.
        r   rÔ   r³   )re   rÞ   r¨  r   )r|   r  r  r{   s       r/   r  z TimeSeries_DateLocator.autoscale÷  sc   € ð —y‘y×2Ñ2Ó4‰ˆˆtà×%Ñ% d¨DÓ1ˆØ˜Q ˜G‘}‰ˆˆtØ�4Š<Ø�A‰IˆDØ�A‰IˆDÜ˜4 Ó&Ð&r1   )FTr³   r³   r³   r³   N)rž   r#   r¤  rx  r¥  rx  rž  r„   ru  r„   r  r„   r  r„   rt   r“   )	ru   rv   rw   Ú__doc__Ú__annotations__r}   r¨  r‘   r  rq   r1   r/   rš  rš  ³  s‡   … ñð" ƒJð
 $Ø!ØØØØØð'àð'ð ð'ð ð	'ð
 ð'ð ð'ð ð'ð ð'ð 
ó'ò*;òó&'r1   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"   re   Nc                ó®   — t        |d¬«      }d | _        || _        g | _        d | _        || _        || _        d| _        || _        t        |«      | _
        y rœ  )r   Úformatrž   r{   Ú
formatdictrŸ  r   r¡  r¢  r˜  r£  )r|   rž   r¤  r¥  r¢  s        r/   r}   z!TimeSeries_DateFormatter.__init__  sT   € ô ˜¨Ô.ˆØˆŒØˆŒ	Ø!ˆŒ	Ø15ˆŒØ$ˆŒØ%ˆŒØˆŒØ ˆŒÜ  Ó&ˆ�r1   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.rS  rR  )r£  rž   rŸ  r,   r§  Úlogical_notr³  )r|   r  r  r  r²  rg   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:×;Ð;¡L Q¨¨1¨a˜1˜a™4Ô;ˆŒØ�‰Ðùô <s   Á<B!c                ó”   — || _         t        | j                  j                  «       «      \  }}||k  r||}}| j	                  ||«       y)zSets the locations of the ticksN)r{   rc   re   rÜ   r·  )r|   r{   r  r  s       r/   Úset_locsz!TimeSeries_DateFormatter.set_locs:  sF   € ð
 ˆŒ	ä˜TŸY™Y×8Ñ8Ó:Ó;‰ˆˆtØ�$Š;Ø  $�4ˆTØ× Ñ   tÕ,r1   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¡   rP  )r³  rL   rD   r,   Úbytes_Údecoder«   r¬   r­   r®   r   r„   rž   r‡   )r|   rg   rˆ   r‰   r¨   s        r/   r‘   z!TimeSeries_DateFormatter.__call__F  s´   € Ø�?‰?Ð"Øà—/‘/×%Ñ% a¨Ó,ˆCÜ˜#œrŸy™yÔ)Ø—j‘j Ó)�Ü×(Ñ(Ó*ñ @Ü×'Ñ'ØØ9Ü*õô
  ¬¨A«°T·Y±YÔ?�÷@ô ˜f¤fÔ-Ð-Ð-Ø—?‘? 3Ó'Ð'÷@ð @ús   Á)=CÃC)FTN)rž   r#   r¤  rx  r¥  rx  rt   r“   r’   r”   r•   )	ru   rv   rw   r­  r®  r}   r·  r¹  r‘   rq   r1   r/   r°  r°    sS   … ñð ƒJð
 $Ø!Øð'àð'ð ð'ð ð	'ð 
ó'ò$	ó
-õ(r1   r°  c                  ó8   — e Zd ZU dZded<   edd„«       Zdd	d„Zy)
ÚTimeSeries_TimedeltaFormatterzR
    Formats the ticks along an axis controlled by a :class:`TimedeltaIndex`.
    r"   re   c                óF  — t        | d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d«      \  }}t        |d|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'
        i Êš;rQ   r€   rñ   é	   Ú02dú:r   ú.Ú0r\   z days )r†   r„   )	rg   rˆ   Ú
n_decimalsrŠ   ÚnsrŽ   r�   r\   Údecimalss	            r/   Úformat_timedelta_ticksz4TimeSeries_TimedeltaFormatter.format_timedelta_ticks_  sÆ   € ô
 �q˜%Ó ‰ˆˆ2Ü�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ü�a˜‹}‰ˆˆ1Ü�r˜B :°¡>Ñ2Ñ2Ó3ˆÜ�1‹v�cˆl˜!œC ›F 3˜< q¬¨Q«°¨Ð5ˆØ˜Š>Ø�1�X˜a 
˜|¨1˜_Ð-Ð.Ñ.ˆAØ�Š6Ü�q“6˜!�*˜F 1 #Ð&ˆAØˆr1   c                ó  — t        | j                  j                  «       «      \  }}t        t	        t        j                  t        j                  dt        ||z
  «      z  «      «      «      d«      }| j                  |||«      S )Nl    hí] rÀ  )
rc   re   rÜ   rS  r„   r,   ÚceilÚlog10rÖ   rÈ  )r|   rg   rˆ   r  r  rÅ  s         r/   r‘   z&TimeSeries_TimedeltaFormatter.__call__p  sd   € Ü˜TŸY™Y×8Ñ8Ó:Ó;‰ˆˆtÜœœRŸW™W¤R§X¡X¨k¼CÀÀtÁÓ<LÑ.LÓ%MÓNÓOÐQRÓSˆ
Ø×*Ñ*¨1¨c°:Ó>Ð>r1   N)rÅ  r„   rt   r[   r”   r•   )ru   rv   rw   r­  r®  rx   rÈ  r‘   rq   r1   r/   r¾  r¾  X  s%   … ñð ƒJàòó ðõ ?r1   r¾  )r7   r   rt   r   )rt   zGenerator[None, None, None]r’   )rW   z	pydt.timert   r  r%   )rÅ   rÌ   rt   r   )rt   ztuple[int, int])r+  r   r¨   r[   rt   únpt.NDArray[np.intp])r+  r   r¨   r[   rt   znpt.NDArray[np.bool_])r4  rÌ  r  r  rt   rx  )rž   r#   rt   ztuple[int, int, int])r  r  r  r  rž   r#   rt   z
np.ndarray)rž   r#   )hÚ
__future__r   Ú
contextlibr   r(   r   r   r9   Útypingr   r   r	   r«   Úmatplotlib.datesr+  r¼   Úmatplotlib.tickerr
   r   r   Úmatplotlib.transformsr   Úmatplotlib.unitsrš   rB   Ú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#   rE   r0   r;   Úcontextmanagerr4   r>   r?   rY   r^   ÚConversionInterfacer+   rm   ÚDateConverterr'   r¥   r&   rÏ   rÉ   rß   rÈ   ré   rÙ   r  r'  r-  r)  r5  rN  ÚcacherŠ  r‘  r“  r•  r˜  rš  r°  r¾  rq   r1   r/   ú<module>ré     s  ðÝ "ã Û ÷ñ ó
 ÷ñ ó
 å !÷ñ õ
 .Ý !Û å ÷÷÷÷
õ ÷ñ ÷
 !Ð  Ý 4÷ñ ÷
 ,Ó +áÝ)å$å6ð €
ò	ó
ð ×Ñòó ðó*'ó.óò
ô�F×.Ñ.ô ô6%1�Iô %1ôV%�f×*Ñ*ô %òP6ô"?
˜×,Ñ,ô ?
ôDI˜f×6Ñ6ô Iô
?˜F×2Ñ2ô ?ô4K,˜×+Ñ+ô K,ô\ó:&ó,óóó !ðH ‡�òDó ðDðN ‡�òDó ðDðN ‡�ò,ó ð,ð^ ‡�òó ðó,Jô"Q'˜Wô Q'ôrI(˜yô I(ôX? Iõ ?r1   