+
    yȇic                      a  0 t $ ^ RIHt ^ RIt^ RIt^ RIHtHt ^ RIt^ RIH	t	H
t
Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIHtHt ^ RIHtHt ^ RIH t H!t! ^ R	I"H#t#H$t$H%t%H&t&H't' ^ R
I(H)t)H*t*H+t+ ^ RI,H-u H.t/ ^ RI0H1t1 ^ RI2H3t3H4t4H5t5 ^ RI6H-u H7u H8t7 ]	'       d   ^ RI9H:t: ^ RI;H<t< ^ RI=H>t> ^ RIH?t? / t@R]AR&   R R ltBR R ltC]P                  R R l4       tER R ltFR R ltGR R ltHR tI ! R  R!]P                  4      tK ! R" R#]P                  P                  4      tN ! R$ R%]P                  4      tPR& R' ltQ ! R( R)]P                  4      tR ! R* R+]P                  4      tT ! R, R-]P                  4      tV ! R. R/]P                  4      tXR0 R1 ltYR2 R3 ltZR4 R5 lt[R6 R7 lt\R8 R9 lt]]P                  R: R; l4       t_]P                  R< R= l4       t`]P                  R> R? l4       ta]P                  R@ RA l4       tbRB RC ltc ! RD RE]P                  P                  4      te ! RF RG]P                  P                  4      tf ! RH RI]P                  P                  4      tgR# )J    )annotationsN)datetimetzinfo)TYPE_CHECKINGAnycast)lib)	Timestamp	to_offset)	FreqGroupperiods_per_day)Fnpt)is_floatis_float_dtype
is_integeris_integer_dtypeis_nested_list_like)IndexSeries
get_option)
date_range)PeriodPeriodIndexperiod_range)	Generator)Axis)
BaseOffset)TimeUnitdict
_mpl_unitsc                   V ^8  d   QhRR/# )   returnz-list[tuple[type, type[mdates.DateConverter]]] )formats   "u/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/plotting/_matplotlib/converter.py__annotate__r(   F   s     	 	@ 	    c                     \         \        3\        \        3\        P
                  \        3\        P                  \        3\        P                  \        3\        P                  \        3.p V # N)r
   DatetimeConverterr   PeriodConverterpydtr   datetimeTimeConverternp
datetime64)pairss    r'   	get_pairsr5   F   sT    	%&	!	)*	%&	M"	)*E Lr)   c                    V ^8  d   QhRRRR/# )r#   funcr   r$   r%   )r&   s   "r'   r(   r(   R   s     
 
 
a 
r)   c                b   a  \         P                  ! S 4      V 3R l4       p\        \        V4      # )z'
Decorator applying pandas_converters.
c                 v   < \        4       ;_uu_ 4        S! V / VB uuR R R 4       #   + '       g   i     R # ; ir+   )pandas_converters)argskwargsr7   s   *,r'   wrapper6register_pandas_matplotlib_converters.<locals>.wrapperW   s(      (( !   s   '8	)	functoolswrapsr   r   )r7   r=   s   f r'   %register_pandas_matplotlib_convertersrA   R   s/    
 __T) ) 7r)   c                   V ^8  d   QhRR/# )r#   r$   zGenerator[None]r%   )r&   s   "r'   r(   r(   `   s      ? r)   c               #     "   \        R4      p V '       d   \        4         Rx  V R8X  d   \        4        R# R#   T R8X  d   \        4        i i ; i5i)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'   r:   r:   _   sD      @AE
F?L 5F?L s   A: AAAc                   V ^8  d   QhRR/# r#   r$   Noner%   )r&   s   "r'   r(   r(   u   s     ' '$ 'r)   c                    \        4       p V  Fy  w  rV\        P                  9   dH   \        \        P                  V,          V4      '       g!   \        P                  V,          pV\        V&   V! 4       \        P                  V&   K{  	  R # r+   )r5   munitsregistry
isinstancer!   )r4   type_clspreviouss       r'   rE   rE   u   s^    KE
FOO#Jvu7Ms,S,Su-H (Ju!$ r)   c                   V ^8  d   QhRR/# rI   r%   )r&   s   "r'   r(   r(      s     . .D .r)   c                 h   \        4        FR  w  r\        \        P                  P	                  V 4      4      VJ g   K3  \        P                  P                  V 4       KT  	  \        P                  4        F9  w  r#\        V4      \        \        \        09  g   K&  V\        P                  V&   K;  	  R # r+   )r5   typerL   rM   getpopr!   itemsr,   r-   r1   )rO   rP   unit	formatters       r'   rF   rF      sw    k
##E*+s2OO& " &++-	?#4o}"UU$-FOOD! .r)   c                    V ^8  d   QhRRRR/# )r#   tmz	pydt.timer$   floatr%   )r&   s   "r'   r(   r(      s      Y 5 r)   c                    V P                   R ,          V P                  ^<,          ,           V P                  ,           V P                  R,          ,           pV# )i  @B )hourminutesecondmicrosecond)r[   tot_secs   & r'   _to_ordinalfrd      s8    ggnryy2~-		9BNNU<RRGNr)   c                    \        V \        4      '       d%   \        V 4      p\        VP	                  4       4      # \        V \
        P                  4      '       d   \        V 4      # V # r+   )rN   strr
   rd   r0   r.   )dparseds   & r'   time2numri      sI    !S1FKKM**!TYYAHr)   c                  R    ] tR t^t]R 4       t]R R l4       t]R R l4       tRtR# )r1   c                	   \         \        P                  3p\        W4      '       g#   \	        V 4      '       g   \        V 4      '       d   \        V 4      # \        V \        4      '       d   V P                  \        4      # \        V \        \        \        P                  \        34      '       d   V  Uu. uF  p\        V4      NK  	  up# V # u upi r+   )rf   r.   r0   rN   r   r   ri   r   maplisttupler2   ndarray)rG   rX   axisvalid_typesxs   &&&  r'   convertTimeConverter.convert   s    DII&e))Z->->(5//E?"eU##99X&&edE2::u=>>)./AHQK// 0s   4Cc                   V ^8  d   QhRR/# )r#   r$   zmunits.AxisInfo | Noner%   )r&   s   "r'   r(   TimeConverter.__annotate__   s     K K 6 Kr)   c                	    V R 8w  d   R# \         P                  P                  4       p\        V4      p\        P
                  ! W#R R7      # )r0   N)majlocmajfmtlabel)mpltickerAutoLocatorTimeFormatterrL   AxisInfo)rX   rp   rx   ry   s   &&  r'   axisinfoTimeConverter.axisinfo   s9    6>'')v&f6JJr)   c                   V ^8  d   QhRR/# )r#   r$   rf   r%   )r&   s   "r'   r(   rv      s      # r)   c                	    R # )r0   r%   )rr   rp   s   &&r'   default_unitsTimeConverter.default_units   s    r)   r%   N)	__name__
