Ë
    u™ãjW¥  ã                  ó\  — 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 d dl	m
Z
mZm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 d dlmZmZ d d	lm Z m!Z! d d
l"m#Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z,m-Z- d dl.m/c m0Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m/c m:c m;Z: e
rd dl<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZCmDZDmEZE i ZFdeGd<   dBd„ZHdCd„ZIdBd„ZJdDd„ZKej˜                  dEd„«       ZMdFd„ZNdFd„ZOdGd„ZPd„ ZQdHd„ZRdId„ZSdJd „ZTdKd!„ZU G d"„ d#ej¬                  «      ZW G d$„ d%ej°                  j²                  «      ZZ G d&„ d'ej¶                  «      Z\d(„ Z] G d)„ d*ej¶                  «      Z^ G d+„ d,ej¾                  «      Z` G d-„ d.ejÂ                  «      Zb G d/„ d0ejÆ                  «      ZddLd1„Ze	 	 	 	 	 	 dMd2„Zf	 	 	 	 	 	 dNd3„ZgdOd4„ZhdPd5„Zi	 	 	 	 	 	 	 	 	 	 dQd6„ZjejÖ                  	 dR	 	 	 	 	 	 	 	 	 dSd7„«       ZlejÖ                  	 dR	 	 	 	 	 	 	 	 	 dSd8„«       ZmejÖ                  	 dR	 	 	 	 	 	 	 	 	 dSd9„«       ZnejÖ                  	 dR	 	 	 	 	 	 	 	 	 dSd:„«       ZodTd;„Zp G d<„ d=ej°                  jâ                  «      Zr G d>„ d?ej°                  j²                  «      Zs G d@„ dAej°                  j²                  «      Zty)Ué    )ÚannotationsN)ÚdatetimeÚtzinfo)Úchain)ÚTYPE_CHECKINGÚAnyÚcast)Ú_global_config)Úlib)Ú	TimestampÚ	to_offset)Ú	FreqGroupÚperiods_per_day)Ú	_registry)Úis_floatÚis_float_dtypeÚ
is_integerÚis_integer_dtypeÚis_nested_list_like)ÚIndexÚSeries)ÚDatetimeIndexÚ
date_range)ÚPeriodÚPeriodIndexÚperiod_range)Ú	Generator)ÚAxis)Ú
BaseOffset)ÚFÚTimeUnitÚnptz&dict[type, munits.ConversionInterface]Ú
_mpl_unitsc                 ól   — t        t        j                  d„ t        j                  D «       «      «      } | S )zJReturn a list of (type, Converter) pairs of all plottable ExtensionDtypes.c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)Ú_get_plot_converter)Ú.0Údtypes     úp/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/plotting/_matplotlib/converter.pyú	<genexpr>z%plottable_ea_pairs.<locals>.<genexpr>Q   s   è ø€ ò 
Ø,1ˆE×%Ñ%×'ñ
ùs   ‚)Úlistr   Úfrom_iterableÚ_ea_dtypes_registryÚdtypes)Úconverter_pairss    r*   Úplottable_ea_pairsr1   N   s5   € äÜ×Ññ 
Ü5H×5OÑ5Oô
ó 	
ó€Oð
 Ðó    c                 óD  — t         j                  t         j                  t         j                  t        t
        j                  t
        j                  t
        j                  t
        j                  g} | j                  t        «       D �cg c]  }|d   ‘Œ	 c}«       | S c c}w )z!Return a list of plottable types.r   )ÚnpÚnumberÚ
datetime64Útimedelta64r   ÚpydtÚdater   ÚtimeÚ	timedeltaÚextendr1   )ÚtypesÚpairs     r*   Úplottable_typesr?   X   sj   € ô 	�	‰	Ü
�‰Ü
�‰ÜÜ�	‰	Ü�‰Ü�	‰	Ü�‰ð	€Eð 
‡L�LÔ&8Ó&:Ö;˜d�$�q“'Ò;Ô<Ø€Lùò <s   ÂBc                 ó  — t         t        ft        t        ft        j
                  t        ft        j                  t        ft        j                  t        ft        j                  t        fg} | j                  t        «       «       | S )zKReturn a list of (type, converter) pairs for the matplotlib units registry.)r   ÚDatetimeConverterr   ÚPeriodConverterr8   r   r9   r:   ÚTimeConverterr4   r6   r<   r1   )Úpairss    r*   Ú	get_pairsrE   i   sf   € ô 
Ô%Ð&Ü	”Ð!Ü	�‰Ô)Ð*Ü	�‰Ô%Ð&Ü	�‰”MÐ"Ü	�‰Ô)Ð*ð€Eð 
‡L�LÔ#Ó%Ô&Ø€Lr2   c                óV   ‡ — t        j                  ‰ «      ˆ fd„«       }t        d|«      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   Œž'r    )Ú	functoolsÚwrapsr	   )rK   rL   s   ` r*   Ú%register_pandas_matplotlib_convertersrO   w   s/   ø€ ô
 ‡_�_�TÓó)ó ð)ô ��WÓÐr2   c               #  ó–   K  — t         d   d   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.
    ÚplottingÚ
