
    6Dh                       S SK Jr  S SKJr  S SKJrJr  SSK	J
r
JrJr  SSKJrJrJrJrJr  S SKJr  S SKJrJr  S SKrS SKJrJrJr  S SKJs  Jr   S	r!\"" \\\\\S
9r/ SQ/ SQ-   / SQ-   / SQ-   r#/ SQr$/ SQr%/ SQr&\#\$-   \%-   \&-   r'\RP                  \RR                  \RT                  \RV                  \RX                  \RZ                  /r.\.\R^                  \R`                  \Rb                  /-  r. " S S\25      r3\3" 5       r4C3Sq5S r6S r7\" S/ SQ5      r8\" S/ SQ5      r9S r:S r;S\ Rx                  S\=S\>4S jr?S \ R                  S\ R                  4S! jrAS\=4S" jrBS# rCS$ rDS% rES& rFS' rGS( rHS) rIS* rJS+ rKS, rLS- rMS. rNS/ rOS0 rPS1 rQS2 rRS3 rSS4 rTS5 rUS6 rVS7 rWS8 rXS9 rYSES: jrZS; r[S< r\S\ Rx                  SS4S= jr]S> r^S? r_S@ r`SA raSB rbSESC jrcSD rdg)F    N)
namedtupleOrderedDict   )IdentityMapConstantRange)olslowessrolling	expandingewm)ColorscaleValidator)qualitative
sequential)make_subplots_set_trace_grid_reference_subplot_type_for_trace_typepx_no_color_constant)r
   r   r   r   r	   )basexyzabcrthetasizex_startx_end)
hover_nametextnamesvaluesparents
wide_cross)idserror_xerror_x_minuserror_yerror_y_minuserror_z)error_z_minuslatlon	locationsanimation_group)
dimensionscustom_data
hover_datapathwide_variable)animation_frame	facet_row	facet_col
line_group)colorsymbol	line_dashpattern_shapec                   (    \ rS rSr/ SQrS rS rSrg)
PxDefaults6   templatewidthheightcolor_discrete_sequencecolor_discrete_mapcolor_continuous_scalesymbol_sequence
symbol_mapline_dash_sequenceline_dash_mappattern_shape_sequencepattern_shape_mapsize_maxcategory_orderslabelsc                 $    U R                  5         g N)resetselfs    F/var/www/html/env/lib/python3.13/site-packages/plotly/express/_core.py__init__PxDefaults.__init__I   s    

    c                     S U l         S U l        S U l        S U l        0 U l        S U l        S U l        0 U l        S U l        0 U l	        S U l
        0 U l        SU l        0 U l        0 U l        g )N   rB   rU   s    rW   rT   PxDefaults.resetL   st    
'+$"$&*##"&&*#!#!rZ   )rP   rH   rG   rF   rE   rQ   rL   rK   rN   rM   rO   rJ   rI   rC   rD   N)__name__
__module____qualname____firstlineno__	__slots__rX   rT   __static_attributes__ rZ   rW   r@   r@   6   s    I$rZ   r@   c                     U q g)z
Arguments:
    token: A Mapbox token to be used in `plotly.express.scatter_mapbox` and         `plotly.express.line_mapbox` figures. See         https://docs.mapbox.com/help/how-mapbox-works/access-tokens/ for more details
N)MAPBOX_TOKEN)tokens    rW   set_mapbox_access_tokenrh   e   s	     LrZ   c                     U R                   $ )a  
Extracts fit statistics for trendlines (when applied to figures generated with
the `trendline` argument set to `"ols"`).

Arguments:
    fig: the output of a `plotly.express` charting call
Returns:
    A `pandas.DataFrame` with a column "px_fit_results" containing the `statsmodels`
    results objects, along with columns identifying the subset of the data the
    trendline was fit on.
)_px_trendlines)figs    rW   get_trendline_resultsrl   p   s     rZ   Mapping)show_in_trace_namegrouperval_mapsequenceupdatervariablefacet	TraceSpecconstructorattrstrace_patchmarginalc                 8     U S   U   $ ! [          a    Us $ f = f)NrQ   )	Exception)argscolumns     rW   	get_labelr      s*    H~f%% s   
 c                     U S   R                  5        VVs0 s H  u  p#X2_M	     nnn XA   $ s  snnf ! [         a    Us $ f = f)z}Invert mapping.
Find key corresponding to value column in dict args["labels"].
Returns `column` if the value does not exist.
rQ   )itemsr|   )r}   r~   keyvaluereversed_labelss        rW   invert_labelr      sU    
 7;8n6J6J6LM6Llsuz6LOM&& N  s   -3 AAdfcol_namereturnc                     [         R                  R                  U R                  5       =n5      (       a  X!   R                  R
                  S;   $ U R                  U5      R                  R                  5       $ )Nifc)nwdependenciesis_pandas_like_dataframe	to_nativedtypekind
get_column
is_numeric)r   r   	df_natives      rW   _is_continuousr      s\    	//R\\^0K	LL "((--66=="((3355rZ   sc                    U R                   nU[        R                  :X  a  U R                  R	                  S5      S-  $ U[        R
                  :X  a  UR                  S;   a  U R                  R	                  S5      S-  $ UR                  S:X  a  U R                  R	                  S5      S-  $ UR                  S:X  a  U R                  R	                  S5      S-  $ Sn[        U5      eS	U 3n[        U5      e)
Nms  )r   r   usi@B nsi ʚ;z%Unexpected dtype, please report a bugzExpected Date or Datetime, got )	r   r   Datedt	timestampDatetime	time_unit
ValueError	TypeError)r   r   msgs      rW   _to_unix_epoch_secondsr      s    GGEtt~~d#e++??k)44>>$'%//__$44>>$')33__$44>>$'-779CS/!/w7nrZ   c                     Sn [         R                  " XS9nX1 Vs1 s H  oD U 3iM
     sn;  a  U$ US-  nUS:  a  SU < SU S3n[        U5      eMQ  s  snf )zWraps of Narwhals generate_temporary_column_name to generate a token
which is guaranteed to not be in columns, nor in [col + token for col in columns]
r   )columnsr   d   zKInternal Error: Plotly was not able to generate a column name with n_bytes=z and not in zo.
Please report this to https://github.com/plotly/plotly.py/issues/new and we will try to replicate and fix it.)r   generate_temporary_column_nameAssertionError)n_bytesr   counterrg   r   r   s         rW   _generate_temporary_column_namer      s     G
11'K 813ug88L1S=*L	 2((  !%%# 
 9s   Ac                    [        X5      =p4SU ;   a  US:X  d*  US:X  a  SU ;   a	  U S   S:X  d  US:X  a  SU ;   a  U S   S:X  a  U S   =(       d    SnUS:w  a
  U< S	U< 3nOSnS
U ;   ap  U S
   bj  US:X  a  U S
   nO^U S
   nUS:X  a*  US:X  a
  S< S	U< 3nOCUS:X  a
  U< S	U< 3nO3U< SU< 3nO)US:X  a
  S< SU< 3nOUS:X  a
  S< SU< 3nO	U< S	U< 3nSU ;   a  U S   b  U< SU S   < S3nU$ )Nhistfuncr   r   orientationhr   vcountz of histnormsumprobabilityfractionpercentz weighted by z of sum of barnormz (normalized as ))r   )r}   r~   roleoriginal_labellabelr   r   s          rW   get_decorated_labelr      s.   &t44NT	CKMT1d=6IS6PCKMT1d=6IS6P