__module____qualname____firstlineno__staticmethodrs   r   r   __static_attributes__r%   r)   r'   r1   r1      s>      K K  r)   r1   c                  2    ] tR t^tR R ltRR R lltRtR# )r~   c                   V ^8  d   QhRR/# rI   r%   )r&   s   "r'   r(   TimeFormatter.__annotate__   s       r)   c                	    Wn         R # r+   locs)selfr   s   &&r'   __init__TimeFormatter.__init__   s    	r)   c                    V ^8  d   QhRRRR/# r#   posz
int | Noner$   rf   r%   )r&   s   "r'   r(   r      s     !1 !1z !1# !1r)   c                "   Rp\        V4      p\        W,
          R,          4      pVR,          pVR,          p\        V^<4      w  r\        V^<4      w  r\        V	^4      w  rV^ 8w  d'   \        P                  ! WWE4      P                  V4      # V^ 8w  d*   \        P                  ! WWE4      P                  V4      RR # V^ 8w  d'   \        P                  ! WV4      P                  R4      # \        P                  ! W4      P                  R4      # )aN  
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.%f  N%H:%M:%S%H:%Mr^   )introunddivmodr.   r0   strftime)r   rr   r   fmtsmsusmsusmh_s   &&&        r'   __call__TimeFormatter.__call__   s    $ Faeu_%T\D[a}a}a}799Q1+44S991W99Q1+44S9#2>>!V99Q1%..z::yy''00r)   r   Nr   )r   r   r   r   r   r   r   r%   r)   r'   r~   r~      s    !1 !1r)   r~   c                  X    ] tR t^t]R R l4       t]R R l4       t]R R l4       tRtR# )	r-   c                   V ^8  d   QhRR/# r#   rp   r   r%   )r&   s   "r'   r(   PeriodConverter.__annotate__   s     
? 
?D 
?r)   c                	    \        VR 4      '       g   \        R4      h\        VP                  RR7      p\        P                  W4      # )freqz/Axis must have `freq` set to convert to PeriodsT	is_period)hasattr	TypeErrorr   r   r-   convert_from_freq)valuesrX   rp   r   s   &&& r'   rs   PeriodConverter.convert   s>     tV$$MNNd300>>r)   c                   V ^8  d   QhRR/# r#   r   r   r%   )r&   s   "r'   r(   r      s      
 r)   c                	    \        V 4      '       d'   V  Uu. uF  p\        P                  W!4      NK  	  p pV # \        P                  W4      p V # u upi r+   )r   r-   _convert_1d)r   r   vs   && r'   r   !PeriodConverter.convert_from_freq   sP    v&&DJKFqo11!:FFK  %00>F Ls   Ac                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r      s      * r)   c           	     	  a \         \        \        \        P                  \
        P                  3p\        P                  ! 4       ;_uu_ 4        \        P                  ! R R\        R7       \        P                  ! R R\        R7       \        W4      '       g#   \        V 4      '       g   \        V 4      '       d   \        V S4      uuRRR4       # \        V \        4      '       d&   V P!                  S4      P"                  uuRRR4       # \        V \$        4      '       d    V P'                  V3R l4      uuRRR4       # \(        P*                  ! V RR7      R8X  d"   \        V SR	7      P"                  uuRRR4       # \        V \,        \.        \
        P0                  34      '       d'   V  Uu. uF  p\        VS4      NK  	  upuuRRR4       #  RRR4       V # u upi   + '       g   i     T # ; i)