matplotlibÚregister_convertersNÚauto)ÚconfigÚregisterÚ
deregister)Úvalues    r*   rH   rH   „   sO   è ø€ ô �:Ñ˜|Ñ,Ð-BÑC€EáäŒ
ðÛà�FŠ?ä�Lð øˆ5�FŠ?ä�Lð üs   ‚A	Ÿ4 £A	´AÁA	c                 óò   — t        «       } | D ]h  \  }}|t        j                  v r9t        t        j                  |   |«      st        j                  |   }|t        |<    |«       t        j                  |<   Œj y r&   )rE   ÚmunitsÚregistryÚ
isinstancer#   )rD   Útype_ÚclsÚpreviouss       r*   rV   rV   š   sb   € Ü‹K€EØò '‰
ˆˆsà”F—O‘OÑ#¬J´v·±ÀuÑ7MÈsÔ,SÜ—‘ uÑ-ˆHØ (ŒJ�uÑá!$£Œ�‰˜Òñ'r2   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&   )rE   ÚtyperZ   r[   ÚgetÚpopr#   ÚitemsrA   rB   rC   )r]   r^   ÚunitÚ	formatters       r*   rW   rW   ¥   s…   € ä“kò '‰
ˆˆsä”—‘×#Ñ# EÓ*Ó+¨sÒ2Ü�O‰O×Ñ Õ&ð'ô &×+Ñ+Ó-ò .‰ˆˆiÜ�	‹?Ô#4´oÄ}Ð"UÒUà$-ŒF�O‰O˜DÒ!ñ.r2   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_ordinalfrp   ³   s8   € Ø�g‰g˜‰n˜rŸy™y¨2™~Ñ-°·	±	Ñ9¸B¿N¹NÈUÑ<RÑR€GØ€Nr2   c                ó¸   — t        | t        «      r$t        | «      }t        |j	                  «       «      S t        | t
        j                  «      rt        | «      S | S r&   )r\   Ústrr   rp   r:   r8   )ÚdÚparseds     r*   Útime2numru   ¸   sC   € Ü�!”SÔÜ˜1“ˆÜ˜FŸK™K›MÓ*Ð*Ü�!”T—Y‘YÔÜ˜A‹ÐØ€Hr2   c           	     ó�   — t        t        j                  t        j                  dd«      t        j                  | d«      «      «      S )zHBusiness-day ordinal for a date (replaces deprecated Period[B].ordinal).ú
1970-01-01ÚD)Úintr4   Úbusday_countr6   )Údts    r*   Ú
bday_countr|   Á   s3   € äÜ
�‰œŸ™ l°CÓ8¼"¿-¹-ÈÈCÓ:PÓQóð r2   c                ó”   — t        j                  t        j                  dd«      | «      }|j                  d«      j	                  «       S )z=Inverse of bday_count (replaces Period(ordinal=N, freq='B')).rw   rx   zdatetime64[us])r4   Úbusday_offsetr6   ÚastypeÚitem)ÚordinalÚdt64s     r*   Úbday_to_datetimerƒ   È   s8   € ä×ÑœBŸM™M¨,¸Ó<¸gÓF€DØ�;‰;Ð'Ó(×-Ñ-Ó/Ð/r2   c                ót   — t        j                  t        j                  dd«      | j                  d«      «      S )zBVectorized bday_count: datetime64 values to business-day ordinals.rw   rx   zdatetime64[D])r4   rz   r6   r   )Údatess    r*   Úbday_count_arrayr†   Î   s,   € ä�?‰?Ü
�‰�l CÓ(¨%¯,©,°Ó*Góð r2   c                óV   — t        j                  t        j                  dd«      | «      S )zDVectorized bday_to_datetime: business-day ordinals to datetime64[D].rw   rx   )r4   r~   r6   )Úordinalss    r*   Úbday_offset_arrayr‰   Õ   s    € ä×ÑœBŸM™M¨,¸Ó<¸hÓGÐGr2   c                  ó@   — e Zd Zed„ «       Zedd„«       Zedd„«       Zy)rC   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&   )rr   r8   r:   r\   r   r   ru   r   Úmapr,   Útupler4   Úndarray)rX   re   Ú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ÚTimeFormatterrZ   ÚAxisInfo)re   r�   r”   r•   s       r*   ÚaxisinfozTimeConverter.axisinfoæ   s;   € à�6Š>Øä—‘×'Ñ'Ó)ˆÜ˜vÓ&ˆÜ�‰ f°VÀ6ÔJÐJr2   c                 ó   — y)Nr:   © )r‘   r�   s     r*   Údefault_unitszTimeConverter.default_unitsï   s   € àr2   N)Úreturnzmunits.AxisInfo | None)r    rr   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr’   rœ   rŸ   rž   r2   r*   rC   rC   Ú   s>   „ Øñó ðð òKó ðKð òó ñr2   rC   c                  ó   — e Zd Zdd„Zddd„Zy)rš   c                ó&   — | j                  |«       y r&   )Úset_locs)ÚselfÚlocss     r*   Ú__init__zTimeFormatter.__init__ö   s   € Ø�‰�dÕr2   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.%fri   éè  rh   é   r   Néýÿÿÿú%H:%M:%Sú%H:%M)ry   ÚroundÚdivmodr8   r:   Ústrftime)r¨   r‘   Ú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Ð0r2   N©r    ÚNone©r   ©r´   ú
int | Noner    rr   )r¡   r¢   r£   rª   r½   rž   r2   r*   rš   rš   õ   s   „ óõ!1r2   rš   c                  óB   — e Zd Zedd„«       Zedd„«       Zedd„«       Zy)rB   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Å   rB   Úconvert_from_freq)Úvaluesre   r�   rÅ   s       r*   r’   zPeriodConverter.convert!  s=   € ô �t˜VÔ$ÜÐMÓNÐNÜ˜Ÿ™¨dÔ3ˆÜ×0Ñ0°¸Ó>Ð>r2   c                óœ   — t        | «      r%| D �cg c]  }t        j                  ||«      ‘Œ } }| S t        j                  | |«      } | S c c}w r&   )r   rB   Ú_convert_1d)rË   rÅ   Úvs      r*   rÊ   z!PeriodConverter.convert_from_freq.  sP   € ä˜vÔ&ØDJÖK¸q”o×1Ñ1°!°TÕ:ÐKˆFÐKð ˆô %×0Ñ0°¸Ó>ˆFØˆùò Ls   �A	c                óº  ‡— ‰j                   }t        j                  |«      t        j                  k(  }t        t
        t        t        j                  t        j                  f}t        | |«      st        | «      st        | «      rt        | ‰«      S t        | t        «      r)|r| j                   S | j#                  ‰«      j                   S t        | t$        «      r| j'                  ˆfd„«      S t        | t        j(                  «      r| j*                  j,                  dv r| S t/        j0                  | d¬«      dk(  rV|r=t        j2                  | D �cg c]  }|j4                  ‘Œ c}t        j6                  ¬«      S t        | ‰¬«      j                   S t        | t8        t:        t        j(                  f«      r| D �cg c]  }t        |‰«      ‘Œ c}S | S c c}w c c}w )Nc                ó   •— t        | ‰«      S r&   )Ú_get_datevalue)r‘   rÅ   s    €r*   ú<lambda>z-PeriodConverter._convert_1d.<locals>.<lambda>E  s   ø€ ¬°q¸$Ó(?€ r2   ÚiufF)ÚskipnaÚperiod©r)   ©rÅ   )Ú_period_dtype_coder   Úfrom_period_dtype_codeÚFR_BUSrr   r   r   r8   r9   r4   r6   r\   r   r   rÑ   r   Úasi8Úasfreqr   rŒ   rŽ   r)   Úkindr   Úinfer_dtypeÚarrayr�   Úint64r,   r�   )rË   rÅ   Ú
