
    Eh="                        S SK r S SKrS SKrS SKrS SKJr  S SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  SSKJr  \R,                  " 5       rS rS	 r S$S
 jrS rS r " S S\5      rS%S jrS r S\!4S jr"S r#S r$S r%S r&S r'S&S jr(S r) " S S\RT                  5      r+S r,S\!4S jr-S\\S4   S\!4S  jr.S! r/S" r0S\\!S4   4S# jr1g)'    N)abc)escapewraps)Union   )RendererHooksc                     SSK Jn  U" U 5      $ )Nr   )to_json_plotly)plotly.io.jsonr   )valuer   s     ^C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\dash/_utils.pyto_jsonr      s    -%      c                 n    U nUR                  5        H  u  p4SU-   S-   nUR                  XT5      nM      U$ )Nz{%z%})itemsreplace)templatedataskvkeys         r   interpolate_strr      s;    A

QhoIIc  Hr   c                    SR                  UR                  5        VVs/ s H  u  pgU SU(       a  [        U5      OU S3PM!     snn5      nSU  SU 3nU(       a  US-  nU$ U(       a  US-  nU$ USU-   SU  S3-   -  nU$ s  snnf )N z=""<z/>>z</)joinr   r   )	tag_name
attributesinnerclosedopenedsanitizer   r   tags	            r   
format_tagr(   '   s     =G=M=M=OP=OTQA3bhA.a	0=OPJ hZq
%Ct
 J	 
s
 J 	sU{r(1---J 	Qs   &B
c                  p    [        [        R                  " 5       R                  5      R	                  S5      $ )N-)struuiduuid4hexstrip r   r   generate_hashr1   7   s$    tzz| &&s++r   c                 "    [        [        U 5      $ N)getattrr   )members    r   patch_collections_abcr6   <   s    3r   c                   \   ^  \ rS rSrSrS rS rSS jrSS jrU 4S jr	SS jr
S	 rS
rU =r$ )AttributeDict@   a  Dictionary subclass enabling attribute lookup/assignment of keys/values.

For example::
    >>> m = AttributeDict({'foo': 'bar'})
    >>> m.foo
    'bar'
    >>> m.foo = 'not bar'
    >>> m['foo']
    'not bar'
``AttributeDict`` objects also provide ``.first()`` which acts like
``.get()`` but accepts multiple keys as arguments, and returns the value of
the first hit, e.g.::
    >>> m = AttributeDict({'foo': 'bar', 'biz': 'baz'})
    >>> m.first('wrong', 'incorrect', 'foo', 'biz')
    'bar'
c                     X U'   g r3   r0   )selfr   r   s      r   __setattr__AttributeDict.__setattr__R   s	    S	r   c                 B     X   $ ! [          a     Of = f[        U5      er3   )KeyErrorAttributeError)r;   r   s     r   __getattr__AttributeDict.__getattr__U   s.    	9 		 S!!s    
c                     U Vs0 s H  o3U_M     nn[        U SS5      (       a  U R                  R                  U5        g[        R	                  U SU5        gs  snf )z
Designate named attributes as read-only with the corresponding msg

Method is additive. Making additional calls to this method will update
existing messages and add to the current set of _read_only names.

_read_onlyFN)r4   rD   updateobjectr<   )r;   namesmsgnamenew_read_onlys        r   set_read_onlyAttributeDict.set_read_only^   sR     055utsu54u--OO""=1t\=A	 6s   Ac                 2    [         R                  U SU5        g)zPrevent any new keys being set._finalN)rF   r<   )r;   rH   s     r   finalizeAttributeDict.finalizek   s    43/r   c                    > XR                   R                  S0 5      ;   a  [        U R                  U   U5      eU R                   R                  S5      nU(       a  X;  a  [        X15      e[        TU ]  X5      $ )NrD   rN   )__dict__getr@   rD   super__setitem__)r;   r   val	final_msg	__class__s       r   rU   AttributeDict.__setitem__o   sf    --##L"55 !5s;;MM%%h/	 00w"3,,r   c                 L    Ub  UOUnUR                  5        H	  u  pEXPU'   M     g r3   )r   )r;   otherkwargssourcer   r   s         r   rE   AttributeDict.updatey   s)      +LLNDAG #r   c                     U H  nU R                  U5      nU(       d  M  Us  $    U(       d  [        [        U 5      0 5      $ g r3   )rS   nextiter)r;   rG   rI   r   s       r   firstAttributeDict.first   s>    DHHTNEu  T
B'' r   r0   )zAttribute is read-only)z*Object is final: No new keys may be added.r3   )__name__
__module____qualname____firstlineno____doc__r<   rA   rK   rO   rU   rE   rb   __static_attributes____classcell__)rX   s   @r   r8   r8   @   s1    ""B0-( (r   r8   c                    ^^^^ S mU4S jmUU4S jmU(       a  T" 5       $ [        U [        [        45      (       a!  SSR                  U4S jU  5       5      -   S-   $ T" U 5      $ )Nc                     > [         R                  " SR                  S T  5       5      R                  S5      5      R	                  5       $ )N.c              3   8   #    U  H  n[        U5      v   M     g 7fr3   )r+   ).0xs     r   	<genexpr>;create_callback_id.<locals>._hash_inputs.<locals>.<genexpr>   s     ,VSVVV   utf-8)hashlibsha256r    encode	hexdigest)inputss   r   _hash_inputs(create_callback_id.<locals>._hash_inputs   s8    ~~HH,V,,33G<

)+	r   c                    > U R                  5       R                  SS5      S-   U R                  -   nU R                  (       a  T(       d  T" 5       mUST 3-  nU$ )Nrm   z\.@)component_id_strr   component_propertyallow_duplicate)rp   _idrz   hashed_inputss     r   _concat#create_callback_id.<locals>._concat   sW      "**36<q?S?SS  ,Q}o&&C
r   .....c              3   4   >#    U  H  nT" U5      v   M     g 7fr3   r0   )ro   rp   r   s     r   rq   %create_callback_id.<locals>.<genexpr>   s      <VVs   )
isinstancelisttupler    )outputry   	no_outputr   rz   r   s    ` @@@r   create_callback_idr      s[     M
 ~&4-((ejj <V <<<tCC6?r   c                     U R                  S5      (       a.  U SS R                  S5       Vs/ s H  n[        U5      PM     sn$ U R                  SS5      u  p#X#S.$ s  snf )Nr      r   rm   r   )idproperty)
startswithsplitsplit_callback_idrsplit)callback_idoiid_props       r   r   r      se    d##0;Ab0A0G0G0NO0N"!"%0NOO""3*IC(( Ps   Areturnc                    ^ ^ S m[        T [        5      (       a+  SSR                  UU 4S j[        T 5       5       5      -   S-   $ T $ )Nc                     [        US5      (       a  UR                  5       O[        R                  " U5      n[        R                  " U 5       SU 3$ )Nr   :)hasattrr   jsondumps)r   r   vstrs      r   _jsonstringify_id.<locals>._json   s<    %a33qyy{A**Q-$((r   {,c              3   <   >#    U  H  nT" UTU   5      v   M     g 7fr3   r0   )ro   r   r   r   s     r   rq   stringify_id.<locals>.<genexpr>   s     D1eAs1v..s   })r   dictr    sorted)r   r   s   `@r   stringify_idr      s?    ) #tSXXDsDDDsJJJr   c                     [        5       nU  HO  n[        U[        5      (       a  UOU/nU H,  n[        US   5      nUR	                  S5      X SUS    3'   M.     MQ     U$ )Nr   r   rm   r   )r8   r   r   r   rS   )inputs_listry   iinputsiiiid_strs         r   inputs_to_dictr      sg    _F!!T**!B!"T(+F3566'?FXQr*~./0  
 Mr   c           	          / nU  H_  n[        U[        5      (       a  UR                  [        U5      5        M4  UR                  U Vs/ s H  n[        U5      PM     sn5        Ma     U$ s  snf r3   )r   r   appendr8   )nested_listnew_dictr   r   s       r   convert_to_AttributeDictr      s[    HaOOM!,-OO;2]2.;<	 
 O <s   A*
c           
          U  VVs/ s HJ  n[        U[        5      (       a!  U Vs/ s H  o"R                  S5      PM     snOUR                  S5      PML     snn$ s  snf s  snnf )Nr   )r   r   rS   )ry   r   r   s      r   inputs_to_valsr      sZ     A *4At)<)<1%1R1%!%%.P %s   A AA A c                    [         R                  S:H  n[        R                  " [        R
                  " XS9US9 nUR                  5         UR                  5       c&  [        R                  S5         UR                  5         S S S 5        g ! [         a8    [        R                  S5        UR                  5         UR                  5          NJf = f! , (       d  f       g = f)Nwin32)posix)shellu/   🚨 trying to terminate subprocess in safe wayu!   🚨 first try communicate failed)sysplatform
subprocessPopenshlexr   waitpollloggerwarningcommunicate	Exception	exceptionkill)cmdis_winprocs      r   run_command_with_processr      s    \\W$F			%++c8	G4		99;NNLM#  " 
H	G  #  !DE		  "# 
H	Gs)   7C3B?CCCC
Cc                     [         R                  " U SS9 n[        R                  " UR	                  5       R                  S5      5      R                  5       sS S S 5        $ ! , (       d  f       g = f)Nrt   )encoding)ioopenru   rv   readrw   rx   )pathfps     r   compute_hashr      sD    		(B~~bggi..w78BBD 
)	(	(s   AA!!
A/c                    ^  U 4S jnU$ )Nc                 4   >^  [        T 5      U U4S j5       nU$ )Nc                     > [         R                  STR                  T5        T" U 0 UD6n[         R                  STR                  5        U$ )Nu   🏗️  [%s] 🏗️️  - %su/   ::: 🍻🍻🍻 [%s] job done 🍻🍻🍻 :::)r   inford   )argsr\   resfuncrH   s      r   _wrapper&job.<locals>.wrapper.<locals>._wrapper   s?    KK8$--M''CKKI4==YJr   r   )r   r   rH   s   ` r   wrapperjob.<locals>.wrapper   s     	t	 
	 r   r0   )rH   r   s   ` r   jobr      s     Nr   c                 D    SR                  S [        U 5       5       5      $ )N c              3      #    U  H:  n[         R                  " [        R                  [        R                  -   5      v   M<     g 7fr3   )secretschoicestringascii_lettersdigits)ro   _s     r   rq   gen_salt.<locals>.<genexpr>   s.      FRv++fmm;<<ls   AA)r    range)charss    r   gen_saltr      s$    77 FKEl  r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)

OrderedSet   c                 F    / U l         U H  nU R                  U5        M     g r3   )_dataadd)r;   r   r   s      r   __init__OrderedSet.__init__  s    
AHHQK r   c                 Z    XR                   ;  a  U R                   R                  U5        g g r3   )r   r   r;   r   s     r   r   OrderedSet.add  s#    

"JJe$ #r   c                 :    U R                   R                  U5        g r3   )r   remover   s     r   discardOrderedSet.discard
  s    

% r   c                     XR                   ;   $ r3   r   )r;   rp   s     r   __contains__OrderedSet.__contains__  s    JJr   c                 ,    [        U R                  5      $ r3   )lenr   )r;   s    r   __len__OrderedSet.__len__  s    4::r   c              #   :   #    U R                    H  nUv   M	     g 7fr3   r  )r;   r   s     r   __iter__OrderedSet.__iter__  s     AG s   r  N)rd   re   rf   rg   r   r   r   r  r  r
  ri   r0   r   r   r   r      s     
%!r   r   c                 B    [        U [        [        45      (       d  U /$ U $ r3   )r   r   r   )objs    r   coerce_to_listr    s    cD%=))uJr   rI   c                 *    U R                  S5      S   $ )Nr}   r   )r   )rI   s    r   clean_property_namer    s    ::c?1r   hooksc                 b    U c  gSR                  S U R                  5        5       5      nSU S3$ )Nr   r   c              3   4   #    U  H  u  pU S U 3v   M     g7f)z: Nr0   )ro   r   rV   s      r   rq   %hooks_to_js_object.<locals>.<genexpr>%  s     FHC3%r#s   r   r   )r    r   )r  hook_strs     r   hooks_to_js_objectr  "  s3    }xxFFFHzr   c                 D    [        S U R                  S5       5       5      $ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr3   )int)ro   r   s     r   rq    parse_version.<locals>.<genexpr>+  s     4!3AQ!3rs   rm   )r   r   )versions    r   parse_versionr  *  s    4s!3444r   c                      [         R                  " 5       n U  H;  nUR                  S:X  d  M  UR                  R                  R                  SS5      s  $    g)Nz<module>rd   __main__)inspectstackfunctionframef_localsrS   )r   r   s     r   get_caller_namer$  .  sE    MMOE::#77##''
J??  r   c                     [         R                  " SS[        U 5      5      n[         R                  " SSU5      nU(       d  U$ US   R                  5       [         R                  " SS USS  5      -   $ )	Nz\sr   z^[_]+r   r   z[\-_\.]+([a-z])c                 @    U R                  S5      R                  5       $ )Nr   )groupupper)matchs    r   <lambda>pascal_case.<locals>.<lambda>>  s    %++a.*>*>*@r   r   )resubr+   r(  )rI   r   s     r   pascal_caser.  7  sb    
uc3t9%A
wAAQ4::<"&&@!AB%  r   )r   FFF)F)r   )2r   r   r,   ru   collectionsr   r   loggingr   r   r   r   r  r,  htmlr   	functoolsr   typingr   typesr	   	getLoggerr   r   r   r(   r1   r6   r   r8   r   r   r+   r   r   r   r   r   r   r   r   
MutableSetr   r  r  r  r  r$  r.  r0   r   r   <module>r7     s    
      	     	     				! JO ,
 G(D G(TD) #E
 0c eM4$78 S 5eCI& r   