ignore#Period with BDay freq is deprecatedcategoryPeriodDtype\[B\] is deprecatedNc                   < \        V S4      # r+   )_get_datevalue)rr   r   s   &r'   <lambda>-PeriodConverter._convert_1d.<locals>.<lambda>  s    N1d,Cr)   F)skipnaperiod)r   )rf   r   r   r.   r/   r2   r3   warningscatch_warningsfilterwarningsFutureWarningrN   r   r   r   r   asfreqasi8r   rl   r	   infer_dtyperm   rn   ro   )r   r   rq   rr   s   &f  r'   r   PeriodConverter._convert_1d   sk   HfdiiG$$&&##?- ##;m 6//f%%F##%fd3 '& FK00}}T*// '& FE**zz"CD! '&" 6(B #65::) '&* FT5"**$=>>9?@Aq$/@- '&* ?+ '.  A- '&. s7   A9G!0G!*G!3G! /G!/GG!G!!G2	r%   N)	r   r   r   r   r   rs   r   r   r   r%   r)   r'   r-   r-      s<    
? 
?    r)   r-   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r(     s     	6 	6z 	6r)   c                t   \        V \        4      '       d   V P                  V4      P                  # \        V \        \
        \        P                  \        P                  34      '       d   \        W4      P                  # \        V 4      '       g   \        V 4      '       d   V # V f   R # \        RV  R24      h)NzUnrecognizable date '')rN   r   r   ordinalrf   r   r.   r/   r2   r3   r   r   
ValueError)r/   r   s   &&r'   r   r     s    ${{4 (((	D3$))R]]C	D	Dd!)))	D		Xd^^	
,TF!4
55r)   c                  R    ] tR tRt]R R l4       t]R 4       t]R R l4       tRtR# )	r,   i"  c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   DatetimeConverter.__annotate__$  s      D r)   c                	    \        V 4      '       d(   V  Uu. uF  p\        P                  W1V4      NK  	  p pV # \        P                  WV4      p V # u upi r+   )r   r,   r   )r   rX   rp   r   s   &&& r'   rs   DatetimeConverter.convert#  sW     v&&LRSFq'33ATBFFS  '226FF Ts   Ac                	d   R  p\        V \        \        P                  \        P
                  \        P                  34      '       d   \        P                  ! V 4      # \        V 4      '       g   \        V 4      '       d   V # \        V \        4      '       d	   V! V 4      # \        V \        \        \        P                  \        \         34      '       d   \        V \         4      '       d   \        V 4      p \        V \        4      '       d   V P"                  p \        V \        P                  4      '       g   \$        P&                  ! V 4      p \)        V 4      '       g   \+        V 4      '       d   V #  \,        P.                  ! V 4      p \        P                  ! V 4      p V #   \0         d     L%i ; i)c                ~     \         P                  ! \        P                  ! V 4      4      #   \         d    T u # i ; ir+   )mdatesdate2numtoolsto_datetime	Exception)r   s   &r'   	try_parse0DatetimeConverter._convert_1d.<locals>.try_parse4  s5    u'8'8'@AA s   ), <<)rN   r   r.   r/   r2   r3   r0   r   r   r   r   rf   rm   rn   ro   r   r   r   comasarray_tuplesafer   r   r   r   r   )r   rX   rp   r   s   &&& r'   r   DatetimeConverter._convert_1d2  s/   	 fxBMM499MNN??6**8F#3#3M$$V$$ubjj% HII&&)) v&%((fbjj11..v6''>&+A+A**62 __V,F  s   3F! !F/.F/c                    V ^8  d   QhRRRR/# )r#   rX   ztzinfo | Noner$   zmunits.AxisInfor%   )r&   s   "r'   r(   r   W  s     
 
} 
 
r)   c                    T p\        VR7      p\        W2R7      p\        P                  ! R^^4      p\        P                  ! R^^4      p\        P
                  ! W4RWV3R7      # )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   )rx   ry   rz   default_limits)PandasAutoDateLocatorPandasAutoDateFormatterr.   r/   rL   r   )rX   rp   r   rx   ry   datemindatemaxs   &&     r'   r   DatetimeConverter.axisinfoV  s\     &"-(7))D!Q'))D!Q'GCU
 	
r)   r%   N)	r   r   r   r   r   rs   r   r   r   r%   r)   r'   r,   r,   "  s=      ! !F 
 
r)   r,   c                  &    ] tR tRtRR R lltRtR# )r   ij  Nc                    V ^8  d   QhRRRR/# )r#   
defaultfmtrf   r$   rJ   r%   )r&   s   "r'   r(   $PandasAutoDateFormatter.__annotate__k  s     I IS I$ Ir)   c                	F    \         P                  P                  WW#4       R # r+   )r   AutoDateFormatterr   )r   locatorr   r   s   &&&&r'   r    PandasAutoDateFormatter.__init__k  s      ))$Hr)   r%   )Nz%Y-%m-%d)r   r   r   r   r   r   r%   r)   r'   r   r   j  s    I Ir)   r   c                  "    ] tR tRtR tR tRtR# )r   io  c                   W!,
          P                  4       p\        V4      V P                  8  d   RV n        \	        V P
                  4      pVP                  V P                  4       VP                  P                  ! V P                  P                  4       !   VP                  P                  ! V P                  P                  4       !   V# \        P                  P                  WV4      # )z*Pick the best locator based on a distance.)total_secondsabsminticks_freqMilliSecondLocatorr   set_axisrp   set_view_intervalget_view_intervalset_data_intervalget_data_intervalr   AutoDateLocatorget_locator)r   dmindmaxrc   r   s   &&&  r'   r
  !PandasAutoDateLocator.get_locatorp  s    ;--/w<$--'DJ(1GTYY' LL**,,. LL**,,. N%%11$dCCr)   c                	@    \         P                  V P                  4      # r+   )r  get_unit_genericr  r   s   &r'   	_get_unitPandasAutoDateLocator._get_unit  s    !224::>>r)   )r  N)r   r   r   r   r
  r  r   r%   r)   r'   r   r   o  s    D*?r)   r   c                  N    ] tR tRtRtR R ltR t]R 4       tR t	R t