dtype_codeÚis_bdayr�   Úpr‘   s    `     r*   rÍ   zPeriodConverter._convert_1d6  s_  ø€ ð ×,Ñ,ˆ
Ü×2Ñ2°:Ó>Ä)×BRÑBRÑRˆäœH¤f¬d¯i©i¼¿¹ÐGˆÜ�f˜kÔ*¬j¸Ô.@ÄHÈVÔDTÜ! &¨$Ó/Ð/Ü˜¤Ô,Ùà—{‘{Ð"Ø—=‘= Ó&×+Ñ+Ð+Ü˜¤Ô&Ø—:‘:Ó?Ó@Ð@Ü˜¤§
¡
Ô+°·±×0AÑ0AÀUÑ0Jð ˆMÜ�_‰_˜V¨EÔ2°hÒ>ñ Ü—x‘x°FÖ ;¨q §£Ò ;Ä2Ç8Á8ÔLÐLÜ˜v¨DÔ1×6Ñ6Ð6Ü˜¤¤u¬b¯j©jÐ 9Ô:Ø5;Ö<°”N 1 dÕ+Ò<Ð<Øˆùò	 !<ùò =s   ÅGÆ;GN©r�   r   ©rÅ   r   )r¡   r¢   r£   r¤   r’   rÊ   rÍ   rž   r2   r*   rB   rB      s<   „ Øò
?ó ð
?ð òó ðð òó ñr2   rB   c                óº  — t        | t        «      rŽt        |d¬«      }|j                  }t	        j
                  |«      t        j                  k(  r4| j                  dk(  r| j                  S t        | j                  «       «      S | j                  |«      j                  S t        | t        t        t        j                  t         j"                  f«      r`t        |d¬«      }|j                  }t	        j
                  |«      t        j                  k(  rt        | «      S t        | |«      j                  S t%        | «      st'        | «      r| S | €y t)        d| › d�«      ‚)NTrÆ   ÚBzUnrecognizable date 'ú')r\   r   r   rØ   r   rÙ   rÚ   Úfreqstrr�   r|   Úto_timestamprÜ   rr   r   r8   r9   r4   r6   r   r   Ú
ValueError)r9   rÅ   Úfreq_objrá   s       r*   rÑ   rÑ   U  s  € Ü�$œÔÜ˜T¨TÔ2ˆØ×0Ñ0ˆ
Ü×+Ñ+¨JÓ7¼9×;KÑ;KÒKð �|‰|˜sÒ"Ø—|‘|Ð#Ü˜d×/Ñ/Ó1Ó2Ð2Ø�{‰{˜4Ó ×(Ñ(Ð(Ü	�Dœ3¤¬$¯)©)´R·]±]ÐCÔ	DÜ˜T¨TÔ2ˆØ×0Ñ0ˆ
Ü×+Ñ+¨JÓ7¼9×;KÑ;KÒKä˜dÓ#Ð#Ü�d˜DÓ!×)Ñ)Ð)Ü	�DÔ	œX dœ^ØˆØ	ˆØÜ
Ð,¨T¨F°!Ð4Ó
5Ð5r2   c                  ó@   — e Zd Zedd„«       Zed„ «       Zedd„«       Zy)rA   c                ó    — t        | «      r&| D �cg c]  }t        j                  |||«      ‘Œ } }| S t        j                  | ||«      } | S c c}w r&   )r   rA   rÍ   )rË   re   r�   rÎ   s       r*   r’   zDatetimeConverter.convertq  sW   € ô ˜vÔ&ØLRÖSÀqÔ'×3Ñ3°A°t¸TÕBÐSˆ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_parse‚  s5   € ðÜ—‘¤u×'8Ñ'8¸Ó'@ÓAÐAøÜò Ø’ðús   ‚'* ª8·8)r\   r   r8   r9   r4   r6   r:   rñ   rò   r   r   rr   r,   r�   rŽ   r   r   Ú_valuesÚcomÚasarray_tuplesafer   r   ró   rô   rõ   )rË   re   r�   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Ð  é   iÚ  Ú )r”   r•   r–   Údefault_limits)ÚPandasAutoDateLocatorÚPandasAutoDateFormatterr8   r9   rZ   r›   )re   r�   rû   r”   r•   ÚdateminÚdatemaxs          r*   rœ   zDatetimeConverter.axisinfo¤  sb   € ð ˆä&¨"Ô-ˆÜ(¨°BÔ7ˆÜ—)‘)˜D ! QÓ'ˆÜ—)‘)˜D ! QÓ'ˆä�‰Ø &°ÀGÈWÐCUô
ð 	
r2   Nrä   )re   ztzinfo | Noner    zmunits.AxisInfo)r¡   r¢   r£   r¤   r’   rÍ   rœ   rž   r2   r*   rA   rA   p  s=   „ Øòó ðð ñ!ó ð!ðF ò
ó ñ
r2   rA   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__¹  s   € Ü× Ñ ×)Ñ)¨$°¸¸ZÕHr2   )Nz%Y-%m-%d)r  rr   r    r¿   )r¡   r¢   r£   rª   rž   r2   r*   r   r   ¸  s   „ õIr2   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_axisr�   Úset_view_intervalÚget_view_intervalÚset_data_intervalÚget_data_intervalrñ   ÚAutoDateLocatorÚget_locator)r¨   ÚdminÚdmaxro   r  s        r*   r  z!PandasAutoDateLocator.get_locator¾  s¹   € à˜$‘;×-Ñ-Ó/ˆäˆw‹<˜$Ÿ-™-Ò'ØˆDŒJÜ(¨¯©Ó1ˆGØ×Ñ˜TŸY™YÔ'ð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð +ˆG�L‰L×*Ñ*Ø—‘×,Ñ,Ó.ñð ˆNä×%Ñ%×1Ñ1°$¸¸dÓCÐCr2   c                ó@   — t         j                  | j                  «      S r&   )r  Úget_unit_genericr  ©r¨   s    r*   Ú	_get_unitzPandasAutoDateLocator._get_unitÓ  s   € Ü!×2Ñ2°4·:±:Ó>Ð>r2   N)r¡   r¢   r£   r  r  rž   r2   r*   rÿ   rÿ   ½  s   „ òDó*?r2   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¨"Ô-Øˆ�r2   c                ó$   — | j                  d«      S )Nr
  )r  r  s    r*   r  zMilliSecondLocator._get_unitÞ  s   € Ø×$Ñ$ RÓ(Ð(r2   c                ón   — t         j                  j                  | «      }|dk  rt        j                  S |S )Nr   )rñ   ÚRRuleLocatorr  r  ÚUNIT)rÅ   re   s     r*   r  z#MilliSecondLocator.get_unit_genericá  s0   € ä×"Ñ"×3Ñ3°DÓ9ˆØ�!Š8Ü%×*Ñ*Ð*Øˆr2   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 rs   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   r   Ú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   € Ø�~‰~Ðr2   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Ó+Ð+r2   Nr¾   )r¡   r¢   r£   r$  rª   r  r¤   r  r½   r/  rG  rž   r2   r*   r  r  ×  s5   „ Ø#€Dóò)ð ñó ðò+òZó