#.ww"*E2EE$z"2">Z(
+u$=0.8% @!Y..6 >7? P.1;UCE*1:EBE*2E:Ei!</4d9oFELrZ   c           
        ^^^ TS:X  d  TS:X  a  [        SU T   0 S/TS S S9$ TS:X  d  TS:X  aA  TS:X  a  S	OS
n[        SUU T   0 [        SS5       Vs/ s H  o3PM     snS TS:X  a  SS9$ SS9$ TR                  S5      tmmmTnTnTS:X  a  SnTS:X  a  SnSnTS;   a  SnSnXS-      S:X  a  [        5       nOXS-      R	                  5       n[        STX   UXS-      UUU4S jS S9$ s  snf )Nr:   r7   F c                     U$ rS   rd   tracer   s     rW   <lambda>make_mapping.<locals>.<lambda>      arZ   )rn   ro   rp   rq   rs   rr   rt   r8   r9   r   r   r   r   c                     U$ rS   rd   r   s     rW   r   r     r   rZ   rowcol)rn   rs   ro   rp   rq   rr   rt   .r;   color_discretedashr=   )patternshaper>   _mapidentityT	_sequencec                 T   > U R                  TSR                  T/T-   5      U005      $ )Nr   )updatejoin)r   r   other_variablesparentrs   s     rW   r   r   '  s+    chhzO;<a@A"
rZ   )rm   rangesplitr   copy)	r}   rs   letterivprefixarg_namerp   r   r   s	    `     @@rW   make_mappingr      s`   <8/@#@$NT'
 	
 ;(k"9 K/S$N!&q$0Aa0'#{2%
 	
 9>
 	
 ,4>>#+>(VXGH7"6''"!f+-'(--/+,
 
 
' 1s   C,c                    U S   nSU ;   a/  U S   (       a%  [         R                  " X"R                  S5      /SS9nUR                  R	                  5       =(       d    0 nSnSnUR
                   GHF  n	X	   n
[        X
U	5      nU	S:X  Ga=  UR                   Vs/ s H  nU
(       a  X;   d  M  UR                  [        R                  :w  d  [        X\5      (       d  MA  UR                  [        R                  :w  dD  U
b  X;   d<  [         R                  " UR                  U5      R                  5       5      U S	   ::  d  M  XR                  U5      4PM     nnU VVs/ s H  u  p[!        [#        X5      US
9PM     snnUS'   UR                  [        R$                  :X  a%  US    H  n[!        SS9US'   M     SUS'   SUS'   GMU  GMX  U
G	b  U	S:X  a@  SU;  a  [!        5       US'   UR                  U
5      US   S'   SUS   S'   XFS   S'   SX;'   GM  U	S:X  a)  UR                  [        R&                  :X  a  SUS'   GM  GM  U	S:X  a)  UR                  [        R&                  :X  a  SUS'   GM  GM   U	S:X  Ga  U S   (       Ga  U S   (       Ga  [)        UR+                  [         R,                  " U S   U S   5      5      R/                  5       5      S:  Ga  UR1                  U S   SS9nUR                  U S   5      nUR                  U S   5      nUR2                  [         R4                  :X  d  UR2                  [         R6                  :X  a  [9        U5      nODUR2                  R;                  5       (       d%   UR=                  [         R>                  " 5       5      nUR2                  R;                  5       (       d%   UR=                  [         R>                  " 5       5      nURC                  5       URC                  5       -  ) nURE                  U5      R                  U S   5      US'   US   R2                  [         R4                  :X  aJ  US   R2                  RF                  b0  US   RH                  RK                  S5      RM                  5       US'   OUS   RM                  5       US'   [N        U
   nU" U S!   UR                  U S   5      URM                  5       URM                  5       U S   U S   URM                  5       5      u  np[)        U5      [)        US   5      :X  d   S"5       eUUS'   SU[#        X S   5      '   S#U[#        X S   5      '   GM  GM  GM  GM  U	RQ                  S$5      (       aD  U	SS% nU	RS                  S&5      (       a  S'OS(nUU;  a  0 UU'   UR                  U
5      UU   U'   GMG  U	S):X  a=  [)        U
5      S*:  a+  UR+                  [         R,                  " U
5      5      US+'   GM  GM  U	S,:X  ab  UR                  [        R&                  [        RT                  [        RV                  4;  a"  UR                  U
5      US-'   US:X  a  S.nGM  GM  GM  U	S/:X  GaX  UR                  [        R&                  [        RT                  [        RV                  4;  Ga  [Y        U
[         5      nU R[                  S)5      =(       d    / nU
 H  nU(       a  U
U   (       d  M  UU R[                  S5      U R[                  S5      U R[                  S05      U R[                  S15      4;   a  M^   U S)   R]                  U5      n[        U US5      nS2U-  UU'   M     [)        U5      S*:  aM  UR*                  " [         Re                  U5       Vs/ s H  n[         R,                  " U5      PM     sn6 US+'   GMK  GMN  GMQ  U	S3:X  Ga  UR                  [        Rf                  [        Rh                  [        Rj                  4;   a   UR                  U
5      US0'   S4US5'   S6X;'   GM  UR                  [        Rl                  [        Rn                  [        Rp                  [        Rr                  [        Rt                  4;   a  SU;  a  [!        5       US'   U R[                  S75      (       a&  UR                  U
5      US   S8'   S4US   S5'   S9X;'   GM_  / US   S8'   U S:   b  U S:   R	                  5       nO0 nUR                  U
5      Rw                  5        HR  nUR[                  U5      c#  U S;   [)        U5      [)        U S;   5      -     UU'   US   S8   Rc                  UU   5        MT     GM  Sn UR                  [        R                  [        R                  4;   a  S<n U U;  a  [!        5       UU '   UR                  U
5      UU    S3'   S4UU    S5'   S=U -  X;'   G	Mi  U	S>:X  a  UR                  U
5      US?'   G	M  U	S@:X  a  UR                  U
5      Xi'   SAX;'   G	M  U	SB:X  a%  UR                  U
5      Xi'   USB:X  a  SCOUn!SDUU!'   G	M  U	SE:X  a%  UR                  U
5      Xi'   USE:X  a  SFOUn!SGUU!'   G	M  U	S?:X  a%  UR                  U
5      Xi'   US?:X  a  SHOUn!SIUU!'   G
M'  U	SJ:X  a  UR                  [        Rl                  [        Rn                  [        Rp                  [        Rr                  [        Rt                  4;   a&  UR                  U
5      USK'   USJ:X  a  SLOUn!SMUU!'   G
M  UR                  U
5      Xi'   G
M  UR                  U
5      Xi'   SNU	-  X;'   G
M  UR                  [        R&                  :X  a  U	SO;   d:  UR                  [        RT                  [        RV                  4;   d  GM6  U	S0:X  d  GM?  SNU	-  X;'   GMI     UR                  [        R                  [        R                  4;  Ga  [y        U5      n"U S/   (       a  [Y        U S/   [         5      (       a  UR{                  5        Hq  u  n#n$[}        U U#5      n%U%U S/   ;   d  M  U S/   U%   S*   n&U&(       a1  [Y        U&[~        5      (       a  U$R                  SPSQU&-  5      U"U#'   M^  M`  U"R                  U#5      n'Ms     U"R{                  5        V#V$s/ s H  u  n#n$U#SR-   U$-   PM     n(n#n$USSR                  U(5      -   UST'   UST==   SU-  ss'   Xg4$ s  snf s  snnf ! [@         a    [A        SU S   -  5      ef = f! [@         a    [A        S 5      ef = f! [@        [^        [`        4 a     [)        U5      nURc                  U5         GNf = fs  snf s  sn$n#f )Va  Populates a dict with arguments to update trace

Parameters
----------
args : dict
    args to be used for the trace
trace_spec : NamedTuple
    which kind of trace to be used (has constructor, marginal etc.
    attributes)
trace_data : pandas DataFrame
    data
mapping_labels : dict
    to be used for hovertemplate
sizeref : float
    marker sizeref

Returns
-------
trace_patch : dict
    dict to be used to update trace
fit_results : dict
    fit information to be used for trendlines

data_frame
line_closer   verticalhowNr   r2   dimensions_max_cardinality)r   r$   T)matchesaxisz%{x}z%{xaxis.title.text}z%{y}z%{yaxis.title.text}r   markerareasizemodesizerefz%{marker.size}
marginal_xr   
marginal_y	trendliner   r   by
nulls_lastzCould not convert value of 'x' ('%s') into a numeric type. If 'x' contains stringified dates, please convert to a datetime column.z3Could not convert value of 'y' into a numeric type.trendline_optionsz/missing-data-handling failure in trendline codez%{y} <b>(trend)</b>error   minus
arrayminusarrayr3   r   
customdatar!   	hovertextz<b>%{hovertext}</b><br><br>r4   r   r   z%%{customdata[%d]}r;   
coloraxis1	coloraxisz%{z}color_is_continuouscolorsz%{color}rG   rF   linez%%{%s.color}r1   r'   r0   z%{location}r$   r   z%{value}r%   r   z	%{parent}idz%{id}r#   rQ   r   z%{label}z%%{%s}r   r   }z%s}=z<br>hovertemplatez<extra></extra>)Cr   concatheadry   r   rx   r   r   rw   go	Parcoordsr   Parcatsto_py_scalarr   n_uniquedictr   Splom	Histogramlenselectr   
drop_nullssortr   r   r   r   r   castFloat64r   is_nullfilter	time_zoner   replace_time_zoneto_numpytrendline_functions
startswithendswithHistogram2dHistogram2dContour
isinstancegetindexAttributeErrorKeyErrorappendfromkeys
ChoroplethChoroplethmapChoroplethmapboxSunburstTreemapIciclePie
Funnelareato_listr   r   r   strreplacepopr   ))r}   
trace_spec
trace_datamapping_labelsr   r   ry   fit_resultshover_header	attr_name
attr_value
attr_labelnamedimsr~   dsorted_trace_datar   r   non_missingtrendline_functiony_outerror_xyarrhover_is_dictcustomdata_colsr   positionattr_label_colr   mappingcat	colorable_labelmapping_labels_copykr   k_args	formatter_hover_liness)                                            rW   make_trace_kwargsrN  .  s   2 L)Bt\ 2YY
OOA,>?ZP
((--/52KKL%%	_
(9E
$ '...D#); 4  ++r||;~b?W 4
 **bjj8".43Er}}T':'C'C'EF89: 4,,T23.   '+)&*NT 9T0@&*)K% %%1$\2A $T 2AfI 38>458>45	 2 #F";.,0FK)0:0E0Ej0QH%f-4:H%j13:H%i0-=*l*))R\\9.4N7+ :l*))R\\9.4N7+ :k)IIS		"))"&&cDI*FGRRT  )349QU(V%)44T#Y?A)44T#Y?Aww"++-BGG1C215WW//11 !rzz| 4A 77--// !rzz| 4A %&IIK!))+$=">K'8'?'?'L'W'WS	(K$ $C(.."++=',22<<H (,//AA$GPPR $C( ,7s+;+D+D+FC()<Z)H&7I01)44T#Y?



S	S	#,,.84E< u:#C(*  IHI  (-K$AGN9T9#=>AVN9T9#=>C " H %%g..$Ra=&/&8&8&A&Alw;.,.K)-7-B-B:-NH%c*m+z?Q& 1;0A0A"&&BT0UK- ' l*))LLNN))2 
 0:/D/DZ/PK,#r)'D * l*))LLNN))2 
 %/z4$@M&*hh}&=&CO)(C$ HHSM HHSM HHSM HHV,	#  %8'+M':'@'@'EH *=T3)M9M$:~6!  *( ?+a/ 5?4E4E151OP1OAbffQi1OP5L1 07H g%))MM$$''. 
 (2'<'<Z'HK$/;K,17N.++KKJJIIFFMM0   {204H-xx 566:D:O:O&;H-h7 >JH-k:5?2:<H-h7 45A&*+?&@&E&E&GG&(G#-#8#8#D#L#L#NC  '{{3/7/34M/N$'L3t<U7V3W$W0" (1(;BB73<P $O !)I!--"**bll1KK$*	 315I.6@6K6KJ6WK	*73:FK	*;71?)1KN.//%/%:%::%FE"k))3)>)>z)J&-:*h&)3)>)>z)J&$.($:
)3v&i')3)>)>z)J&%/9%<*)4v&e#)3)>)>z)J&!+u!4*)0v&g%))KKJJIIFFMM.  -7,A,A*,MK)(2g(=W:F-7N6*-7-B-B:-NK*)3)>)>z)J&-5	-A*$$4j9P""r~~r7L7L&MMS  *2I)=N&A &B bllBJJ%?? *.9*T,-?"F"F&,,.1%dA.T,// $\ 26 :1 =I %i5556YYsEIDU5V/2 6 033A6 / 0C/H/H/JK/Jtq!q3w{/JK'3fkk+6N'NO$O$(99$##_)X  * ",!j"&s)!,#   * ", U# ` !+NHE 8'*?';H+22378 QV LsU   s,+,s,As,=s,s16$s7:$t0t/ u'
-u,7tt,/1u$#u$c                 \   [         R                  [        [         R                  [        [         R
                  [        [         R                  [        [         R                  [        [         R                  [        [         R                  [        [         R                  [        [         R                  [        [         R                  [        [         R                   [        [         R"                  [$        [         R&                  [$        0n[(         H  n[*        XE'   M     X;   a  XA   " XU5        g g rS   )r  	Scatter3dconfigure_3d_axesScatterternaryconfigure_ternary_axesScatterpolarconfigure_polar_axesScatterpolarglBarpolar
Scattermapconfigure_mapr$  
DensitymapScattermapboxconfigure_mapboxr%  Densitymapbox
Scattergeoconfigure_geor#  
cartesiansconfigure_cartesian_axes)r}   rw   rk   ordersconfiguratorsr   s         rW   configure_axesrd  e  s    
'
1
-
/
)
}
-
}
*
-
*
}
}M 3 #"4f5 $rZ   c                    SU-   nSU-   nX@;   aJ  X   (       aA  SUS'   XP;   a6  X   (       a-  X    Vs/ s H  n[         R                  " US5      PM     snUS'   OXP;   a  X   (       a  X   US'   X   U;   aR  SUS'   [        U[        R                  R
                  5      (       a  X0U      O[        [        X0U      5      5      US	'   g g s  snf )
Nlog_range_logtype
   r   r   categoryordercategoryarray)mathrh  r  r  layoutXAxislistreversed)r}   r   r   rb  log_key	range_keyr   s          rW   set_cartesian_axis_optsrt  {  s    voG6!I4=V6:oFoTXXa_oFDM		tW|v '_ $		00 < hv6l345 	_ 	 Gs   !C
c                    [        UR                  5      n[        UR                  S   5      nUR                  SS9 H  n[        XSU5        M     UR	                  SS9 H  n[        XSU5        M     U S   (       a  UR                  SSS	S US
9  U S   R                  R                  R                  c  UR                  U S   S:H  US9  U S   R                  R                  R                  c  UR                  SUS9  U S   (       a  UR                  SSS	S US9  U S   R                  R                  R                  c  UR                  U S   S:H  US9  U S   R                  R                  R                  c  UR                  SUS9  [        X S   S5      nU S   (       a  UR                  USSS9  O&[        SUS-   5       H  nUR                  XxSS9  M     [        X S   S5      n	U S   (       a  UR                  U	SSS9  O'[        SUS-   5       H  n
UR                  U	SU
S9  M     SU ;   a  U S   (       a  UR                  SS9  SU ;   a  U S   (       a  UR                  SS9  S[        US-   5      -   nU S   (       a(  [        SUS-   S5       H  nUR                  US US9  M     U S   (       a)  [        SUS-   S5       H  n
UR                  SS U
S9  M     g g )Nr   r   r   r   r   r   r   Fr   )showticklabelsshowlineticksr   r   rC   	histogram)showgridr   Tr   )rx  ry  rz  r   r   )r|  r   )
title_textr   r   log_xrh  ri  log_y   )r   ri  r   x2)r   ri  r   )r  	_grid_refselect_yaxesrt  select_xaxesupdate_yaxesrn  yaxisr|  xaxisupdate_xaxesr   r   r,  )r}   rk   rb  nrowsncolsr  r  y_titler   x_titler   	matches_ys               rW   !configure_cartesian_marginal_axesr    s   Ea !E !!a!(S&9 ) !!a!(S&9 ) L 5$E 	 	
 
""((119d<&8K&GUS
""((119d6L 5$E 	 	
 
""((119d<&8K&GUS
""((119d6 "$S	37GLG:EAI&Ca@ ' "$S	37GLG:EAI&CQC@ ' $4=e$ $4=e$ c%!)n$ILEAIq)CYTsC * LEAIq)CT#> * rZ   c                 r   SU ;   a
  U S   (       d  SU ;   a  U S   (       a  [        XU5        g [        X S   S5      nUR                  SS9 H  nUR                  US9  [	        XSU5        M!     [        X S   S5      nUR                  SS9 H%  nS	U ;  a  UR                  US9  [	        XSU5        M'     S
U ;   a  U S
   (       a  UR                  SS9  SU ;   a  U S   (       a  UR                  SS9  S	U ;   a  UR                  SS9  SU ;   a)  U S   S:X  a  UR                  SS9  g UR                  SS9  g g )Nr   r   r   r   rv  r}  r   rw  is_timeliner~  rh  r  r  dateecdfmoder   r   tozero)	rangemode)r  r   r  r   rt  r  r  r  )r}   rk   rb  r  r  r  r  s          rW   ra  ra    sR   l!3l!3)$V< "$S	37G!!a!((S&9 )
 "$S	37G!!a!($LLGL,S&9 ) $4=e$ $4=e$f%T#%x0x0	 rZ   c                     UR                  [        [        X S   5      S9[        [        X S   5      S9[        [        X S   5      S9S9  g )Nr   r  r   r   )aaxisbaxiscaxis)update_ternariesr	  r   r}   rk   rb  s      rW   rS  rS    sH    i3i89i3i89i3i89  rZ   c                    [        [        U S   U S   S9[        5       S9nS H"  u  pEX   U;   d  M  SX5   S'   X U      X5   S'   M$     US	   nU S
   (       a>  SUS'   U S   (       a.  U S    Vs/ s H  n[        R                  " US5      PM     snUS'   OU S   (       a  U S   US'   U S   (       a  U S   US'   UR                  U5        g s  snf )N	directionstart_angle)r  rotation)angularaxis
radialaxis))r   r  )r   r  r   rk  rl  r  log_rrh  ri  range_rrj  r   range_thetasector)r	  rm  rh  update_polars)r}   rk   rb  patchvarr   r  r   s           rW   rU  rU    s    4#4tM?RS6E
 E	9+2EK(+1s)+<EK( E
 |$JG}"
6	?<@O"LOq488Ar?O"LJw	?"&y/JwM}-he #Ms   .!Cc                    [        [        [        X S   5      S9[        [        X S   5      S9[        [        X S   5      S9S9nS H  nX4S-      nU SU-      (       aD  S	US
'   U SU-      (       a1  U SU-       Vs/ s H  n[        R                  " US5      PM     snUS'   OU SU-      (       a  U SU-      US'   X   U;   d  M}  SUS'   X U      US'   M     UR	                  U5        g s  snf )Nr   r  r   r   )r  r  zaxis)r   r   r   r   rf  rh  ri  rg  rj  r   r   rk  rl  )r	  r   rm  rh  update_scenes)r}   rk   rb  r  r   r   r   s          rW   rQ  rQ    s   i3i89i3i89i3i89E "f_%  DLHv%&:>x&?P:Q R:QQ!R:Q RWHv%& $X%6 7W<6!$+D!$*<$8D! " e !Ss   :!C)c                     U S   nU(       dD  SU ;   a>  SU ;   a8  [        U S   U S      R                  5       U S   U S      R                  5       S9nUR                  [        UU S   U S   S9  g )	Ncenterr.   r/   r   r.   r/   zoommapbox_style)accesstokenr  r  style)r	  meanupdate_mapboxesrf   r}   rk   rb  r  s       rW   r\  r\  ,  s    (^Fetm\"4;/446\"4;/446
  &\>"	  rZ   c                     U S   nU(       dD  SU ;   a>  SU ;   a8  [        U S   U S      R                  5       U S   U S      R                  5       S9nUR                  UU S   U S   S9  g )	Nr  r.   r/   r   r  r  	map_style)r  r  r  )r	  r  update_mapsr  s       rW   rY  rY  ;  s}    (^Fetm\"4;/446\"4;/446
 OO&\;  rZ   c           
      V    UR                  U S   U S   U S   U S   [        U S   S9S9  g )Nr  scope	fitboundsbasemap_visible
projectionr  )r  r  r  visibler  )update_geosr	  r  s      rW   r_  r_  I  s?    OOH~7m{#&'T,/0  rZ   c                   ^ U4S jnSU ;   a  U S   (       a  [        UR                  5      S:  a  S U" S5      /SSS.S /U" S5      /S	SS./S
SSS.SSSSSSS.	/UR                  l        SSS
S[	        X S   5      S-   0SSS.SSSUR                   Vs/ s H&  nUR
                  /U" S5      /UR
                  SS.PM(     snS.	/UR                  l        g g g g s  snf )Nc                 @   > U T[         R                  :g  S.SSU SS.S.$ )N)durationredraw	immediateTlinear)r  easing)framemodefromcurrent
transition)r  Scatter)r  rw   s    rW   
frame_args0configure_animation_controls.<locals>.frame_argsT  s,    "*kRZZ6OP'/8D	
 	
rZ   r7   r   i  z&#9654;animate)r}   r   methodr   z&#9724;leftrj  F   )r   tFbuttonsg?righttop)	r  r  pad
showactiveri  r   xanchorr   yanchorprefixr   <   )r   r  g?)	activer  r  currentvaluer  r  r   r   steps)r  framesrn  updatemenusr   r7  sliders)r}   rw   rk   r  fs    `   rW   configure_animation_controlsr  S  s6   
 D T*;%<SZZSTAT
 "&z# 7!*"+ #'A 7!*"+ $b)#!" )"


4  !i3D.EFL!  b) !ZZ (	 #$&&:a= 9!""+
 (


3 BU%< Js   -Cc                    U[         R                  [         R                  4;   a  SU ;   a}  U S   S:X  d6  U S   S:X  ak  [        U S   5      S:  aY  U R	                  S5      S:w  aD  U S   c>  U[         R                  :X  a  [         R
                  nS	U;   a  US		 O[         R                  n[        XUS 5      /nS
 GHq  nSU-   U ;   d  M  U SU-      (       d  M  S n[        US:X  a  SOSUS:X  a  SOSS9nU SU-      S:X  a,  [        [         R                  USU-   /[        S-SUS.UD6US9nOU SU-      S:X  a%  [        [         R                  USS/[        US9US9nOqU SU-      S:X  a%  [        [         R                  USS/[        SS9US9nO@U SU-      S:X  a4  SS S
.n[        [         R                  USS/[        S!S"S!0S#S$S%S&X   0S'9US9nS"U;   d  S"U ;  a@  S(UR                  ;  a  [        5       UR                  S('   U S)   S$   n	XR                  S(   S"'   UR                  U5        GMt     U R	                  S*5      (       a0  U R	                  S+S,5      S,:X  a  UR                  [        X5      5        U$ ).Nrender_modewebglautor   r   
line_shapespliner7   r   r   	marginal_r   x1r  r   y1y2)r  r  r{        ?)opacitybingrouprv   violinr!   r4   )
scalegroupboxT)notchedrugzline-ns-openzline-ew-openzrgba(255,255,255,0)r;   allr   pointsr<   )	fillcolorr   	boxpointsjitterhoveronr   r   rH   r   trendline_scoper   rd   )r  r  rT  r  r  	ScatterglrV  ru   r	  r  ViolinBoxry   r!  make_trendline_spec)
r}   rw   rx   ry   resultr   r/  axis_mapsymbolsfirst_default_colors
             rW   make_trace_specr    s   rzz2??33D 7*]#v-\*+d2HH\*h6*+3 bjj( ll K/#M2 //K>?F 4'Dv1E,F,FJ$md$mdH K&()[8& "!;#78 $ NS6 NX N#	
 kF*+x7& "		!<> $ 7#	
 kF*+u4& "!<> $T 2#	
 kF*+u4 .^D& "!<> $"7%'<="'  ( ('/:! $
 %7$#6:#9#997;vJ**84&*+C&DQ&G#<O&&x09MM*%a f xx*;W!E!P)$<=MrZ   c                     [        U[        R                  :X  a  [        R                  O[        R                  S/[	        SS9S S9nU S   (       a  [	        U S   S9UR
                  S'   U$ )Nr   lines)r  rv   trendline_color_overrider;   r   )ru   r  r  r  r	  ry   )r}   rw   r/  s      rW   r  r    sf     bll* LLmg&	J &')-D9S4T)U
v&rZ   c                     g)Nr   rd   r   s    rW   	one_groupr    s    rZ   c                    [         R                   H#  nX;   d  M
  X   b  M  [        [         U5      X'   M%     U S   c>  [        R                  R
                  b  [        R                  R
                  U S'   OSU S'    [        R                  U S      U S'   SU ;   a  U S   ca  U S   R                  R                  R                  (       a9  U S   R                  R                  R                   Vs/ s H  o"S   PM	     snU S'   U S   c  [        R                  U S'   SU ;   aY  U S   c:  U S   R                  R                  (       a  U S   R                  R                  U S'   U S   c  [        R                  U S'   SU ;   a  U S   c^  U S   R                   R"                  (       a@  U S   R                   R"                   Vs/ s H  o3R$                  R&                  PM     snU S'   U S   (       a  [)        U S   5      (       d  / SQU S'   SU ;   a  U S   c^  U S   R                   R"                  (       a@  U S   R                   R"                   Vs/ s H  o3R*                  R,                  PM     snU S'   U S   (       a  [)        U S   5      (       d  / S	QU S'   S
U ;   a  U S
   ch  U S   R                   R.                  (       aJ  U S   R                   R.                   Vs/ s H"  oDR$                  R0                  R2                  PM$     snU S
'   U S
   (       a  [)        U S
   5      (       d  / SQU S
'   g g g ! [         a)    [        R                  R                  U S   5      U S'    GNf = fs  snf s  snf s  snf s  snf )NrC   plotlyrH   r   rF   rI   )circlediamondsquarer   crossrK   )soliddotr   longdashdashdotlongdashdotrM   )r   /\r   +r   )defaultsrb   getattrpio	templatesdefaultr|   r  rn  Template
colorscaler   Viridiscolorwayr   D3datascatterr   r<   anyr   r   barr   r   )r}   paramr   r'  r)  s        rW   apply_default_cascader+    sd    ##=T[0!(E2DK $
 J==  ,"}}44D'D@==j)9:Z  4')*2Z ''22== #:.55@@KK.K!K.D)* ()1-7-?-?D)* D()*2tJ7G7N7N7W7W.2:.>.E.E.N.ND*+)*2.9nnD*+ D !"*tJ/?/D/D/L/L59*5E5J5J5R5R'5R'%%5R'D"# %&c$7H2I.J.J&SD"#t#$%-$z2B2G2G2O2O15j1A1F1F1N1N*1Ng!!1N*D%& ()T:N5O1P1P*D%&  4'()1d:6F6K6K6O6O484D4I4I4M4M.4MS

""((4M.D)* ,-S)*6
 6
 .LD)*6
 (a  @99--d:.>?Z@. '*.s*   =L2 /M( M-M2)M72/M%$M%c                 8    X;  a  U $ [        SU < SU < S35      e)Nz.A name conflict was encountered for argument 'z '. A column or index with name 'z' is ambiguous.)	NameError)
field_namereserved_namess     rW   _check_name_not_reservedr0  :  s&    '@JJX
 	
rZ   c                    U S   n[        5       nU  GHA  nU[        ;  a  M  U[        ;   a  X   OX   /nUc  M(  U GH  nUc  M	  [        U[        5      (       a  UR                  U5        M1  [        R                  R                  U5      (       ax  [        R                  " USS9nUR                  nU(       aN  XqR                  ;   a=  XaR                  U5      :H  R                  5       nU(       a  UR                  U5        M  M  M  M  U[        R                  " U5      L d  M  UR                  c  M  UR                  UR                  5        GM     GMD     U$ )z
This function builds a list of columns of the data_frame argument used
as arguments, either as str/int arguments or given as columns
(pandas series type).
r   Tseries_only)setall_attrablesarray_attrablesr  r,  addr   r   is_into_seriesfrom_nativer7  r   r   r  maybe_get_index)	r}   r   r/  fieldr#   arg
arg_seriesr   in_dfs	            rW   _get_reserved_col_namesr?  D  s    L)BUN%$7dk]=C{C%%""3'//44^^CTB
%??JJ 6'==+BBGGIE&**84  !78 **2..3883G""388,  * rZ   c                    Ub*  [        U[        5      (       d  [        U[        5      (       a  gU(       a  [        XR                  5      (       a  g [	        U5        U HE  n[        U[        5      (       d  [        U[        5      (       a  U b  X@;  a    gM9   [	        U5        MG     g! [
         a     gf = f! [
         a       gf = f)zReturns True if arg looks like it's a list of columns or references to columns
in df_input, and False otherwise (in which case it's assumed to be a single column
or reference to a column).
FT)r  r,  int
MultiIndexiterr   )r   r<  
is_pd_likenative_namespacer   s        rW   _is_col_listrF  d  s    
 {jc**jc.B.Bj&A&ABBS	 aAs!3!3!"2 #3Q      s$   B) B9)
B65B69
CCc                     [        U [        5      (       d<  [        U [        5      (       a  [        U 5      S:X  d  [        U [        5      (       d  U c  gg)zReturns True if x is an iterable which can be transformed into a pandas Series,
False for the other types of possible values of a `hover_data` dict.
A tuple of length 2 is a special case corresponding to a (format, data) tuple.
r  FT)r  r,  tupler  boolr  s    rW   _isinstance_listlikerJ  }  s@     	1cq%  SVq[a9rZ   c                 J    U c  U$ X;   d  X;   a  SU-   nX;   a  M  X;   a  M  U$ )NrL  rd   )r   r   extras      rW   _escape_col_namerM    s2    

!2> 
!2OrZ   c                 (   [         R                  " U SSS9n [        U [         R                  5      (       a  U R	                  U5      $ Ub  [         R
                  " XUS9$  SSKn[         R
                  " XUS9$ ! [         a    Sn[        U5      ef = f)zVAssuming x is list-like or even an existing Series, returns a new Series named `name`.Tr3  pass_throughNr7  r$   rE  r   <Pandas installation is required if no dataframe is provided.)	r   r9  r  Seriesrename
new_seriespandasImportErrorNotImplementedError)r   r7  rE  pdr   s        rW   to_named_seriesrZ    s     	qd>A!RYYxx~		%}}$CSTT	+==drJJ 	+PC%c**	+s    A9 9Bc                    U S   nUSLn0 n0 n	/ n
[        5       nU(       a  [        U 5      O	[        5       nSU ;   aC  U S   c=  U(       d  [        S5      eUR                   Vs0 s H  oUR	                  U5      _M     nnSU ;   =(       a    U S   =(       a    [        U S   [        5      nU(       a  U S    H~  n[        U S   U   5      (       a  SU S   U   4U S   U'   [        U S   U   [        5      (       d  U S   U   S4U S   U'   U(       d  M]  U S   U   S   c  Mk  X;   d  Mr  [        SU-  5      e   [         GH6  nU[        ;  a  U R                  U5      /OU R                  U5      nUb  US/L a  M<  U[        ;  a  U/O3[        [        U5      5       Vs/ s H  nUS	-   [        U5      -   PM     snn[        [!        UU5      5       GH  u  nu  nn[        U5      (       a   [        U[#        [%        U5      5         5      OS
nUc  MA  SnU(       aD  [        UUR&                  5      (       a)  [)        SU SUR*                   SUR*                   S35      e[        U[,        [.        45      (       ag  [1        UR2                  b  [        UR2                  5      OUU5      n[        U[,        5      (       a  UR4                  U	U'   GO2U
R7                  U5        GO[        U[        5      (       d  [9        US5      (       Gd  US:X  a  U(       a  U S   [        U5         S   br  [        U5      nU S   U   S   nU(       aC  [        U5      =nU:w  a2  [        SUU[        [;        UR=                  5       5      5      U4-  5      e[?        UUU5      UU'   GOdU(       d  [        SU-  5      eUUR                  ;  aQ  U(       a
  UX24;   a  GM  SU< S[        [;        UR                  5      5      < SU< 3nUS:X  a  US-  n[        U5      eU(       aC  [        U5      =nU:w  a2  [        SUU[        [;        UR=                  5       5      5      U4-  5      e[        U5      n[?        UR	                  U5      U5      UU'   GOyU(       a  [9        US5      (       a  U(       ah  U[@        RB                  " U5      L aO  URD                  b  URD                  UR                  ;   a  SnOURD                  n[G        UR                  UX#/5      nOyURD                  bl  URD                  UR                  ;   aR  [?        UURD                  U5      UR	                  URD                  5      :H  RI                  5       (       a  URD                  nUc  [1        UU5      nU(       aC  [        U5      =nU:w  a2  [        SUU[        [;        UR=                  5       5      5      U4-  5      e[?        U[        U5      US9U[        U5      '   Uc   S5       eU[        ;  a  [        U5      U U'   O*[        U U   [        5      (       a  O[        U5      U U   U'   US:w  d  GM  URK                  [        U5      5        GM     GM9     [        U5      (       a   [        U[#        [%        U5      5         5      OS
nUc   S
SK&nUnU
(       a[  S
SK)n[@        RT                  " SURW                  U5      US9n URY                  U
 Vs0 s H  nUU R[                  U5      _M     sn5        URY                  U	 Vs0 s H!  nU[@        RT                  " UU	U   /U-  US9_M#     sn5        U(       a  [@        R\                  " U5      nX4$  S
SK&n[@        R^                  " URa                  0 5      SS!9nX4$ s  snf s  snf ! [N         a    Sn[Q        U5      ef = fs  snf s  snf ! [N         a    S n[Q        U5      ef = f)"aK  
After this function runs, the `all_attrables` keys of `args` all contain only
references to columns of `df_output`. This function handles the extraction of data
from `args["attrable"]` and column-name-generation as appropriate, and adds the
data to `df_output` and then replaces `args["attrable"]` with the appropriate
reference.
r   Nr2   zjNo data were provided. Please provide data either with the `data_frame` or with the `dimensions` argument.r4   Tr   zIAmbiguous input: values for '%s' appear both in hover_data and data_framerL  r   z
Argument 'z' is a  MultiIndex. = MultiIndex is not supported by plotly express at the moment.__len__zAll arguments should have the same length. The length of hover_data key `%s` is %d, whereas the length of previously-processed arguments %s is %dzString or int arguments are only possible when a DataFrame or an array is provided in the `data_frame` argument. No DataFrame was provided, but argument '%s' is of type str or int.z
Value of 'z?' is not the name of a column in 'data_frame'. Expected one of z but received: r  z6
 To use the index, pass it in directly as `df.index`.zAll arguments should have the same length. The length of column argument `df[%s]` is %d, whereas the length of previously-processed arguments %s is %dr7  zAll arguments should have the same length. The length of argument `%s` is %d, whereas the length of previously-processed arguments %s is %d)r   r7  rE  zData-frame processing failure, likely due to a internal bug. Please report this to https://github.com/plotly/plotly.py/issues/new and we will try to replicate and fix it.r6   rR  __placeholder__rQ  z Pandas installation is required.
eager_only)1r4  r?  r   r   r   r  r	  rJ  rH  r5  r6  r  r   r  r,  	enumeratezipnextrC  rB  r   r^   r   r   r0  r   r   r!  hasattrrp  keysrZ  r   r:  r7  rM  r  r7  rV  rW  rX  numpyrU  aranger   alias	from_dictr9  	DataFrame)!r}   	wide_modevar_name
value_namerD  rE  df_inputdf_provided	df_output	constantsrangeswide_id_varsr/  r   hover_data_is_dictrI  r.  argument_listr   
field_listargumentr;  lengthr   real_argumentreal_lengtherr_msg
actual_lenlen_argrY  r   nprange_seriess!                                    rW   process_args_into_dataframer    s!    %)$6H$&K
 IIF5L6A,T2suN t\ 2 :|  CKBRBRSBR3h11#66BRIS 	 	1	1tL)40  l#A#D$6q$9::)-tL/A!/D(E\"1%d<03U;;)-l);A)>(E\"1%{tL1!4Q7C _  $ $m
 0 XXj!"*% 	  MdV$;
 0 L5:3};M5NO5N*s"SV+5NO 	 %.c-.L$M A %>A)nnS4Y#89:RSFHj3C3N3NOO w/?/H/H.I'001 2--  (Xu$5663+3>>+EC'5" h11*2..Ih'MM(+Hc**'(I2N2N,.*\*3x=9!<H  #8}H$($6x$@$CM#m2D#D;"O(P !) + #D)9$: ; &	
 
 +:%x1A+Ih' %$6 9>>  X%5%55 X*1G%G 
  %c$x/?/?*@&A8M  
 $w.#'``G(11s8}!< G$L "&Y^^%5 67"	
 
  #8}H*9 ++H5x+Ih'
 78V#<#<!h"2D2DX2N&N#==0HMMXEUEU4U'.H'/}}H#3$,,h8N$
 %MM5 (1A1A A /$,hmm=M!" $,#6#6x}}#E!F "ce!$ (0}}H#7~NH#h-7wFB$L !'3tINN4D/E+FOP  ,;X%5,	#h-( ' (' 0#&x=Z D,d33&)(mZ #_,  X/Y %N' $B 7:)nnS4Y012!F	+!
 }}"99V$-

 	DJKFX|))(33FK	
  &	
 & bmm!(+,v5!1 
 &	

 LL+	 ""	+ NN2<<#3E	""E TH Pr  	+PC%c**	+ L	
   	+4C%c**	+s0   "^!^&/^+ 4_&(_6_ +__(c           	        ^( U  Hs  nU[         ;   d  M  X   c  M  [        X   [        5      (       a  [        X   5      X'   M>  US;   a   [        X   [        5      (       a	  X   /X'   Md  [	        X   5      X'   Mu     U S   SLnSnSnU(       Ga
  [
        R                  R                  U S   5      (       a.  U S   R                  m([
        R                  " U S   SS9U S'   SnGO[
        R                  R                  U S   5      (       a<  [
        R                  " U S   SS9R                  5       U S'   U S   R                  m(SnGOT[        [
        R                  " U S   SSS9=n[
        R                  5      (       a-  X`S'   [
        R                  " U5      S	:H  nU S   R                  m(O[        [
        R                  " U S   SSS
9=n[
        R                  5      (       a#  UR                  5       U S'   U S   R                  m(O[        U S   S5      (       a;  [
        R                  " U S   R!                  5       SS9U S'   U S   R                  m(SnOE SSKn [
        R                  " UR                  U S   5      5      U S'   U S   R                  m(SnOSm(U S   n
U(       a  U(       d  [
        R,                  " U
5      OSnU(       a  U(       d  [
        R.                  " U
5      OSnU R1                  S5      SL nU R1                  S5      SL nU(       a  SO[3        T(U S   XL5      nU(       a  SO[3        T(U S   XL5      nSnSnSnSn[4        R6                  [4        R8                  /nU[4        R:                  :H  =(       d    SU ;   nU[<        ;   Ga  U(       a  U(       a  [?        S5      eU(       a  U(       a  U(       a  SnU(       aA  [        T(UR@                  5      (       a&  [C        SURD                   SURD                   S35      e[	        T(5      U S'   U(       a(  [        T(URF                  5      (       a  T(RH                  nOSnUS;   d  UT(;   a  SnU[4        RJ                  :X  a  U R1                  S5      =(       d    SnOU R1                  S5      =(       d    SnUU S'   SU S'   OUU:w  a  SnU(       a  U S   OU S   U S'   U(       a  U(       a  U S   T(L a  T(RH                  nU(       a/  [        U S   URF                  5      (       a  [	        U S   5      U S'   US;   d  U(       a  UT(;   a  SnU(       a  U(       a  SOSnOU(       a  SOSnSU U(       a  SOS'   SU S'   U(       d  U(       d  U(       a  SOS nU(       a  [M        T(S!/ 5      n[M        T(U/ 5      nU(       a  U(       a*  [
        R                  " U S   RO                  5       SS9U S'   OU RQ                  5        Vs1 s H$  n[        U[        5      (       d  M  UT(;   d  M"  UiM&     nnU  H3  nX   c  M
  U[         ;   d  M  URS                  U(4S" jX    5       5        M5     [	        U5      m([
        R                  " U S   RU                  T(5      RO                  5       SS9U S'   SSK+nUnSnU[4        RX                  [4        RZ                  [4        RJ                  /U-   ;   Ga  U(       Gd  U(       dm  X:w  ah  S# Hb  nU R1                  U5      b  M  Ub  UO[]        [M        T(UUU/5      S$9U U'   U[4        RZ                  :X  a  UnMM  U S   b  MU  US:X  a  SOSU S'   Md     U(       a  Uc  X:w  a  U S   c  U(       a  SOSU S'   U(       aO  U(       aH  UbE  [        XR@                  5      (       a&  [C        S%URD                   SURD                   S35      eXS'   O[]        [M        T(S&UU/5      S$9U S'   Sn[        U R1                  S'5      [        5      (       a  U S'   [^        :X  a  SnSU S''   [a        U UUUUU5      u  nn[M        UR                  S(UU/5      n U(       d  U(       a  U[4        RZ                  :X  ak  US:X  a  SOSn![c        UU U!   5      (       d:  U U U'   URe                  [
        Rf                  " S)5      Ri                  U 5      5      nOU S   c  US:X  a  SOSU S'   UU;   a  U S	 U(       Ga  U S    V"s/ s H  n"U"U;  d  M  U"PM     n#n"U S	 US:X  a  U S   nOUS :X  a  U S   nOU S   nU S	 Sn$U# HX  n%URk                  U%5      Rl                  n&U&Ro                  5       (       a  S*O
[        U&5      n&U$c  U&n$MG  U$U&:w  d  MO  [?        S+5      e   URq                  UU#UUS,9n[s        UR                  5      [s        [u        UR                  5      5      :X  d   S-5       eURe                  [
        Rv                  " U5      Ry                  [
        Rz                  5      5      nWS:H  n'U(       a/  UU U'(       a  SOS'   UU U'(       a  SOS'   U S'   =(       d    UU S''   GO~U[4        RX                  [4        RJ                  /U-   ;   aY  UU U'(       a  SOS'   UU U'(       a  SOS'   U[4        R6                  :w  a  U S'   =(       d    UU S''   S.U ;   a  U S.   =(       d    UU S.'   OU[4        RZ                  :X  a  [c        UU5      (       a.  UU U'(       a  SOS'   UU U'(       a  SOS'   U S'   =(       d    UU S''   OUU U'(       a  SOS'   U U U'(       a  SOS'   URe                  [
        Rf                  " S)5      Ri                  U 5      5      nU S'   =(       d    UU S''   OIU[4        R|                  [4        R~                  4;   a%  U=(       d    UU U'(       a  SOS'   UU U'(       a  SOS'   U(       a  U[4        RX                  :X  a  U S   b  U S   b  S/U S0'   OU S   cD  SU S0'   SU S'   U U S'   URe                  [
        Rf                  " S)5      Ri                  U 5      5      nOCSU S0'   SU S'   U U S'   URe                  [
        Rf                  " S)5      Ri                  U 5      5      nU(       a  SU S''   UU S'   U $ ! [$         a    S['        U S   5       S3n	[)        U	5      ef = f! [*         a    S['        U S   5       S3n	[)        U	5      ef = fs  snf s  sn"f )1a  
Constructs a dataframe and modifies `args` in-place.

The argument values in `args` can be either strings corresponding to
existing columns of a dataframe, or data arrays (lists, numpy arrays,
pandas columns, series).

Parameters
----------
args : OrderedDict
    arguments passed to the px function and subsequently modified
constructor : graph_object trace class
    the trace type selected for this figure
N)r3   r4   r   FTr`  r2  )eager_or_interchange_onlyrP  interchangerO  toPandasr   z%Unable to convert data_frame of type zm to pandas DataFrame. Please provide a supported dataframe type or a type that can be passed to pd.DataFrame.z)Attempting to convert data_frame of type zl to pandas DataFrame, but Pandas is not installed. Convert it to supported dataframe type or install pandas.r   r   r  zPCannot accept list of column references or list of columns for both `x` and `y`.zData frame columns is a r\  r]  r6   )Nr   r  rs   r   r   r   r&   __x____y__r   c              3   6   >#    U  H  oT;   d  M
  Uv   M     g 7frS   rd   ).0r   r   s     rW   	<genexpr>"build_dataframe.<locals>.<genexpr>  s     ,T1G|QQs   		r   )r   zData frame index is a r  r;   r   r   numberzLPlotly Express cannot process wide-form data with columns of different type.)r  onvariable_namern  zWide-mode name-inference failure, likely due to a internal bug. Please report this to https://github.com/plotly/plotly.py/issues/new and we will try to replicate and fix it.r:   r   r   )@r6  r  r	  r,  rp  r   r   r   r   r9  is_pandas_like_seriesto_framerk  	get_levelrS  re  r  rV  r|   ri  rX  rW  r:  get_native_namespacer  rF  r  r  r  r  r`  r   rB  r   r^   Indexr7  FunnelrM  to_arrowr$   r   r  pyarrowr  Barr   NO_COLORr  r   with_columnslitri  r   r   r   unpivotr  r4  r   r  Stringr  r   ))r}   rw   r;  rp  rD  needs_interchangingr   seriesrY  r   ro  r  rE  no_xno_ywide_xwide_yrl  rm  wide_cross_namern  hist2d_typeshist1d_orientationwide_orientationr   necessary_columnspamissing_bar_dimaxno_colorrq  rt  
count_name	other_dimr   wide_value_varsr   r   v_dtypeorient_vr   s)                                           @rW   build_dataframer    s   " O#(?$+t,,"4;/77JS= =  ${m"4;/  |$D0K J   ??33D4FGG<(00G!#\0Bt!TDJ __2243EFF!#\""hj  <(00GJ
 ..\"dQU J LL	
 
 ","$,,z":m"K<(00G
 nn\"4 F II	
 
 "(!2D<(00G T,'44!#\"++-$"D <(00GJ/#3)+T,%78*D& #<088G!%J& $($6H 2 	8$ 
 2 	)  88C=D D88C=D D  	'49jK   	'49jK  IHOJNNB$9$9:L$4J
d8Jj fb  4DIj2B2M2MNN./?/H/H.I'001 2-- 
 %)MD!j2B2H2HII"<<33x77J%bii'#'88M#:#Ac #'88M#:#Ac "2D!%DvI17DIT#YD!zd?.Cw.N"<<jo)>@P@V@VWW(,T/-B(C_%33G 3%!*03c *03c +/DC(!%D-3'%gw;
#GXr:
 !#\"++-$"D  ;;=!(aJq#,>1<=  ! ;*u/G%,,,T,TT  ,-G!#\"))'2;;=$"D 	O

BFFBII6EE"dl 88B<' !, ""27B:@V"W H #bff,*,.69;s#D/ ! 0|] 3 ;-1cs]#ze.?e%@%@AA#01A1J1J0K=+445 688 
 &+\"%**7Gh
=ST&\" H$((7#S))d7mx.GW :I| ")"3"3Wx>TUJ[BFF-B
 +c1Cs	ii99$.D!!..rvvayz/JKI M"*-<-Cc]#l" '+?&;U&;q?T1&;U!g%"3iO'"3iO"<0O A**1-33G")"4"4"6"6hCLG}'! b  ! %%"!	 & 
	 9$$%S1B1B-C)DD 	
$	
D **266(+;+@+@+KL	#s*-7Dc*-<Dc* M5XDMRZZ3lBB-<Dc*-7Dc*bnn, $W 9Wt#%),%7%C8\"BFF"i441@HS#.1;HS#. $W 9W1;HS#.1;HS#.%22266!9??:3NO	 $W 9WRYY//-<-HDc*-7Dc*kRZZ79 T#Y%:$D#Y#D"%D"DI!..rvvayz/JKI#D"%D"DI!..rvvayz/JKIW"DK{ ! 3?T,EW@X?Y ZH H  .c223  /?T,EW@X?Y ZP P 
 *#../\!v Vs<   s <r ,s2	s2s2-
s7;s7(ss (s/c                    U R                   nU R                  USSS9nUR                  [        R                  " 5       R                  5       5      nUR                  [        R                  " 5       R                  [        R                  " 5       5      5      nUR                  [        R                  " [        R                  " 5       5      S9R                  S5      nUR                  U5      nUR                  5       (       d  [        SUR                  S   5       H}  nUS S 2U4   ) US S 2US-
  4   -  n[        R                  " UR                  5       5      (       d  ME  UR!                  5       R#                  S5      n[%        SUR'                  U5      5      e   [        R(                  " SS	/[+        U5      -  [        R                  " 5       [        R,                  " U5      S
9n	UR.                  " S0 U V
s0 s H4  n
XR                  U
5      R1                  UR                  U
5      ) U	5      _M6     sn
D6nUR                  [        R2                  " US	SS9S9R                  S5      R!                  5       n[5        UR7                  5       R!                  5       5      n[9        [;        US S USS  5      SS9 H0  u  nu  pX;   d  M  X;   d  M  [%        SUR'                  U5      S5      e   g s  sn
f )NFTr   
descendingr   )	null_maskr  r   z*None entries cannot have not-None children
fill_valuer   )r7  r$   r   rE  )	separatorignore_nulls)row_stringsr  )startz4Non-leaves rows are not permitted in the dataframe 
zis not a leaf.rd   )r   r  r  r   r  r  r  r  any_horizontalr   r  is_emptyr   r   r  r(  r+  r  r   r   rU  r  r  r  zip_with
concat_strr4  arg_truerb  rc  )r   cols	df_sortedr  null_indices_masknull_mask_filteredcol_idx#null_entries_with_non_null_childrenrow_idxfill_seriesr   r  null_indicesr   current_rownext_rows                   rW   _check_dataframe_all_leavesr  4  s   ::D4EdCI  !1!1!34I  ryy{!;<I!((##BFFH- ) j  #))*;<&&((Q 2 8 8 ;<G $AwJ//2DQRS^2TT 0 BFFHII=EEGMMdS @MM'*  = --tc)n$iik00;	K &&  
 ##A&//1E1Ea1H0H+VV
I 	dbuM 	 	
 
M	"	  (113;;=>L&/Kk!"o.a'""K #!*;Ga   	'!
s   8;K.c                 X  ^^^ U S   nU S   SSS2   n[        XSSS2      5        U S   (       a  [        XS   5      (       + OSnUR                  5       nU Vs/ s H  oDS-   PM	     nnUR                  S [	        XR5       5       5      nUn0 mU S	   (       a   UR                  [
        R                  " U S	   5      R                  [
        R                  " 5       5      5      nU S   (       aO  U S   U S	   :X  aC  U S	   S-   nUR                  [
        R                  " U S	   5      R                  U5      5      nX`S	'   U S	   mOUR                  5       R                  5       nSU;  a  SO*SR                  U Vs/ s H  n[        U5      PM     sn5      mUR                  [
        R                   " S5      R                  T5      5      nTU S	'   [
        R"                  " T5      TT'   / n	/ n
[%        SUR                  5       R                  5       S9mU S   (       a  U(       a  U	R'                  U S   5        [
        R                  " U S   5      R)                  5       TU S   '   [
        R                  " U S   5      R+                  5       R                  U S    T 35      TU S    T 3'   O3U
R'                  U S   5        [
        R"                  " U S   5      TU S   '   [-        [/        UR                  5       R                  5       5      R1                  U5      5      nUR                  U4S jU 5       5      nU H  nUT;  d  M  U	R'                  U5        [
        R                  " U5      R)                  5       TU'   [
        R                  " U5      R+                  5       R                  U T 35      TU T 3'   M     [-        [/        U5      [/        / SQ5      -
  5      n/ nU S   (       aX  U(       dQ  UR                  [
        R                  " U S   5      [
        R                  " T5      -  R                  U S   5      5      nS[
        R2                  S[
        R2                  4UU4S jjn[5        U5       GH  u  nnUR7                  X/S SS9R8                  " S+0 TD6R;                  XU	5      nUR                  " U[
        R                  " U5      R                  [
        R<                  " 5       5      [
        R                   " S5      [
        R                  " U5      R                  [
        R<                  " 5       5      S.6nU[?        U5      S-
  :  Ga=  [%        S/ UQSPSPSPS9nUR                  [
        R@                  " [C        [?        U5      S-
  US5       Vs/ s H>  n[
        R                  " UU   5      R                  [
        R<                  " 5       5      PM@     snSS9R                  U5      5      R                  [
        R@                  " [
        R                  " U5      [
        R                  " S5      /SS9[
        R@                  " [
        R                  " U5      [
        R                  " S5      /SS9S9RE                  U5      nUR                  [
        R                  " S5      R                  RG                  SS5      R                  RG                  SS5      S 9nUR'                  URH                  " SSS/UQ6 5        GM     [
        RJ                  " [
        RL                  " US!S"9RO                  5       5      nU S   (       a  U(       a  S#nUURP                  ;   a  US$-  nUURP                  ;   a  M  UR                  [
        R                  " U S   5      R                  [
        R<                  " 5       5      R                  U5      5      RS                  USS%9nUU S'   SU S'   SU S&'   SU S''   SU S('   U S   (       am  U S)   (       d  U S   /U S)'   U $ [U        U S)   [V        5      (       a)  U S)   RY                  U S   5      (       d  S*U S)   U S   '   U $ U S)   R'                  U S   5        U $ s  snf ! [         a    [        S
U S	   -  5      ef = fs  snf s  snf ),zV
Build dataframe for sunburst, treemap, or icicle when the path argument is provided.
r   r5   Nr  r;   F
_path_copyc              3   p   #    U  H,  u  p[         R                  " U5      R                  U5      v   M.     g 7frS   )r   r   ri  )r  new_col_namer   s      rW   r  .process_dataframe_hierarchy.<locals>.<genexpr>z  s1      &9"L 	x|,,&9s   46r$   zDColumn `%s` of `df` could not be converted to a numerical data type._sumr   r   r      )r   r   c              3      >#    U  HD  oT;  d  M
  [         R                  " U5      R                  [         R                  " 5       5      v   MF     g 7frS   )r   r   r  r  )r  r   agg_fs     rW   r  r    s2     Udun4		44ds
   	A?A)rQ   r   r   dframer   c                 2  > U R                   " / U Vs/ s H0  n[        R                  " U5      [        R                  " T5      -  PM2     snQU Vs/ s H  n[        R                  " [        R                  " U T 35      S:H  5      R	                  [        R                  " U5      5      R                  [        R                  " S5      5      R                  U5      PM     snQ76 R                  U Vs/ s H  o3 T 3PM
     sn5      $ s  snf s  snf s  snf )z
- continuous_aggs is either [] or [args["color"]]
- discrete_aggs is either [args["color"], <rest_of_cols>] or [<rest_of cols>]
r   z(?))	r  r   r   whenthen	otherwiser  ri  drop)r  continuous_aggsdiscrete_aggsr   count_colnamen_unique_tokens       rW   post_agg-process_dataframe_hierarchy.<locals>.post_agg  s    
 "" 
=LM_cbffSkBFF=11_M
 ) )C GGBFFcU>*:#;<ABT"&&+&Yrvve}-U3Z 
 )
 $MBMS%'(MB
C	DM Cs   7D

BD
4DTdrop_null_keysrQ   r   r   r  )r  )r   r   z/?$z^/?)r   r   r   sort_color_if_discrete_color0r   r'   r#   r%   r4   )TNrd   )-r  r   lazyr  rc  r   r   r  r  r|   r   ri  collect_schemar#   r   r,  r  r   r   r!  maxr  rp  r4  
difference	LazyFramerb  group_byaggpiper  r  r  r   r  r-  r  maybe_reset_indexr  collectr   r  r  r	  r  )r}   r   r5   discrete_colorr   new_pathnew_value_col_namer   elr  r  r  r   	all_treesr  r   leveldfgdf_tree_concat_str_tokenjdf_all_treessort_col_namer  r  r  s                          @@@rW   process_dataframe_hierarchyr  n  s    L)B<"D":/>B7mM::QVN	B8<=H<'H=	 &)(&9 
B DEH~	X!7!<!<RZZ\!JKB =T']d8n<!%h&!8X!7!=!=>P!QRB/NX ##%++-g-G277g;VgCGg;V3W 	 __RVVAY__];<&X 66-0E-MO4B--/557N@ G}  g/#%66$w-#8#<#<#>E$w- tG}%$w-(89: T']ON#345 ""4=1#%66$w-#8E$w-  B%%'--/0;;DABD	UdU	UBe  %*E#Js$$&,,u^4D-EF SE.)*+  D	C :;;<DIG}^__VVDM"RVVM%::AA$w-P
D D",, D D$ dO5KKRK6S T(]; 	 ""66%=%%biik266":vve}!!"))+.	
 s4y1} ?$Ed$EH$Eh$E$E! $$MM &+3t9q=!R%@%@ FF47O00=%@ #& e-. == 12BFF84DEQT }} 12BFF4LAS	   '(% , &&66(#''//r:>>FFubQ ' 
 	(Hd)JT)JKLY $\ ''		)(L(T(T(VWL G}6|333S M |333#00FF4=!&&ryy{399-H

$-D$
1 	
 &DDLDKDMDOG}L!"&w-D K \*D11%))$w-884@\"4=1 K %%d7m4KO >  	Vx.! 	  <Wrs    a>A
b 8b" Ab'bc                    SU S'   U S   b  U S   c  [        S5      eU S   nUR                  nU S   U S   4 Vs/ s H5  nX#   [        R                  :w  d  M  X#   [        R                  :w  d  M3  UPM7     nnU(       a>   UR                  [        R                  " U5      R                  R                  5       5      nUR                  [        R                  " U S   5      [        R                  " U S   5      -
  R                  R                  5       R                  U S   5      5      U S'   U S   U S	'   U S   U S
'   U S	 U S	 U $ s  snf ! [         a  n[        S5      UeSnAff = f)z0
Massage input for bar traces for px.timeline()
Tr  r   Nr    z#Both x_start and x_end are requiredr   zCBoth x_start and x_end must refer to data convertible to datetimes.r   r   )r   schemar   r   r   r  r   r,  to_datetimer|   r   r   total_millisecondsri  )r}   r   r  r   to_convert_to_datetimeexcs         rW   process_dataframe_timeliner  C  sl    DI$w-"7>??L)BYYF OT']33C;"++% 	*0+*@ 	3   	(>!?!C!C!O!O!QRB 	W	Y!8	8	 	tG}	D
 WDI	?DLYgK/  	U	s)   EE0E =E	 	
E$EE$c           
         SS K nU R                  S5      nUc  X4$ U S   R                  U0 5      R                  5       nU(       d  X4$ U S   nSUS'   SUS'   UR                  U5      R	                  S	S
9R                  5       n[        R                  " [        U5      U-   5       Vs/ s H  owU;   d  M
  UPM     nn[        R                  " SUR                  5      n	UR                  [        R                  " U5      R                  XR                  [!        U5      5      [        R"                  S9R%                  U	5      5      R'                  U	5      R)                  U	5      U S'   X4$ s  snf )Nr   r#   rP   r   Fr  	clockwiser  Tmaintain_order   )return_dtype)rg  r  r   r   uniquer+  r   r"  rp  r   r   r   r  r   replace_strictrh  r  UInt32ri  r  r  )
r}   ry   r  r#   order_inr   uniquesr   orderrg   s
             rW   process_dataframe_pier  g  sE   HHWE}  %&**5"5::<H  L)BK*KmmE")))>FFHG#,,T(^g-EFWF1w,QFEW --a<E
FF5M^E99SZ#8ryy^QU5\	

 
e	e 	  Xs   (	E*5E*c                    [         [        -    Vs/ s H  oDU ;   d  M
  UPM     nn/ nU S   nSnSU ;   aI  U S   (       a?  [        R                  " UR	                  U S   5      R                  5       5      U S   S-  -  nSU ;   Ga  SU ;   a  SU ;  a  UR                  S5        GO/U S   (       a*  [        XpS   5      (       a  UR                  S5        S	U S
'   OU[        R                  [        R                  [        R                  4;   a  UR                  S5        SU S
'   OUR                  S5        OSU ;   d  U[        R                  :X  a  UR                  S5        OsU[        R                  [        R                  4;   a>  UR                  S5        U S   (       a"  U S   c  / U S'   U S   R                  U S   5        OUR                  S5        [        SU;   =(       a    U S   =(       at    U[        R                  [        R                  4;  =(       aJ    U[        R                  [        R                  [        R                  4;  =(       d    U R!                  S
5      5      n	OSn	SU ;   a  UR                  S5        SU ;   a  UR                  S5        SU ;   a8  U[        R"                  4;   a  UR                  S5        OUR                  S5        SU ;   Ga  U S   S Ln
U S   S LnU S   c  U[        R$                  [        R"                  4;   a  U(       a  U
(       d  SU S'   OUU[        R&                  [        R(                  [        R*                  [        R,                  4;   a  U
(       a  U(       d  SU S'   U S   cP  U
(       aI  U(       aB  [        XpS   5      n[        XpS   5      nU(       a  U(       d  SU S'   U(       a  U(       d  SU S'   U S   c  SU S'   U[        R$                  :X  aO  U
(       a  U(       a  U S   c
  S=U S'   US'   U S   nU S   nUS:X  a  UOS US'   US:X  a  S OUUS '   US:X  a  SOSUS!'   U S   US'   U[        R&                  [        R(                  4;   ad  U[        R(                  :X  a  S"OS#nUU   c;  U S   b5  U S   U S   :X  a  U S   S:X  a  S$UU'   OU S   U S   :X  a  U S   S:X  a  S$UU'   UU   c  S%UU'   U[        R.                  :X  a  U S&   b  U S   c
  S=U S'   US'   U R!                  S'S5      SLas  U[        R.                  [        R                  4;   a  S&nO$U[        R*                  :X  a  U S   S:X  a  SOSnOS(nU S'   S	L a  S)U-   S*-   US+'   OS)U-   S,-   U S'   -   S*-   US+'   U[        R.                  [        R0                  [        R2                  4;   a  S	n	S-US.'   S/U ;   a  U S/   c  S0U ;   a  U S0   S$:X  a  [5        S1S29US3'   OiU[        R0                  [        R2                  [        R                  [        R,                  [        R                  4;   a	  U S/   US/'   O[5        U S/   S29US3'   SU ;   d  SU ;   a  [7        5       nU R!                  S4S	5      (       a  UR9                  S45        U R!                  S55      (       d,  U R!                  S5      (       d  U R!                  S65      (       a  UR9                  S65        U R!                  S55      (       a  UR9                  S55        [;        U5      S:X  a  UR9                  S45        S7R=                  [?        U5      5      US8'   ORU[        R@                  :w  a>  SU ;   d$  U[        RB                  [        RD                  4;   a  S6U S5   (       a  S9OS:-   US8'   S;U ;   a  [5        U S;   S<9US='   OS>U ;   a  [5        U S>   S?:X  a  S@OSAS<9US='   SBU ;   a3  U SC   USC'   [G        U SB   SD5      (       d  U SB   OU SB   RH                  USB'   SEU ;   a'  U S   S:X  a  SFOSGnU S   S:X  a  SFOSGnU SE   U U'   S U U'   URK                  5       (       a
  S =U SH'   U SI'   U R!                  SI5      b  U R!                  SG5      b  S U SG'   U R!                  SH5      b  U R!                  SF5      b  S U SF'   U R!                  SF5      c$  U R!                  SG5      c  U R!                  SH5      b  SU SJ'   SKU ;   a;  U SK   b5  U SK   [L        ;  a(  [O        SLU SK   < SM[L        RQ                  5       < 35      eSNU ;   a  U SN   c  [5        5       U SN'   SOU ;   a2  U R!                  SOS 5      SP;  a  [O        SQSRU SO   -  -   5      eU SO   U SS'   URS                  [T         Vs/ s H  oDU ;   d  M
  UPM     sn5        U Vs/ s H  n[W        U U5      PM     nn[Y        XXR5      nUUX4$ s  snf s  snf s  snf )TNr   r   r   rO   r  r;   rH   rF   Tr   Fzmarker.colorr:   z
line.colorr4   r=   z	line.dashr<   zmarker.symbolr>   zfillpattern.shapezmarker.pattern.shaper   r   r   r   r   r   r   nbinsnbinsxnbinsyr  boxmode
violinmodeoverlaygroupr   	text_autor   z%{r   texttemplate:r   r   r  barmoder  )r  r   r  r"   markersr  r  z+textr   r  )r   r   r  rq  vhhvgeojsonfeatureidkey__geo_interface__rz   r   r   r8   r9   facet_col_wrapr   zValue 'z!' for `trendline` must be one of r   ecdfnorm)Nr   r   z<`ecdfnorm` must be one of None, 'percent' or 'probability'. z'%s' was provided.r   )-direct_attrablesr6  r   r  r   r  r!  r   r  r&  r'  r(  r  r)  r*  rI  r  r  r  r  r   r  r  r  rZ  r]  r	  r4  r7  r  r   sortedr
  rX  r[  re  r"  r  r  r   rf  extendgroup_attrablesr   r  )r}   rw   ry   layout_patchrI  rx   grouped_attrsr   r   show_colorbarhas_xhas_yx_is_continuousy_is_continuousr   r  r  r   modesrB  other_positionr   grouped_mappingstrace_specss                           rW   infer_configr4    s	   (?:H:14iQ:EHML)B G~$v,OOBMM$v,7;;=>jAQUVAVV 	
 $#t+(4W%=^BW%F%FLL)26D./ R[["**bii$HHLL)27D./!((8T![B4I4I%I  .RVVR]]33LL!G}%-)+D&\"))$w-8  0u WBFFBMM#:: BJJRYY#GG 38812
 d[)4_-$2::,&  !45  !78S	%S	%&r||RZZ88*-D'BFFBFFBII FF*-D'&5U,Rc;O,Rc;O&)]#&)]#&"%D",,&4
#3#;=BBZ ;z#:}-KME-8C-?ETK!,73,>DEK!-8C-?cSK
#%)-%8M"299bff-- +rvv 59<DD!)d7m.G9W-$}2E2L)2L&#Y$w-/D4G34N)2L&D!)%,T" 	r~~%I!$5::Z;z2xxU#502>>2+@+@AAFBFF" /36SCFF$*.-#*=K'*.-#*=[@Q*QTW*WK'r~~r}}b6F6FGG#/K D	?"D T)_	%A(,S(9H%MMFFIIMM
 
 &*)_K	"$(i$AK!t 388GT""IIg88Ftxx11TXXi5H5HIIi 88FIIfu:?IIg!hhve}5F		 DKBMM2;K;K+LL'd6l7KFt"l);<F	t	"z*j8$d
F D&*>&:N# 4	?,?@@ Oi22 	I T#'#6##=<<)-m)<)Cj)X#^ 
{{}}044[D- xx(TXXl-C-O!\xx(TXXl-C-O!\ 	*88L!-88K ,!"dtK0<$77$&9&>&>&@B 
 d"t,?'@'H$(F !T88J%-MMN&j)99:   
+Z _B_T	!_BC 8EE}!T1-}E "$UHK('@@C It C Fs   	gg	gggc                   ^^ SU ;  a  0 OU S   R                  5       mU S   n/ n[        5       n[        U5       H  u  pVU[        :X  a  UR	                  S5        M"  Xd;  a.  UR                  U5      R                  SS9R                  5       XF'   XF   n[        U5      S:X  a  UR	                  US   5        UT;  a  UTU'   M  [        [        R                  " [        TU   5      U-   5      5      TU'   M     [        U5      [        U5      :X  a  [        U5      U0nUT4$ T V	s/ s H  oU;   d  M
  U	PM     sn	m[        UR                  TSS9R                  5       5      n
[        U
R!                  5       UU4S	 jS
9nU VVs/ s H=  n[        U Vs/ s H#  nU[        :X  a  SOUTR#                  U5         PM%     sn5      PM?     nnn[%        X5       VVs0 s H
  u  pXU   _M     nnnUT4$ s  sn	f s  snf s  snnf s  snnf )a  
`orders` is the user-supplied ordering with the remaining data-frame-supplied
ordering appended if the column is used for grouping. It includes anything the user
gave, for any variable, including values not present in the dataset. It's a dict
where the keys are e.g. "x" or "color"

`groups` is the dicts of groups, ordered by the order above. Its keys are
tuples like [("value1", ""), ("value2", "")] where each tuple contains the name
of a single dimension-group
rP   r   r   Tr  r   r   r  c                    > [        TU 5       VVs/ s H$  u  pUTU   ;   a  TU   R                  U5      OSPM&     snn$ s  snnf )Nr  )rc  r  )r$   r  r   rb  required_groupers      rW   r   'get_groups_and_orders.<locals>.<lambda>	  sL    $'(8&$A $ALE /4ve}.Du##E*"L$A   s   +A r   )r   r	  rb  r  r!  r   r
  r+  r  rp  r   r"  rH  r  __iter__r&  rf  r  rc  )r}   ro   r   single_group_nameunique_cacher   r   r  groupsr  groupedsorted_group_namessub_group_namesfull_sorted_group_namessfr   rb  r7  s                   @@rW   get_groups_and_ordersrC  i	  s5    %D0Rd;L6M6R6R6TFL)B6LG$)$$R(&MM#&--T-BJJL ! #'G7|q !((4& %s";#7#7VC[8IG8S#TUs %  W-)*B/> 6>; 06Jve'9IEvJr{{#3D{IRRTU#LLN
( $6#
 $6   '  ' )+ ,-=-C-CC-HIJ  '	 $6 	  #
 ),,C(X
(XurB
N(X 	 
 6>; K#

s*   %	G12G1G;*G6=G;H6G;c                   ^ ^: U=(       d    0 nU=(       d    0 n[        T 5        [        T U5      m U[        R                  [        R                  [        R
                  4;   a  T S   b  [        T 5      m U[        R                  4;   a  [        T U5      u  m nUS:X  a  [        R                  n[        T 5      m ST R                  S5      T R                  S5      4;   a  SUS'   [        T XU5      u  pEpgU Vs/ s H  oR                  =(       d    [        PM     sn=(       d    [        /n	[        T U	5      u  n
m:/ n/ nS=pU GH7  nUR                  T:;  a  UR                   S	   UR"                  S
'   M2  T:UR                     nUR$                  S:X  a;  ['        T T S   5      S-   nU Vs/ s H  nU[)        U5      -   PM     nn[+        U5      nUR$                  S:X  a;  ['        T T S   5      S-   nU Vs/ s H  nU[)        U5      -   PM     nn[+        U5      nU HZ  nUUR"                  ;  d  M  UR                   [+        UR"                  5      [+        UR                   5      -     UR"                  U'   M\     GM:     [-        U" 5       R.                  5      n0 n[1        5       n/ nS nT R                  SS	5      nU
R3                  5        GH  u  nn[1        5       n[1        5       nS
n[5        U	UU5       H  u  nnnU[        :w  d  M  ['        T U5      n[7        UR"                  [8        5      (       d-  [)        U5      UU'   UR:                  (       a  [)        U5      UU'   UR<                  S:X  d  M}  UnM     SR?                  URA                  5       5      n UU;  a  [C        5       UU'   UU   n!U GH  n"U"RE                  U S9n#U"RD                  [        RF                  [        RH                  [        RJ                  [        RL                  [        RN                  [        RP                  [        RR                  [        RT                  [        R                  [        R                  [        R
                  4;  a  U#RW                  U U S
:g  =(       a    U U!;  S9  UR                  S5      n$U"RD                  [        R                  [        RX                  [        RZ                  [        R\                  4;   a  U$S:X  d  U$c  U#RW                  SU S9  U!R_                  U 5        SU#l0        SU#l1        [e        U5       H  u  n%nUU%   n URg                  U#UR"                  U   5        UR$                  S:X  a  UR"                  U   n&O'T R                  S5      b  U"Rl                  S :w  a  Sn&OSn&UR$                  S:X  a-  UR"                  U   nU(       a  SUS-
  U-  -   n&SUS-
  U-  -   nOU"Rl                  S!:X  a  SnOSnU&S:  a  U&U#l0        US:  d  M  UU#l1        M     US	   RD                  [        Rn                  :X  ac  U"RD                  [        RX                  :X  aE  U#Rp                  Rr                  (       a*  U#RW                  [k        U#Rp                  Rr                  S9S9  S"T ;   Ga}  T S#   S$:X  a  T S    OT S!   n'T S#   S%:X  a  T S    OT S!   n(T R                  S"S&5      S':g  n)URu                  U'U)(       + SS(9nURw                  U(5      Ry                  5       n*UR{                  [|        R~                  " U(5      R                  5       R                  U(5      5      nU)(       d  URu                  U'SSS(9nT R                  S"S&5      S):X  a7  UR{                  U*[|        R~                  " U(5      -
  R                  U(5      5      nT S*   S+:X  a)  UR{                  [|        R~                  " U(5      U*-  5      nO4T S*   S,:X  a+  UR{                  [|        R~                  " U(5      U*-  S--  5      n[        T U"UUR                  5       U5      u  n+n,U#RW                  U+5        U,b'  UR                  UR                  5       5        U,US.   S/'   UU;  a  [k        / US09UU'   UU   S1   R                  U#5        GM     GM     URA                  5        V-s/ s H  n-U-PM     n.n-[+        U.5      S:  a  [        U.U U:4S2 jS39n.U(       a  U[        RT                  [        RP                  [        RR                  4;   a  S4OSn/T S5   =(       d    S S /n0[        S6S75      n1[k        U1R                  T S8   5      T S9   U0S	   U0S   [k        [        T T U/   U/5      S:9S;9US<'   S= H  n2T U2   (       d  M  T U2   UU2'   M     [k        S	S>9US?'   U(       a  SR?                  U5      US?   S@'   T SA   (       a	  T SA   US@'   O+T SB   R                  R                  R                  c  SCSD0USE'   T SF   (       a  T SF   USG'   SHT ;   a6  T SH   (       a,  T SB   R                  R                  R                  c  SIUS?   SJ'   U(       a%  [        R                  " UU-  5      n[        UU5      nT R                  S5      b  US-  nT R                  S5      b  US-  n[        T UU.XX5      n3U. Hm  n4U4S1    Ha  n#[7        U#[        R                  5      (       a  M$  [        U#U3R                  U3R                  UU#R`                  -
  S-   U#Rb                  5        Mc     Mo     U3R                  [+        U.5      S	:  a  U.S	   S1   O/ 5        U3R                  U5        SBT ;   a  T SB   b  U3R                  T SB   SSK9  U. H  n-[)        U-SL   5      U-SL'   M     [+        U5      S:  a  U.O/ U3lW        T R                  SM5      (       Ga  T R                  SNSO5      SP:X  a  [        T U5      n5U5RE                  SQSQSSR9n6SSU5R                  ;  ai  U Hc  nUR<                  S:X  d  M  UR                   [+        UR"                  5      [+        UR                   5      -     n7[k        U7S9U5R                  SS'   Me     [        T U5T ST   0 U5      u  n+n,U6RW                  U+5        U3R                  U6SUSUSSV9  U3R                  S.SSW9  U,b  UR                  [k        U,SX95        U(       a   S	S K\n8U8R                  U5      U3l^        O/ U3l^        [        T UU3T:5        [        T UU35        U3$ s  snf s  snf s  snf ! [h         GaY    U"US	   :w  a>  U"RD                  [        RZ                  [        RX                  4;   a  UR<                  S;   d/  U"RD                  [        R\                  4;   a  UR<                  S;   a   GNaU"US	   :w  aU  U"RD                  [        R\                  4;   a6  UR<                  S:X  a&  U#RW                  [k        UR"                  U   S9S9   GNU"RD                  [        RJ                  [        RL                  [        RN                  4;   aC  UR<                  S:X  a3  U#RW                  S/[+        U5      -  UR"                  U   /S-  SSS9   G	N?e f = fs  sn-f ! [         a    SYn9[        U95      ef = f)ZNr5   timeliner{  r   r   r  r  r   r   r   r   r9   r   r   r8   r#  r7   z, )r7  )legendgroup
showlegendr  T)alignmentgroupoffsetgroup)r<   r   r   )r<   r   r;   r
  )r   r  F)r   r"  	showscalerG  r   r   r  r   r   r   standardrq  r  complementaryr$  r   r   g      Y@r  px_fit_results)r&  r7  r&  c                 8   > TTS      R                  U S   5      $ )Nr7   r7  )r  )r  r}   rb  s    rW   r   make_figure.<locals>.<lambda>
  s    fT2C-D&E&K&KAfI&VrZ   r9  r   range_colorr"  make_figurerH   color_continuous_midpointr  )r"  cmidcmincmaxcolorbarr   )rE   rD   )tracegroupgaplegendr}  titlerC   r  r  marginsubtitletitle_subtitle_textr   constant
itemsizing)rC   	overwriter7  r   r  r   overallzOverall Trendline)r7  rF  rG  r   r   r  )r   r   exclude_empty_subplots)selectorrG  )rM  z*Trendlines require pandas to be installed.)cr+  r  r  r'  r&  r(  r  r)  r  r  r  r  r4  ro   r  rC  rq   rp   rt   r   r,  r  r   ri  r   r   rc  r  r   rn   rs   r   r$   r4  rw   r  r  r#  r$  r%  rZ  r]  r  r   r   r  r  r7  _subplot_row_subplot_colrb  rr   r   r	  rz   r  r   r;   r  r   r   r  r   r   cum_sumri  rN  r   r!  r&  r   validate_coercer   rn  rZ  r  rX  r^  rm  ceilmininit_figurer
  r   r  
add_tracesupdate_layoutr  r  ry   	add_traceupdate_tracesrV  rk  rj   rW  rX  rd  r  );r}   rw   ry   r)  r3  r2  r   r+  r   ro   r=  
col_labels
row_labelsr  r  msorted_valuesr  r   valsubplot_typetrace_names_by_framer  trendline_rowstrace_name_labelsr#  
group_namer  r1  
frame_namer   r   
trace_nametrace_namesr/  r   r  r   r   r   r  	ascending	group_sumr  r2  r  
frame_listcolorvarrP  colorscale_validatorr   rk   r  trendline_spectrendline_trace
next_colorrY  r   rb  s;   `                                                         @rW   rQ  rQ  	  s   #K%2L$4-Drzz2;;		::tF|?W*40rvvh1$Dkj ff)$/ txx-txx/EFF"+Y<Hk=9K7 0@@/?!yy%I%/?@OYKG*49NFFJJE99F"JJqMAIIbM"199-Mww%"4k):;cA7DE}!fs1vo}
EJww%"4k):;cA7DE}!fs1vo}
EJ$aii'%&ZZAIIQZZ0P%QAIIcN % " 00B0BCL]FNXX.2N#\\^
E$'M
w
4DEKCaic*!!))[99*-c(N3'++14S)#.::!22!$J F YY0779:
11/2u ,*:6%J**
*;E%%

  ##  

		.   * *b 0 RZ{5R   #&&y1G%%"&&"&&"))R\\)RR7"goDjIOOJ' "#E!"E!"231 m"IIeQYYs^4H 77e#))C.C .:&//36 77e#))C.C%C!G#>?C!G~#=>!**c17),E&7),E&E 4H A**b.C.CC**bff4JJ$$Duzz/?/?$@AT!$($73$>tCyDI#'#6##=d3i49 HHZ<
J	

d9}QU
V!,,#%  **266#;+>+>+@+F+Fs+KL !JJ$5TJRE88J
3F!..	BFF3K0G/N/Ns/STE
#}4!..rvvc{Y/FGE*%2!..si0G5/PQE!2j%)<)<)>"E; LL&%%n&9&9&;<7Br"#34'%)r
%Cz":v&--e4Q &% ,v $]]_-_!_J-
:V

  r~~r}}b>N>NOO  	
 =)9dD\2<O%)+;;-. 12QQ.tT(^XN
&
\" !77"1gLO ! "2L/3yy9J/KX|,G}%)']\"	j		 	 	'	'	)	)	1"%rXJ.2:.>*+$L##**55=/9X|,		%.01E>*xx)
xx)

lJjC
 6]E%**%

***Q."" #  NNC
Oa,?:a=(RHl#Td:.:4
#3tD&	N&	 "6{QBCJxx*;W!E!R,T;?(44$2ERW 5 
 333%::(!"C		NS_,L!MJ9=J9ON..v6 & /.$|"4b'
{ 	u%E$ 	 	
 	2$7"!!$k"BC	+!#n!=C
  4c62 {C8J]	 A F FH "   #k!n4&22ryy"&&6II !

.K K '22r||nD !

.@ @ "k!n4&22r||nDJJ'1Dqyy~,FG"..MM2+;+;R=P=PQRJJ'1 cCJ.()		#'7!';&+'+	 %  A H .Z  	+>C%c**	+sE   8"t1*t65t;u z'2z,  Bz$	Az$	"A=z$	"z$	,{c                 R   [        U5       Vs/ s H  n[        U=(       d    SS9/U-  PM     nnS/U-  n	S/U-  n
U R                  SS5      nUS:X  a  U R                  S5      b1  U S   S:X  d  S	U ;   a  U S	   (       a  S
nOSnU/US-
  -  SU-
  /-   n
SnO<U(       a  U R                  S5      =(       d    SnOU R                  S5      =(       d    SnU R                  S5      b1  U S   S:X  d  S	U ;   a  U S	   (       a  S
nOSnU/US-
  -  SU-
  /-   n	SnOqU R                  S5      =(       d    SnOVU(       a  U R                  S5      =(       d    SnOU R                  S5      =(       d    SnU R                  S5      =(       d    SnU(       a{  S /U-  U-  n[        U5      X4-  :  a$  UR	                  S 5        [        U5      X4-  :  a  M$  [        U5       H.  n[        U5       H  nXSS-
  U-
  U-  U-      UUU-  U-   '   M     M0     S n [        UUUSSU(       a  / O[        [        U5      5      U(       a  / OUU(       a  WO/ UUU
U	SS9nUR                  R                   H  nUR                  S S9  M     U$ s  snf ! [         a  nU" USS5        U" USS5        e S nAff = f)Ndomainr  g      ?r#  r   xyr   r{  r;   gGz?gzG?r   g{Gz?facet_row_spacinggQ?gQ?r   g{Gzt?facet_col_spacingg{Gz?c                     U< S3U R                   S   ;   a'  U R                   S   SR                  US9-   4U l         U eg)z
Translates the spacing errors thrown by the underlying make_subplots
routine into one that describes an argument adjustable through px.
z spacingr   z5
Use the {facet_arg} argument to adjust this spacing.)	facet_argN)r}   format)er  r  s      rW   _spacing_error_translator.init_figure.<locals>._spacing_error_translator*  sS    
 &'AFF1I5q	88>' 9? 9AF G 6rZ   r  zbottom-left)rowsr  specsshared_xaxesshared_yaxes
row_titlescolumn_titlessubplot_titleshorizontal_spacingvertical_spacingrow_heightscolumn_widths
start_cell
HorizontalVertical)font)r   r	  r  r  r!  r   rp  rq  r   rn  annotationsr   )r}   rs  r}  r  r  rn  ro  rL  r  r  r  r#  	main_sizer  r  subplot_labelsr   r  r  rk   r  annots                         rW   ri  ri  
  s   DI%LQLqd012U:LEQ EEMM%%-KXX.2N t88L!-L![0W_g 	 	$+3q9}oEK##xx(;<D#xx(;<D88L!-L![0W_g 	 	&K5195YGM!&!%*=!>!F$ #xx(;<D#xx(;<D!XX&9:Bd%%/*o-d# *o-uA5\0:AIMU;RUV;V0Wq5y1}- "  +rhz6J1K ."J-;>1-#'$
* ''$ ( J{ Rh  !!\3FG!!Z1DEs    I=AJ 
J&J!!J&)NN)eplotly.graph_objs
graph_objsr  	plotly.ioior  collectionsr   r   _special_inputsr   r   r   r  r	   r
   r   r   r   _plotly_utils.basevalidatorsr   plotly.colorsr   r   rm  plotly._subplotsr   r   r   narwhals.stable.v1stablev1r   r  r	  r%  r6  r(  renameable_group_attrablesr5  r  r  r  r  r   r  r`  r  r  r  objectr@   r  rf   rh   rl   rm   ru   r   r   rk  r,  rI  r   rS  r   r   r   r   rN  rd  rt  r  ra  rS  rU  rQ  r\  rY  r_  r  r  r  r  r+  r0  r?  rF  rJ  rM  rZ  r  r  r  r  r  r  r4  rC  rQ  ri  rd   rZ   rW   <module>r     sl     / 9 9 E E < 1      " 7yc  UHIPQ FF  WM  &8;UU  jj",,		266299M
 
r||R^^R-B-BC C
% %P <   {$WX		6r|| 6s 6t 6bii BII && &2#L/dt$n	6,
&>?B#1L2,7
tJZ ILX
@2 +&@#FFR7BLL 7T 7tRj!H:bAJBJCL
_rZ   