R tR	tR
# )r  i  c                   V ^8  d   QhRR/# rI   r%   )r&   s   "r'   r(   MilliSecondLocator.__annotate__  s      d r)   c                	R    \         P                  P                  W4       R V n        R# )g      ?N)r   DateLocatorr   	_interval)r   r   s   &&r'   r   MilliSecondLocator.__init__  s    ##D-r)   c                	$    V P                  R4      # )   r   )r  r  s   &r'   r  MilliSecondLocator._get_unit  s    $$R((r)   c                	r    \         P                  P                  V 4      pV^ 8  d   \        P                  # V# r   )r   RRuleLocatorr  r  UNIT)r   rX   s   & r'   r  #MilliSecondLocator.get_unit_generic  s0    ""33D9!8%***r)   c                	    V P                  4       w  r\        P                  ! Y!34      w  r4Y4,
          R ,          R,          p^pR F&  pYWT^,
          ,          8:  d	   Ypn         MRT n        K(  	  Y4,
          T P                  4       T P                  4       ,          ,          pYP                  ^,          8  d,   \        RTR RT RT RT P                  ^,          R R2	4      hT P                  4       pT R	2p	T P                  P                  R
4      p
TP                  R
R7      pTP                  R
R7      p\        YYR7      P                  \        4      p \        T4      ^ 8  d(   T P!                  \        P                  ! T4      4      pT#  \        P                  ! Y.4      pT#   \         d    . u # i ; i  \"         d     L9i ; i)iQ r   g     @@z)MillisecondLocator estimated to generate rg   z ticks from z to z: exceeds Locator.MAXTICKS* 2 (z) r   N)r   )startendr   r   )r  
   2   d      i  )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   MilliSecondLocator.__call__  s   	++-JD
 __d\2
{e#d*2H"2Q"677!)#DN 3 KDNN$4t7I7I7K$KLmma'';A,l4&TF ;)!,B0  %%'2WW^^D!\\\&\\\&RdBII&Q		9~!,,V__Y-GH " |,O  	I	F  		s#   F+ 6F> +F;:F;>GGc                	    V P                   # r+   r  r  s   &r'   r)   MilliSecondLocator._get_interval  s    ~~r)   c                    V P                  4       w  r\        P                  ! V4      p\        P                  ! V4      pV P                  W44      # )z0
Set the view limits to include the data range.
)datalim_to_dtr   r   nonsingular)r   r  r  vminvmaxs   &    r'   	autoscaleMilliSecondLocator.autoscale  sA    
 '')