,r2   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)  )rK  r'  r*  )rK  é   iX  )r'  r(  r¬   rü   rž   )ÚnyearsÚmin_spacingÚmaj_spacingÚfactors       r*   Ú_get_default_annual_spacingrQ  ,  sî   € ð �‚{Ø%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�"ŠØ%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�"ŠØ%+Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%,Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%,Ñ"ˆ�kð ˜Ð%Ð%ð 
�#ŠØ%-Ñ"ˆ�kð ˜Ð%Ð%ð ˜4‘ !Ñ#ˆØ&,¨r¡k°6¸C±<�kˆØ˜Ð%Ð%r2   c                óJ   — t        | |«      }t        j                  |«      d   S )zä
    Returns the indices where the given period changes.

    Parameters
    ----------
    dates : PeriodIndex or DatetimeIndex
        Array of intervals to monitor.
    period : str
        Name of the period to monitor.
    r   )Ú_period_break_maskr4   Únonzero)r…   rÕ   Úmasks      r*   Ú_period_breakrV  B  s$   € ô ˜e VÓ,€DÜ�:‰:�dÓ˜AÑÐr2   c                ó@  — |dk(  rmt        | t        «      r]| j                  «       j                  j                  }| d| j
                  z  z
  j                  «       j                  j                  }||k7  S t        | |«      }t        | d| j
                  z  z
  |«      }||k7  S )NÚweekrü   )r\   r   ÚisocalendarrX  rË   rÅ   Úgetattr)r…   rÕ   Úcurrentr_   s       r*   rS  rS  S  s•   € ð �ÒœJ u¬mÔ<Ø×#Ñ#Ó%×*Ñ*×1Ñ1ˆØ˜A §
¡
™NÑ*×7Ñ7Ó9×>Ñ>×EÑEˆð �hÑÐô ˜% Ó(ˆÜ˜5 1 u§z¡z¡>Ñ1°6Ó:ˆØ�hÑÐr2   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_flagsrE  s     r*   Úhas_level_labelra  `  s;   € ð ×Ñ˜1ÒØ×Ñ˜AÒ +¨a¡.°AÒ"5¸$À¹(ÀSº.ààr2   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
  é   ém  é   i  é   é4   rü   é   é   úUnsupported frequency: )rØ   r   rÙ   ÚFR_HRrX   r   Ú_cresorÚ   ÚFR_DAYÚFR_WKÚFR_MTHÚFR_QTRÚFR_ANNÚNotImplementedError)rÅ   rá   Ú
freq_groupÚppdÚppmÚppys         r*   Ú_get_periods_per_ymdrw  p  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ˆ=Ðr2   c                ó¦   — t        | «      t        |«      }}|�6|j                  }|t        t        j                  | |z
  |z  «      «      |z  z   }||fS )a  
    Integer view bounds for a finder's tick grid.

    The grid runs from the lower bound in steps of ``freq.n``, so that bound
    fixes its phase.  ``anchor`` is an ordinal the caller needs the grid to
    fall on: a bar plot pads its limits by half a period either side, which
    puts ``vmin`` below the first bar and would otherwise put every tick of a
    multiplied frequency between the bars.  Callers that do not care -- line
    plots, whose limits already sit on the data -- pass None and get the
    unshifted grid.
    )ry   Únr4   Úfloor)rE  rF  rÅ   ÚanchorÚloÚhiry  s          r*   Ú_finder_view_boundsr~  ”  sU   € ô �‹Yœ˜D›	ˆ€BØÐØ�F‰Fˆð ”cœ"Ÿ(™( D¨6¡M°QÑ#6Ó7Ó8¸1Ñ<Ñ<ˆØˆrˆ6€Mr2   c           	     ó*  ‡‡‡‡‡‡ ‡!‡"— |j                   }t        j                  |«      }t        |«      \  }}}|j                  }	|	dkD  r=|dkD  rt        d||	z  «      }d|z  }d|z  }nt        d||	z  «      }t        d||	z  «      }| Š!t        | |||«      \  } }|t        j                  k(  rZt        j                  | |dz   |j                  t        j                  ¬«      }
t        t        |
«      j                  d«      |¬«      Šn0t        t        | |¬«      t        ||¬«      |¬	«      Š‰j                   }
t#        |
«      }t        j$                  |d
t        j                  fdt&        fdt&        fdg¬«      }|
|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‰ ‰<   d0‰‰<   d1‰|<   d2‰‰"<   t+        ‰"‰!«      s$t+        |‰!«      sd2‰ ‰‰«      <   |S d2‰ ‰|«      <   |S ||d/z  k  r¡t)        ‰d«      }d‰|<   |t        j,                  j.                  k  rd|d<   nt)        ‰d«      Šd|d   ‰<   t)        ‰d3«      }t)        ‰d«      Š"d0‰|<   d4‰|<   d5‰‰"<   t+        ‰"‰!«      s$t+        |‰!«      sd5‰ ‰|«      <   |S d5‰ ‰|«      <   |S |d6|z  k  r[t)        ‰d«      Š"t)        ‰d«      }t)        ‰d3«      }d‰|<   d‰ |<   d+‰ ‰"<   d+‰ |<   d7‰|<   d8‰‰"<   t+        ‰"‰!«      sd8‰ ‰|«      <   |S |d*|z  k  r:t)        ‰d«      Š"t)        ‰d9«      }t)        ‰d«      }d‰|<   d‰ |<   d7‰|<   d8‰‰"<   |S |d/|z  k  rPt)        ‰d«      Š"t)        ‰d«      }d‰‰"<   d‰ |<   d+‰ ‰"<   ‰|   j0                  }||dk(  |d:k(  z     }d7‰|<   d8‰‰"<   |S |d;|z  k  r.t)        ‰d«      Š"t)        ‰d9«      }d‰‰"<   d‰ |<   d+‰ ‰"<   d<‰‰"<   |S t)        ‰d«      Š"‰‰"   j2                  }||z  }t5        |«      \  }}‰"||z  dk(     }d‰|<   ‰"||z  dk(     }d‰ |<   d<‰|<   |S )?Nrü   r   rc  rd  )Ústepr)   zdatetime64[ns]r×   ©r�   rÅ   )r,  r-  rÅ   ÚvalÚmajÚmin)rµ   z|S20rÖ   rý   rµ   Tr
  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_labelæ  s<   ø€ Ø˜‰N˜aÒ k×&6Ñ&6¸Ò&:À)ÈaÁ-ÐSVÒAVØ˜q‘>Ð!à˜q‘>Ð!r2   Ú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 )Nrj   Tr   r°   ú%H:%M
%d-%bú%H:%M
%d-%b
%Y)rj   rS  ra  )Úlabel_intervalÚforce_year_startÚtargetrU  Údates_Ú	day_startr‡  Úinfo_fmtÚinfo_majÚinfo_minr†  Ú
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Ðr2   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )Nrj   rk   Tr   r°   rŒ  r�  )rk   rV  rS  )
rŽ  r�  Ú
hour_startrU  r‘  r’  r“  r”  r•  r–  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Ò r2   c                ó¤   •— ‰j                   }t        ‰d«      }t        ‰d«      }d‰|<   d‰||| z  dk(  z  <   d‰||| z  dk(  z  <   d‰‰<   d‰‰	<   y )Nrk   rl   Tr   r¯   z%H:%M:%S
%d-%bz%H:%M:%S
%d-%b
%Y)rl   rV  rS  )
rŽ  r�  Úminute_startrU  r‘  r’  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Ò r2   ià.  ip  r+  i`	  rK  i°  r'  i   é   i�  é   é–   éF   r­   rh  r&  ç      @Fg      ø?g      ô?rf  ri  z%dz%d
%bz%d
%b
%YrX  z

%bz

%b
%Yçffffffò?ú%bú%b
%YÚquarteré   rI  ú%Y)rŽ  ry   r�  Úboolr    r¿   )rŽ  ry   r    r¿   )rØ   r   rÙ   rw  ry  Úmaxr~  rÚ   r4   Úarangerà   r   r‰   r   r   r   rÛ   r5  Úzerosr©  rV  ra  rk  rX   r‰  rŠ  rQ  )#rE  rF  rÅ   r{  rá   rs  ÚperiodsperdayÚperiodspermonthÚperiodsperyearry  rˆ   ÚspanÚinfoÚmonth_startr—  rš  r�  Ú
week_startÚquarter_startÚmonth_breakÚ
jan_or_julÚ
year_breakrM  Ú
min_anndefÚ
maj_anndefÚ	major_idxÚ	minor_idxr‘  r’  r‡  r“  r”  r•  r†  r–  s#                              @@@@@@@@r*   Ú_daily_finderr¼  «  s³  ÿ€ ð
 ×(Ñ(€JÜ×1Ñ1°*Ó=€Jä5IÈ$Ó5OÑ2€M�? Nð 	�‰€AØˆ1‚uØ˜1ÒÜ  =°AÑ#5Ó6ˆMØ  =Ñ0ˆOØ  =Ñ0‰Nä! ! _¸Ñ%9Ó:ˆOÜ   N°aÑ$7Ó8ˆNð €IÜ& t¨T°4¸Ó@�L€Tˆ4ð ”Y×%Ñ%Ò%ô —9‘9˜T 4¨!¡8°$·&±&ÄÇÁÔIˆÜÜ˜hÓ'×.Ñ.Ð/?Ó@Øô
‰ô
 Ü ¨DÔ1Ü˜t¨$Ô/Øô
ˆð
 —;‘;ˆäˆx‹=€Dô �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Ñ <Ñ>ˆ	Ø"ˆ�ÑØ"ˆ�Ñà€Kr2   c                óŽ  — 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ü   r‚  rƒ  r„  ©rµ   z|S8rÖ   rý   rµ   rh  r   r£  Tr¤  r¥  r¢  rf  ri  r&  rI  r¨  ©rw  r~  r4   r¬  ry   r©  r«  rT  ra  r_  rQ  )rE  rF  rÅ   r{  r¼   r¯  r†  r°  r±  r‘  r–  r”  r“  Úidxr´  r¶  rM  r¸  r¹  Úyearsrº  s                        r*   Ú_monthly_finderrÂ  ‰  s¦  € ô 0°Ó5Ñ€A€qˆ.à€IÜ& t¨T°4¸Ó@�L€Tˆ4Ø�$‰;˜‰?€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Ñ:à"ˆ�Ñà€Kr2   c                ó†  — 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ü   r‚  rƒ  r„  r¾  rÖ   rý   rµ   ri  r   g      @TzQ%qzQ%q
%FrI  z%Fi²  r¿  )rE  rF  rÅ   r{  r¼   r¯  r†  r°  r±  r‘  r”  r“  r–  rÀ  rÁ  rM  r¸  r¹  rº  s                      r*   Ú_quarterly_finderrÄ  Ó  sÊ  € ô 0°Ó5Ñ€A€qˆ.Ø€IÜ& t¨T°4¸Ó@�L€Tˆ4Ø�$‰;˜‰?€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Ñ:Ø"ˆ�Ñà€Kr2   c                óP  — 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ü   r‚  rƒ  r„  r¾  rÖ   rý   rµ   r   Tr¨  )r~  r4   r¬  ry   r©  r«  rQ  )rE  rF  rÅ   r{  r°  r±  r‘  r¸  r¹  rº  r»  s              r*   Ú_annual_finderrÆ    sÙ   € ô
 ' t¨T°A©X°t¸VÓD�L€Tˆ4Ø�$‰;˜‰?€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�	Ñà€Kr2   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|› �«      ‚)Nrj  )rØ   r   rÙ   rq  rÆ  rp  rÄ  ro  rÂ  rÚ   rX   rn  r¼  rr  )rÅ   rá   Úfgroups      r*   Ú
get_finderrÉ    s‘   € à×(Ñ(€JÜ×-Ñ-¨jÓ9€Fà”×!Ñ!Ò!ÜÐØ	”9×#Ñ#Ò	#Ü Ð Ø	”9×#Ñ#Ò	#ÜÐØ
œ	×(Ñ(×.Ñ.Ò
.°6¼Y¿_¹_Ò3LÜÐä!Ð$;¸J¸<Ð"HÓIÐIr2   c                  óR   — e Zd ZU dZded<   	 	 	 	 d		 	 	 	 	 	 	 	 	 d
d„Zd„ Zd„ Zd„ Zy)ÚTimeSeries_DateLocatoraY  
    Locates the ticks along an axis controlled by a :class:`Series`.

    Parameters
    ----------
    freq : BaseOffset
        Valid frequency specifier.
    minor_locator : bool, default False
        Whether the locator is for minor ticks.
    dynamic_mode : bool, default True
        Whether the locator should work in dynamic mode.
    r   r�   Nc                óv   — t        |d¬«      }|| _        || _        || _        || _        t        |«      | _        y ©NTrÆ   )r   rÅ   ÚisminorÚplot_objr{  rÉ  Úfinder©r¨   rÅ   Úminor_locatorÚdynamic_moderÏ  r{  s         r*   rª   zTimeSeries_DateLocator.__init__?  s8   € ô ˜¨Ô.ˆØˆŒ	Ø$ˆŒØ ˆŒØˆŒÜ  Ó&ˆ�r2   c                óÚ   — | j                  ||| j                  | j                  «      }| j                  rt	        j
                  |d   |d   «      S t	        j
                  |d   |d   «      S )z'Returns the default locations of ticks.r„  r‚  rƒ  )rÐ  rÅ   r{  rÎ  r4   Úcompress)r¨   rE  rF  r  s       r*   Ú_get_default_locsz(TimeSeries_DateLocator._get_default_locsN  sW   € à—+‘+˜d D¨$¯)©)°T·[±[ÓAˆà�<Š<Ü—;‘;˜w u™~¨w°u©~Ó>Ð>Ü�{‰{˜7 5™>¨7°5©>Ó:Ð:r2   c                óˆ   — t        | j                  j                  «       «      }|\  }}||k  r||}}| j                  ||«      S )z"Return the locations of the ticks.)r�   r�   r  rÖ  )r¨   ÚvirE  rF  s       r*   r½   zTimeSeries_DateLocator.__call__V  sE   € ä�4—9‘9×.Ñ.Ó0Ó1ˆØ‰
ˆˆdØ�$Š;Ø˜t�$ˆDØ×%Ñ% d¨DÓ1Ð1r2   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ü   )r�   r  rÖ  r—   Ú
transformsrD  )r¨   rE  rF  r©   s       r*   rG  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Ð5r2   ©FTNN©
rÅ   r   rÒ  r©  rÓ  r©  r{  rÂ   r    r¿   )	r¡   r¢   r£   Ú__doc__Ú__annotations__rª   rÖ  r½   rG  rž   r2   r*   rË  rË  /  s`   … ñð ƒJð
 $Ø!ØØ!ð'àð'ð ð'ð ð	'ð ð'ð 
ó'ò;ò2ó6r2   rË  c                  ód   ‡ — e Zd ZU dZded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 d	d„Zd„ Zd
ˆ fd„Zddd„Zˆ xZ	S )Ú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   r�   c                ó„   — t        |d¬«      }|| _        d | _        || _        || _        || _        t        |«      | _        y rÍ  )r   rÅ   Ú
formatdictrÎ  rÏ  r{  rÉ  rÐ  rÑ  s         r*   rª   z!TimeSeries_DateFormatter.__init__ƒ  s?   € ô ˜¨Ô.ˆØˆŒ	Ø15ˆŒØ$ˆŒØ ˆŒØˆŒÜ  Ó&ˆ�r2   c           	     óf  — | j                  ||| 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.r„  rƒ  )rÐ  rÅ   r{  rÎ  r4   rÕ  Úlogical_notrâ  )r¨   rE  rF  r±  Úformatr‘   r¼   Úfs           r*   Ú_set_default_formatz,TimeSeries_DateFormatter._set_default_format“  s�   € à�{‰{˜4  t§y¡y°$·+±+Ó>ˆà�<Š<Ü—[‘[  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         ‰| �  |«       t        | j                  j	                  «       «      \  }}||k  r||}}| j                  ||«       y)zSets the locations of the ticksN)Úsuperr§   r�   r�   r  rç  )r¨   r©   rE  rF  Ú	__class__s       €r*   r§   z!TimeSeries_DateFormatter.set_locsž  sM   ø€ ô
 	‰Ñ˜Ôä˜TŸY™Y×8Ñ8Ó:Ó;‰ˆˆtØ�$Š;Ø  $�4ˆTØ× Ñ   tÕ,r2   c                óò  — | j                   €y| j                   j                  |d«      }t        |t        j                  «      r|j                  d«      }| j                  j                  }t        j                  |«      }|t        j                  k(  r#t        t        |«      «      j                  |«      S t        t        |«      | j                  ¬«      }t        |t        «      sJ ‚|j                  |«      S )Nrý   zutf-8r�  )râ  rc   r\   r4   Úbytes_ÚdecoderÅ   rØ   r   rÙ   rÚ   rƒ   ry   r³   r   )r¨   r‘   r´   rµ   rá   rs  rÕ   s          r*   r½   z!TimeSeries_DateFormatter.__call__ª  s»   € Ø�?‰?Ð"Øà—/‘/×%Ñ% a¨Ó,ˆCÜ˜#œrŸy™yÔ)Ø—j‘j Ó)�àŸ™×5Ñ5ˆJÜ"×9Ñ9¸*ÓEˆJØœY×-Ñ-Ò-ä'¬¨A«Ó/×8Ñ8¸Ó=Ð=Ü¤C¨£F°·±Ô;ˆFÜ˜f¤fÔ-Ð-Ð-Ø—?‘? 3Ó'Ð'r2   rÛ  rÜ  r¾   rÀ   rÁ   )
r¡   r¢   r£   rÝ  rÞ  rª   rç  r§   r½   Ú__classcell__©rê  s   @r*   rà  rà  r  sf   ø… ñð ƒJð
 $Ø!ØØ!ð'àð'ð ð'ð ð	'ð ð'ð 
ó'ò 	õ
-÷(ð (r2   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&   )re   ré  rª   )r¨   re   rê  s     €r*   rª   z&TimeSeries_TimedeltaFormatter.__init__Á  s   ø€ ØˆŒ	Ü‰ÑÕr2   r   r�   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'  rh   r­   Ú02dú:r   ú.Ú0rs   z days )r²   ry   )
r‘   r´   Ú
n_decimalsÚexpr¶   Únsrº   r»   rs   Údecimalss
             r*   Úformat_timedelta_ticksz4TimeSeries_TimedeltaFormatter.format_timedelta_ticksÇ  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Øˆr2   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&  rf  r   )rú  r¹   r¸   r¶   r)  r'  )re   r�   r�   r  r„  ry   r4   ÚceilÚlog10r  rü  )r¨   r‘   r´   rù  rE  rF  rø  s          r*   r½   z&TimeSeries_TimedeltaFormatter.__call__Ø  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ÐCr2   )rú  )re   r!   )rþ  )rø  ry   rù  ry   r    rr   rÀ   rÁ   )
r¡   r¢   r£   rÝ  rª   rÞ  r¤   rü  r½   rî  rï  s   @r*   rñ  rñ  ¼  s2   ø… ñöð ƒJàóó ð÷ Dð Dr2   rñ  )r    z3list[tuple[type, type[munits.ConversionInterface]]])r    z
list[type])rK   r    r    r    )r    zGenerator[None]r¾   )rn   z	pydt.timer    Úfloat)r    ry   )r�   ry   r    r   )r…   ú
np.ndarrayr    r  )rˆ   r  r    r  )r    útuple[int, int])r…   úPeriodIndex | DatetimeIndexrÕ   rr   r    únpt.NDArray[np.intp])r…   r  rÕ   rr   r    znpt.NDArray[np.bool_])r`  r  rE  r  r    r©  )rÅ   r   r    ztuple[int, int, int])
rE  r  rF  r  rÅ   r   r{  rÂ   r    r  r&   )
rE  r  rF  r  rÅ   r   r{  rÂ   r    r  rå   )uÚ
__future__r   Ú
contextlibr   r8   r   rM   Ú	itertoolsr   Útypingr   r   r	   rR   r—   Úmatplotlib.datesr…   rñ   Úmatplotlib.unitsÚunitsrZ   Únumpyr4   Úpandas._config.configr
   rU   Úpandas._libsr   Úpandas._libs.tslibsr   r   Úpandas._libs.tslibs.dtypesr   r   Úpandas.core.dtypes.baser   r.   Úpandas.core.dtypes.commonr   r   r   r   r   Úpandasr   r   Úpandas.core.commonÚcoreÚcommonrø   Úpandas.core.indexes.datetimesr   r   Úpandas.core.indexes.periodr   r   r   Úpandas.core.tools.datetimesró   Ú	datetimesÚcollections.abcr   Úmatplotlib.axisr   Úpandas._libs.tslibs.offsetsr   Úpandas._typingr    r!   r"   r#   rÞ  r1   r?   rE   rO   ÚcontextmanagerrH   rV   rW   rp   ru   r|   rƒ   r†   r‰   ÚConversionInterfacerC   r˜   Ú	Formatterrš   ÚDateConverterrB   rÑ   rA   r  r   r  rÿ   r  r  rQ  rV  rS  ra  rw  r~  Úcacher¼  rÂ  rÄ  rÆ  rÉ  ÚLocatorrË  rà  rñ  rž   r2   r*   ú<module>r&     sc  ðÞ "ã Û ÷ó Ý ÷ñ ó Ý !Ý !Û å :å ÷÷õ