t$t$++r)   r>  NgLH>)r   r   r   r   r  r   r  r   r  r   r)  rE  r   r%   r)   r'   r  r    s5    #D)  +Z
,r)   r  c                   V ^8  d   QhRR/# )r#   r$   ztuple[int, int]r%   )r&   s   "r'   r(   r(     s     & &? &r)   c                    V ^8  d   ^^r!W3# V ^8  d   ^^r!W3# V ^28  d   ^^r!W3# V ^d8  d   ^^
r!W3# V ^8  d   ^^r!W3# V R8  d   ^
^2r!W3# V R,          ^,           pV^,          V^d,          r!W3# )zF
Returns a default spacing between consecutive ticks for annual data.
iX  r   r%   )nyearsmin_spacingmaj_spacingfactors   &   r'   _get_default_annual_spacingrM    s     {&'k %% 
"&'k %% 
"&'k %% 
#&'k %% 
#&'k %% 
#&("k %% 4!#&,rk6C<k%%r)   c               $    V ^8  d   QhRRRRRR/# )r#   datesr   r   rf   r$   npt.NDArray[np.intp]r%   )r&   s   "r'   r(   r(     s"       c 6J r)   c                R    \        W4      p\        P                  ! V4      ^ ,          # )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.
)_period_break_maskr2   nonzero)rO  r   masks   && r'   _period_breakrU    s"     e,D::dAr)   c               $    V ^8  d   QhRRRRRR/# )r#   rO  r   r   rf   r$   znpt.NDArray[np.bool_]r%   )r&   s   "r'   r(   r(     s"      k 3 ;P r)   c                h    \        W4      p\        V ^V P                  ,          ,
          V4      pW#8g  # )r  )getattrr   )rO  r   currentrQ   s   &&  r'   rR  rR    s.    e$Guq5::~-v6Hr)   c               $    V ^8  d   QhRRRRRR/# )r#   label_flagsrP  rC  r\   r$   boolr%   )r&   s   "r'   r(   r(   	  s"      !5 U t r)   c                    V P                   ^ 8X  g.   V P                   ^8X  d   V ^ ,          ^ 8X  d   V^,          R8  d   R# R# )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.
        FTsize)r[  rC  s   &&r'   has_level_labelra  	  s;     1A+a.A"5$(S.r)   c                    V ^8  d   QhRRRR/# )r#   r   r   r$   ztuple[int, int, int]r%   )r&   s   "r'   r(   r(     s     ! !z !.B !r)   c                4   V P                   p\        P                  ! V4      pRpV\        P                  P                  8  d)   \        V P                  4      p^V,          pRV,          pMV\        P                  8X  d   ^pRpMV\        P                  8X  d   ^pRpMvV\        P                  8X  d   ^p^4pM\V\        P                  8X  d   ^p^pMBV\        P                  8X  d   Rp^pM(V\        P                  8X  d   Rp^pM\        RV 24      hW4V3# )r  im  i  Unsupported frequency: r   )_period_dtype_coder   from_period_dtype_codeFR_HRrG   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_ymdru    s    ((J11*=J
CY__***dkk*3hCi	y''	'	y''	'	y	&	y''	'	y''	'	y''	'!$;J<"HIIS=r)   c               (    V ^8  d   QhRRRRRRRR/# r#   rC  r\   rD  r   r   r$   z
np.ndarrayr%   )r&   s   "r'   r(   r(   >  s.     D D DU D* D Dr)   c           
     &  aaaaaaaa VP                   p\        V4      w  rEpV o\        V 4      \        V4      rW,
          ^,           p\        P                  ! 4       ;_uu_ 4        \        P
                  ! RR\        R7       \        P
                  ! RR\        R7       \        \        WR7      \        WR7      VR7      oRRR4       \        P                  ! VR\        P                  3R	\        3R
\        3R/.R7      pSP                  VR,          R&   RVR,          R&   RVR	,          ^ R0.&   VR	,          oVR
,          oVR,          oV3R loWu8:  Ed   \        SR4      o\        SR4      p	\        SR4      oR VVVVVVVV3R llp
R VVVVVV3R llpR VVVVVV3R llpWtR,          8  d   V! ^4       V# WtR,          8  d   V! ^4       V# WtR,          8  d   V! ^4       V# WtR,          8  d   V! ^
4       V# WtR,          8  d   V! ^4       V# WtR,          8  d   V! ^4       V# Wt^,          8  d   V! ^4       V# Wt^F,          8  d   V! ^4       V# Wt^,          8  d   V! ^4       V# Wt^,          8  d   V! ^4       V# Wt^,          8  d   V! ^4       V# WtR ,          8  d   V
! ^R!4       V# WtR",          8  d   V
! ^R!4       V# WtR#,          8  d   V
! ^R!4       V# WtR ,          8  d   V
! ^R4       V# Wt^,          8  d   V
! ^R4       V# RSV	&   RSS&   R$SS&   R%SV	&   R&SS&   \        SS4      '       g+   \        V	S4      '       g   R&SS! S4      &   V# R&SS! V	4      &   V# Wv^,          8:  d   \        SR4      p	RSV	&   V\         P"                  P$                  8  d   RVR
&   M\        SR4      oRVR
,          S&   \        SR'4      p\        SR4      oR$SV&   R(SV	&   R)SS&   \        SS4      '       g+   \        V	S4      '       g   R)SS! V4      &   V# R)SS! V	4      &   V# VR*V,          8:  db   \        SR4      o\        SR4      p	\        SR'4      pRSV	&   RSV&   R!SS&   R!SV	&   R+SV	&   R,SS&   \        SS4      '       g   R,SS! V	4      &   V# VR V,          8:  d;   \        SR4      o\        SR-4      p\        SR4      p	RSV&   RSV	&   R+SV&   R,SS&   V# V^V,          8:  d\   \        SR4      o\        SR4      p	RSS&   RSV	&   R!SS&   SV	,          P&                  pW^8H  V^8H  ,          ,          pR+SV&   R,SS&   V# V^V,          8:  d/   \        SR4      o\        SR-4      pRSS&   RSV&   R!SS&   R.SS&   V# \        SR4      oSS,          P(                  pWv,          p\+        V4      w  ppSVV,          ^ 8H  ,          pRSV&   SVV,          ^ 8H  ,          pRSV&   R.SV&   V#   + '       g   i     ELE; i)1r  r   r   r   r   r   r   )r"  r#  r   Nvalmajminr   dtypeNNNr   Tc                   < V ^ ,          ^ 8X  d)   V P                   ^8  d   S^,          R8  d
   V ^,          # V ^ ,          # )r   r^  r_  )r[  	vmin_origs   &r'   first_label"_daily_finder.<locals>.first_labelb  s<    Nak&6&6&:)a-SVAVq>!q>!r)   daymonthyearc               $    V ^8  d   QhRRRRRR/# )r#   label_intervalr   force_year_startr\  r$   rJ   r%   )r&   s   "r'   r(   #_daily_finder.<locals>.__annotate__n  s&     		F 		F 		F 		F 		Fr)   c                   < SP                   p\        SR 4      pRSS&   RS	W2V ,          ^ 8H  ,          &   RSW2V ,          ^ 8H  ,          &   RSS&   RSS&   V'       d"   \        SS
4      '       g   RSS! S4      &   R# R# R# )r_   Tr   %H:%M
%d-%b%H:%M
%d-%b
%YN)r_   rR  ra  )r  r  targetrT  dates_	day_startr  info_fmtinfo_majinfo_minr  
year_starts   &&  r'   _hour_finder#_daily_finder.<locals>._hour_findern  s    [[F%ff5D"&HY>BHTn49:;>EHTn49:;"0HY#5HZ 
I(N(N3EY/0 )Or)   c                    V ^8  d   QhRRRR/# r#   r  r   r$   rJ   r%   )r&   s   "r'   r(   r  y  s     	6 	63 	64 	6r)   c                   < SP                   p\        SR 4      p\        SR4      pRSV&   RSW1V ,          ^ 8H  ,          &   RSW1V ,          ^ 8H  ,          &   RSS&   RSS	&   R# )r_   r`   Tr   r  r  N)r`   rU  rR  )
r  r  
hour_startrT  r  r  r  r  r  r  s
   &   r'   _minute_finder%_daily_finder.<locals>._minute_findery  sp    ]]F&vv6J%fh7D#'HZ >BHTn49:;>EHTn49:;"0HY#5HZ r)   c                    V ^8  d   QhRRRR/# r  r%   )r&   s   "r'   r(   r    s     	9 	93 	94 	9r)   c                   < SP                   p\        SR 4      p\        SR4      pRSV&   RSW1V ,          ^ 8H  ,          &   RSW1V ,          ^ 8H  ,          &   RSS&   RSS	&   R# )r`   ra   Tr   z%H:%M:%S
%d-%bz%H:%M:%S
%d-%b
%YN)ra   rU  rR  )
r  r  minute_startrT  r  r  r  r  r  r  s
   &   r'   _second_finder%_daily_finder.<locals>._second_finder  sp    ]]F(:L%fh7D%)H\">BHTn49:;>HHTn49:;"3HY#8HZ r)   i.  ip  i`	  i  i   i        @Fg      ?g      ?z%dz%d
%bz%d
%b
%Yweekz

%bz

%b
%Yffffff?%b%b
%Yquarter%Y)r   z|S20r   )re  ru  r   r   r   r   r   r   r   r2   zerosint64r\  r   rU  ra  r   rg  rG   r  r  rM  )rC  rD  r   rp  periodsperdayperiodspermonthperiodsperyearspaninfomonth_startr  r  r  
week_startquarter_startmonth_break
jan_or_jul
year_breakrI  
min_anndef
maj_anndef	major_idx	minor_idxr  r  r  r  r  r  r  r  s   &&&                    @@@@@@@@r'   _daily_finderr  =  s    ((J5I$5O2MN IIs4y4;?D		 	 	"	";m	
 	7-	
 1t/
 
# 88eRXX&t}oVD [[DKNDKNDKBE{HE{HE{H" !&%0	#FG4"662
		F 		F	6 	6	9 	9 %''1h Kg D((1d Kc D((1` K_ D((2\ K[ C''2X KW C''2T KS C''1P KO B&&1L KK B&&1H KG B&&2D KC A%%2@ K C''E"| K{ C''E"x Kw D((E"t Ks C''D!p Ko A%%T"l Ki %)H[!"&HY"&HY$,H[!#/HZ ":y99&{I>>7CH[34Z KW :FH[56V KQ 
1$	$#FG4 $	---DK%fe4I%)DK	""662
"662
# (+z955";	::4@Z01r Ko 6B[12n Kk 
&	&"662
#FG4"662
 $#$ % $'z95519H[-.T KQ 
~%	%"662
%fi8#FG4"& $"&'B K? 
^#	#"662
#FG4# $$[)// "2{a7G!HI
#'* K' 
n$	$"662
%fi8#"&$# K #662
J',,
&#>v#F Z
Z 71 <>	"
Z 71 <>	""Ks 
#	"	"s   &AW??X	c               (    V ^8  d   QhRRRRRRRR/# rw  r%   )r&   s   "r'   r(   r(     s.     D D% Du DJ D: Dr)   c                x   \        V4      w   r4T p\        V 4      \        V4      rW,
          ^,           p\        P                  ! VR\        3R\        3R\        3R.R7      p\        P
                  ! W^,           4      VR&   VR,          pRVR&   V^,          ^ 8H  P                  4       ^ ,          p	VR,          p
VR,          pVRV,          8:  d@   RW&   RVR&   R	VR
&   RW&   \        W4      '       g   VP                  ^8  d   ^pM^ pRW&   V# VRV,          8:  d:   V^,          ^ 8H  P                  4       pRW&   RVR,          V&   RVR&   R	W&   RW&   V# V^V,          8:  d1   RW&   RVR&   V^,          ^ 8H  V^,          ^8H  ,          pR	W&   RW&   V# V^V,          8:  d1   V^,          ^ 8H  P                  4       pRW&   RVR,          V&   RW&   V# Wd,          p\        V4      w  ppW,          ^,          ^,           pV	VV,          ^ 8H  ,          pRV
V&   RVR,          V	VV,          ^ 8H  ,          &   RVV&   V# )r  rz  r{  r|  r   r}  r   r  Tr  r  r  r  r  r   z|S8
ru  r   r2   r  r\  arangerS  ra  r`  rM  )rC  rD  r   r   r  r  r  r  r  r  r  r  idxr  r  rI  r  r  yearsr  s   &&&                 r'   _monthly_finderr    s   /5AqIIs4y4;?D 88eS\E4=5$-PD ))D(+DK%[FDK2+"++-a0JE{HE{Htn$$#U'z55{{Q$HML KI 
~%	%!q113# &*UM"U"&'6 K3 
^#	##UrkQ&6B;!+;<
#'& K# 
n$	$!q113#%)UM"# K &#>v#F Z"b(1,
 2a 79	"=AUJ
 2a 79:"Kr)   c               (    V ^8  d   QhRRRRRRRR/# rw  r%   )r&   s   "r'   r(   r(   N  s(     , ,E , ,j ,Z ,r)   c                (   \        V4      w   r4T p\        V 4      \        V4      rW,
          ^,           p\        P                  ! VR\        3R\        3R\        3R.R7      p\        P
                  ! W^,           4      VR&   RVR&   VR,          pVR,          p	VR,          p
V^,          ^ 8H  P                  4       ^ ,          pVRV,          8:  d@   RW&   RVR&   R	V
R
&   RW&   \        W4      '       g   VP                  ^8  d   ^pM^ pRW&   V# V^V,          8:  d   RW&   RVR&   RW&   V# W,          ^,          R,           pWd,          p\        V4      w  ppWV,          ^ 8H  ,          pRV	V&   RVR,          WV,          ^ 8H  ,          &   RV
V&   V# )r  rz  r{  r|  r   r}  r   g      @TzQ%qr  zQ%q
%Fz%Fi  r  r  )rC  rD  r   r   r  r  r  r  r  r  r  r  r  r  rI  r  r  r  s   &&&               r'   _quarterly_finderr  M  s   /5AqIIs4y4;?D88eS\E4=5$-PD ))D(+DKDK%[FE{HE{H1*/**,Q/Js^###U(z55{{Q%HM" K 
n$	$#U# K "a'$.&#>v#F Z
 2a 79	"=AUJ
 2a 79:"Kr)   c               (    V ^8  d   QhRRRRRRRR/# rw  r%   )r&   s   "r'   r(   r(   ~  s(       e : * r)   c                   \        V 4      \        V^,           4      rW,
          ^,           p\        P                  ! VR\         3R\        3R\        3R	.R7      p\        P                  ! W^,           4      VR&   RVR&   VR,          p\        V4      w  rgWW,          ^ 8H  pWV,          ^ 8H  p	RVR,          V&   RVR,          V	&   RVR,          V&   V# )
r  rz  r{  r|  r   r}  r   Tr  r  )r   r2   r  r\  r  rM  )
rC  rD  r   r  r  r  r  r  r  r  s
   &&&       r'   _annual_finderr  }  s     Is4!8}4;?D88eS\E4=5$-PD ))D(+DKDK%[F:4@Z#q(I#q(I!DK	!DK	!DK	Kr)   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r(     s     J JZ Jr)   c                x   V P                   p\        P                  ! V4      pV\        P                  8X  d   \        # V\        P
                  8X  d   \        # V\        P                  8X  d   \        # V\        P                  P                  8  g   V\        P                  8X  d   \        # \        R V 24      h)rd  )re  r   rf  rn  r  rm  r  rl  r  ri  rG   rk  r  ro  )r   rp  fgroups   &  r'   
get_finderr    s    ((J--j9F!!!	9##	#  	9##	#
	((..
.6Y__3L!$;J<"HIIr)   c                  H    ] tR tRt$ RtR]R&   RR R lltR tR	 tR
 t	Rt
R# )TimeSeries_DateLocatori  a  
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   rp   Nc               8    V ^8  d   QhRRRRRRRRRRR	RR
RRR/# )r#   r   r   minor_locatorr\  dynamic_modebaser   r  r  r  r$   rJ   r%   )r&   s   "r'   r(   #TimeSeries_DateLocator.__annotate__  sZ     ' '' ' 	'
 ' ' ' ' 
'r)   c	                	    \        VR R7      pWn        W@n        WVVuV n        V n        V n        W n        W0n        ^ V n        Wn	        \        V4      V n        R# Tr   N)r   r   r  r  r  r  isminor	isdynamicoffsetplot_objr  finder)	r   r   r  r  r  r  r  r  r  s	   &&&&&&&&&r'   r   TimeSeries_DateLocator.__init__  sP     .		07,tz48$%  &r)   c                    V P                  WV P                  4      pV P                  '       d&   \        P                  ! VR,          VR,          4      # \        P                  ! VR,          VR,          4      # )z'Returns the default locations of ticks.r|  rz  r{  )r  r   r  r2   compress)r   rC  rD  r   s   &&& r'   _get_default_locs(TimeSeries_DateLocator._get_default_locs  sQ    ++d$))4<<<;;wu~wu~>>{{75>75>::r)   c                8   \        V P                  P                  4       4      pVw  r#W28  d   Y2r2V P                  '       d   V P	                  W#4      pV# V P
                  p\        W%4      w  rgV^,           V,          p\        \        W#^,           V4      4      pV# )z"Return the locations of the ticks.)	rn   rp   r  r  r  r  r   rm   range)r   virC  rD  r   r  rg   r   s   &       r'   r   TimeSeries_DateLocator.__call__  s     499..01
;$>>>))$5D  99DD'FQET>D d1Hd34Dr)   c                    V P                   P                  4       w  rV P                  W4      pV^ R.,          w  rW8X  d   V^,          pV^,          p\        P                  P                  W4      # )zN
Sets the view limits to the nearest multiples of base that contain the
data.
r   )rp   r  r  r{   
transformsrB  )r   rC  rD  r   s   &   r'   rE   TimeSeries_DateLocator.autoscale  sc     yy224%%d1QG}<AIDAID~~))$55r)   )
r  r  r  r   r  r  r  r  r  r  )FTr  r  r  r  N)r   r   r   r   __doc____annotations__r   r  r   rE  r   r%   r)   r'   r  r    s"    " J'*;&6r)   r  c                  X    ] tR tRt$ RtR]R&   RR R lltR tR	 R
 ltRR R llt	Rt