÷õ ÷÷ !Ð  ÷÷ñ ÷
 ,Ó +áÝ)å$å6÷ñ ð 68€
Ð2Ó 7óóó"ó
ð ×Ñòó ðó*'ó.óò
óó0óóHô
�F×.Ñ.ô ô6%1�C—J‘J×(Ñ(ô %1ôV2�f×*Ñ*ô 2òj6ô6E
˜×,Ñ,ô E
ôPI˜f×6Ñ6ô Iô
?˜F×2Ñ2ô ?ô4K,˜×+Ñ+ô K,ój&ð,Ø&ðØ03ðàóð"
Ø&ð
Ø03ð
àó
óó !ðHØ
ðØðØ$.ðØ8Bðàóð. ‡�àEIðZØ
ðZØðZØ$.ðZØ8BðZàòZó ðZðz ‡�àEIðFØ
ðFØðFØ$.ðFØ8BðFàòFó ðFðR ‡�àEIð.Ø
ð.Øð.Ø$.ð.Ø8Bð.àò.ó ð.ðb ‡�àEIðØ
ðØðØ$.ðØ8Bðàòó ðó0Jô";6˜SŸZ™Z×/Ñ/ô ;6ôFG(˜sŸz™z×3Ñ3ô G(ôT D C§J¡J×$8Ñ$8õ  Dr2   