R# )TimeSeries_DateFormatteri  an  
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   rp   Nc               (    V ^8  d   QhRRRRRRRR/# )r#   r   r   r  r\  r  r$   rJ   r%   )r&   s   "r'   r(   %TimeSeries_DateFormatter.__annotate__  s2     ' '' ' 	' 
'r)   c                	    \        VR R7      pRV n        Wn        . V n        RV n        W n        W0n        ^ V n        W@n        \        V4      V n
        R# r  )r   r&   r   r   
formatdictr  r  r  r  r  r  )r   r   r  r  r  s   &&&&&r'   r   !TimeSeries_DateFormatter.__init__  sL     .	!	15$%  &r)   c           	        V P                  WV P                  4      pV P                  '       dB   \        P                  ! VR,          \        P
                  ! VR,          4      ,          V4      pM\        P                  ! VR,          V4      pV UUUu/ uF	  w  p rgWWbK  	  upppV n        V P                  # u upppi )z"Returns the default ticks spacing.r|  r{  )r  r   r  r2   r  logical_notr  )r   rC  rD  r  r&   rr   r   fs   &&&     r'   _set_default_format,TimeSeries_DateFormatter._set_default_format!  s    {{4tyy1<<<[[er~~d5k/J!JDQF[[ed3F4:;FLQ114F; <s   B9c                   V ^8  d   QhRR/# rI   r%   )r&   s   "r'   r(   r  ,  s     
- 
- 
-r)   c                    Wn         \        V P                  P                  4       4      w  r#W28  d   Y2r2V P	                  W#4       R# )zSets the locations of the ticksN)r   rn   rp   r  r  )r   r   rC  rD  s   &&  r'   set_locs!TimeSeries_DateFormatter.set_locs,  s:    
 	TYY88:;; 4  ,r)   c                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   r  8  s     ( (z (# (r)   c                	   V P                   f   R# V P                   P                  VR4      p\        V\        P                  4      '       d   VP                  R4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        R7       \        \        V4      V P                  R7      pR R R 4       \        X\        4      '       g   Q hVP                  V4      #   + '       g   i     L9; i)Nr   zutf-8r   r   r   ry  )r  rV   rN   r2   bytes_decoder   r   r   r   r   r   r   r   )r   rr   r   r   r   s   &&&  r'   r   !TimeSeries_DateFormatter.__call__8  s    ??"//%%a,C#ryy))jj)((**''9*
  ATYY? + ff----??3'' +*s   ;>C**C:	)	r  r&   r  r   r  r  r   r  r  )FTNr   )r   r   r   r   r  r  r   r  r  r   r   r%   r)   r'   r  r    s'     J'$	
-( (r)   r  c                  l   a  ] tR tRt$ RtRR V 3R llltR]R&   ]RR R ll4       tRR	 R
 llt	Rt
V ;t# )TimeSeries_TimedeltaFormatteriJ  zJ
Formats the ticks along an axis controlled by a :class:`TimedeltaIndex`.
c                   V ^8  d   QhRR/# )r#   rX   r   r%   )r&   s   "r'   r(   *TimeSeries_TimedeltaFormatter.__annotate__O  s      X r)   c                	0   < Wn         \        SV `	  4        R # r+   )rX   superr   )r   rX   	__class__s   &&r'   r   &TimeSeries_TimedeltaFormatter.__init__O  s    	r)   r   rp   c               $    V ^8  d   QhRRRRRR/# )r#   
n_decimalsr   expr$   rf   r%   )r&   s   "r'   r(   r  V  s!      3 S  r)   c                r   \        V ^
V,          4      w  rE\        V^<4      w  rd\        V^<4      w  rv\        V^4      w  r\        V^
W#,
          ,          ,          4      p	\        V4      R R\        V4      R R\        V4      R 2pV^ 8  d   VRV	RV R2 2,          pV^ 8w  d   \        V4      R RV 2pV# )z(
Convert seconds to 'D days HH:MM:SS.F'
02d:.0rg   z days )r   r   )
rr   r   r  r  r   nsr   r   rg   decimalss
   &&&&      r'   format_timedelta_ticks4TimeSeries_TimedeltaFormatter.format_timedelta_ticksU  s    
 q"c'"a}a}a}rB:#34451vcl!CF3<qQ5>1Xa
|1_-..A6q6!*F1#&Ar)   c                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   r  f  s     D Dz D# Dr)   c                	h   R ^	R^R^R^ /V P                   ,          p\        V P                  P                  4       4      w  rE\	        \        \        P                  ! \        P                  ! ^d^
V,          ,          \        WT,
          4      ,          4      4      4      V4      pV P                  WWc4      # )r  r   r   r   )rX   rn   rp   r  r|  r   r2   ceillog10r   r  )r   rr   r   r  rC  rD  r  s   &&&    r'   r   &TimeSeries_TimedeltaFormatter.__call__f  s    Qaq#q1$))<TYY88:;RWWRXXcBGmc$+>N.N%OPQSVW
**1:CCr)   )rX   )r  )	   r   )r   r   r   r   r  r   r  r   r  r   r   __classcell__)r  s   @r'   r  r  J  s7      J  D Dr)   r  )h__conditional_annotations__
__future__r   
contextlibr   r.   r   r?   typingr   r   r   r   
matplotlibr{   matplotlib.datesrO  r   matplotlib.unitsunitsrL   numpyr2   pandas._libsr	   pandas._libs.tslibsr
   r   pandas._libs.tslibs.dtypesr   r   pandas._typingr   r   pandas.core.dtypes.commonr   r   r   r   r   pandasr   r   r   pandas.core.commoncorecommonr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   r   pandas.core.tools.datetimesr   	datetimescollections.abcr   matplotlib.axisr   pandas._libs.tslibs.offsetsr   r   r!   r  r5   rA   contextmanagerr:   rE   rF   rd   ri   ConversionInterfacer1   r|   	Formatterr~   DateConverterr-   r   r,   r   r   r	  r   r  r  rM  rU  rR  ra  ru  cacher  r  r  r  r  Locatorr  r  r  )r  s   @r'   <module>r8     s/   " "    
   ! !  
  
 !   4 
 , +)$6' 
D 	
  *'.
F.. 6%1CJJ(( %1V0f** 0f	6E
,, E
PIf66 I
?F22 ?4K,++ K,j&, !H D DN D DN , ,^  ,J"Q6SZZ// Q6rI(szz33 I(X DCJJ$8$8  Dr)   