
    ^hK                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJr  S SKJrJr  S SKJrJr  S SKJr  S SKJrJ r   S S	K!J"r"  S S
K#J$r$J%r%J&r&J'r'  S SK(J)r)J*r*J+r+  S SK,J-r-J.r.  S SK/J0r0J1r1  S SK2J3r3  S SK4J5r5J6r6J7r7  S SK8J9r9J:r:   S SK;J<r<  \	(       a  S SK>r>O\?" \ S5      (       a  \ r>OS SK>r>\	(       a  S SK@JArA  S SKBJCrC  \R                  " \E5      rF\FR                  \R                  5        \'rI\:" S5      S\6S\JSS4S j5       rK " S S\5      rL " S S5      rM\N" \$5      S :X  a  \$R                  " \M5        g\M\$S '   g! \= a    Sr< Nf = f)    N)Enum)	FrameTypeFunctionType)TYPE_CHECKINGAnyCallableDict	GeneratorIterableListOptionalSetTupleTypeUnioncast)ExecutionScheduleFlowDirection)Cellcells)	Timestamp)get_type_annotationmake_annotation_string)UpdateProtocol)_SymbolContainer
namespaces
statementssymbols)flowshelltracer)dynamic_slicing_contextslicing_context)
FormatTypeSlice)Watchpoints)IMMUTABLE_PRIMITIVE_TYPESIdTypeSupportedIndexType)cleanup_discarddebounce)_LazyModuleunparse)	Namespace)Scopeg?executed_cell_idreactivereturnc                 d   [        5       nUR                  nUR                  n U[        R                  :X  a  [        R
                  Ul        UR                  S 5        UR                  R                  SU UUS.5        XCl        SUR                  l	        g ! XCl        SUR                  l	        f = f)Ncompute_exec_schedule)typer0   is_reactively_executingallow_new_readyF)
r   mut_settingsexec_scheduler   	DAG_BASEDHYBRID_DAG_LIVENESS_BASED-get_and_set_exception_raised_during_executioncomm_managerhandledebounced_exec_schedule_pending)r0   r1   flow_settingsr9   s        S/home/james-whalen/.local/lib/python3.13/site-packages/ipyflow/data_model/symbol.py_debounced_exec_schedulerC   @   s    FE!!H**MC-777%6%P%PH";;DA!!/$4+3#+		
 "/=B: "/=B:s   AB B/c                   0    \ rS rSrSrSrSrSrSrSr	Sr
S	rg
)
SymbolTypeV   default	subscriptfunctionclassimportmodule	anonymous N)__name__
__module____qualname____firstlineno__DEFAULT	SUBSCRIPTFUNCTIONCLASSIMPORTMODULE	ANONYMOUS__static_attributes__rN       rB   rE   rE   V   s%    GIHEFFIr[   rE   c                      \ rS rSr\" 5       r\" 5       r\" \5      r	Sr
Sr    SS\S\S\SS	S
\\\R$                  \R&                  4      S\\R(                     S\S\SS4S jjrSS jr\S\\   4S j5       r\S\S    4S j5       r\S\\   4S j5       rS\ 4S jr!S\ 4S jr"S\#4S jr$S\4S jr%S\ SS4S jr&S\ SS4S jr'S\ S\4S jr(SS jr)\S\4S j5       r*\S\S    4S j5       r+\S\4S j5       r, SS \\S       S\4S! jjr-\S\4S" j5       r.\S\\   4S# j5       r/\S\\   4S$ j5       r0\S\4S% j5       r1  SS \\S       S&\\   S\\   4S' jjr2S(\#S\\   4S) jr3 SS*\\4\5      S(\#S\64S+ jjr7  SS \\S       S,\S\#4S- jjr8SS.\\#   SS4S/ jjr9S\:S0   4S1 jr;\S\#4S2 j5       r<\S\#4S3 j5       r=\S\ 4S4 j5       r>\S\4S5 j5       r?\S\4S6 j5       r@\S\4S7 j5       rA\S\4S8 j5       rB\S\4S9 j5       rC\S\4S: j5       rD\S\ 4S; j5       rE\S\ 4S< j5       rFS.\#S\4S= jrGS\S    4S> jrHS\ 4S? jrI\S\4S@ j5       rJ\S\4SA j5       rKSB\SCS	S\SS 4SD jrL\S\#4SE j5       rM\S\\#   4SF j5       rN\S\4\   4SG j5       rO\S\4SH j5       rP\S\4SI j5       rQ\S\4SJ j5       rR\S\4SK j5       rS\S\4SL j5       rTSM rUS\ 4SN jrV\S\SO   4SP j5       rW\S\SO   4SQ j5       rX\S\Y\ SR4   4SS j5       rZ\S\ 4ST j5       r[\S\4SU j5       r\S\4SV jr]\S\4SW j5       r^\S\4SX j5       r_SSY jr`SSZ jraSS[ jrbSS\S\\SS4S] jjrcSS^ jrdS\#4S_ jreS`\\   S\4Sa jrfSb rgS
\\\R$                  \R&                  4      S\\\R$                  \R&                  4      4Sc jrhSSd jriS\\R                     4Se jrkS\:\Y\R                  \S    4   SS4   4Sf jrlS\\R                     4Sg jrnSh\oSS4Si jrp\S\4Sj j5       rq\S\4Sk j5       rrSl\#Sm\S\4Sn jrsSSl\#Sm\S\4So jjrtSp ruSq\S    S\4Sr jrv        SSq\S    S`\Ss\St\Su\Sv\Sw\Sx\Sy\\   SS4Sz jjrw SS{\\S       Sw\SS4S| jjrx\S} 5       rySS~ jrzSS jr{S\|\ \4   SS4S jr}S\SS4S jr~SS jrS\S\S\S\4S jr     SS\\   S\\R(                     S\S\S\SS 4S jjr SS\S \\S       S\:S0   4S jjr SS\S \\S       SS4S jjr    SS\S\S\\   S \\S       SS4
S jjrSx\SS4S jrSr\S\S\S\4S j5       r\S\S\S\4S j5       r\S\S\S\4S j5       r\S\\\\/\4      S\\\   \\   /\4   4S j5       r\S\S\\#   S\Y\\\\\/\4      \#4   4S j5       r SS\\\#      S\Y\\\\\/\4      4   4S jjrSrg)Symbol`   __ipyflow_mutation__ipyflow_iterNnamesymbol_typeobjcontaining_scoper/   	stmt_nodesymbol_noderefresh_cached_objimplicitr2   c	                    U(       a  U(       d   eUb   eXl         X l        X0l        [        5       U l        0 U l        SU l        SU l        S U l        S U l	        S U l
        U(       a  U R                  5         U=(       d    [        5       R                  U l        S U l        S U l        U R#                  U5      U l        X`l        S U l        0 U l        0 U l        U(       a  [.        R0                  " 5       O[.        R2                  " 5       U l        / U l        / U l        [;        5       R=                  5       U l        SU l         SU l!        SU l"        S U l#        [I        5       U l%        U RL                  U l'        0 U l(        0 U l)        0 U l*        [        5       U l+        0 U l,        [        5       U l-        [        5       U l.        [        5       U l/        [        5       U l0        SU l1        0 U l2        Xl3        SU l4        SU l5        SU l6        SU l7        [        5       Rp                  Rs                  [u        U5      [        5       5      Rw                  U 5        [y        U R                   [z        5      (       a\  U R|                  (       dK  U R                  R~                  (       d0  U R                  n	U	b!  U	R                  S:X  a  U R                   U	lA        U R                  5         g )NFTr   self)Cra   rb   rc   set_tagsextra_metadata
_tombstone_cached_out_of_synccached_obj_idcached_obj_typecached_obj_len_refresh_cached_objr   global_scoperd   
call_scopefunc_def_stmtupdate_stmt_nodere   rf   _funcall_live_symbolsparentschildrenr   uninitializedcurrent
_timestamp_snapshot_timestamps_snapshot_timestamp_uboundsr   exec_counter_defined_cell_num_is_dangling_on_edges_cascading_reactive_cell_num!_override_ready_liveness_cell_num_override_timestampr&   watchpoints	timestamprequired_timestamptimestamp_by_used_timeused_node_by_used_timetimestamp_by_liveness_time_updated_timestamps last_updated_timestamp_by_obj_idfresher_ancestorsfresher_ancestor_timestampscells_where_deep_livecells_where_shallow_live(_last_computed_ready_or_waiting_cache_ts&_is_ready_or_waiting_at_position_cache	_implicitdisable_warnings_temp_disable_warnings_num_ipywidget_observers_num_mercury_widget_observersaliases
setdefaultidadd
isinstancestris_anonymousis_namespace_scope	namespace
scope_name_maybe_fix_implicitness)
rk   ra   rb   rc   rd   re   rf   rg   rh   nss
             rB   __init__Symbol.__init__k   sW    O8$$$	&  #u
.0#' ,07;-1$$& 0 GDF4G4G+/DH..y9&%)"8:9; *2I##%y7H7H7J 	 68!<>(!&!5!5!7%*",.)13.8< &= .2^^ CE#@B#FH'365 FH-03;>5( 14"365%=?5TV3 " !&&+#()%-.*!!"S'35155d;tyy#&&%%))<<B~"--6"9 !%		$$&r[   c                    U R                   (       a~  U R                  R                  (       dc  U R                  bV  [	        S [        5       R                  R                  U R                  R                  / 5       5       U R                  S9U l        U R                  R                  (       a  U R                  (       a  SU l	        g g g )Nc              3   :   #    U  H  nUR                   v   M     g 7fN)r   .0syms     rB   	<genexpr>1Symbol._maybe_fix_implicitness.<locals>.<genexpr>   s      W MMWs   )rG   F)
is_implicitr~   is_initializedcontaining_namespacemaxr   r   getobj_idr   rk   s    rB   r   Symbol._maybe_fix_implicitness   s    OO22))5!#v~~11$2K2K2R2RTVW DO ??))dnn"DN /=)r[   c                 t    U R                   nUR                  (       a  U R                  U1-  $ U R                  $ r   )_initialized_timestampr   r   )rk   init_tss     rB   updated_timestampsSymbol.updated_timestamps   s5    --!!++wi77+++r[   c                 p    [        [        5       R                  R                  U R                  / 5      5      $ r   )listr   r   r   r   r   s    rB   r   Symbol.aliases   s$    DFNN&&t{{B788r[   c                 4    U R                   U R                  -  $ r   )r   r   r   s    rB   cells_where_liveSymbol.cells_where_live   s    ))D,I,IIIr[   c                 "    SU R                    S3$ )N<>readable_namer   s    rB   __repr__Symbol.__repr__   s    4%%&a((r[   c                     U R                   $ r   r   r   s    rB   __str__Symbol.__str__   s    !!!r[   c                 *    [        [        U 5      5      $ r   )hashr   r   s    rB   __hash__Symbol.__hash__   s    BtH~r[   c                 0    [        U 5      [        U5      :  $ r   )r   )rk   others     rB   __lt__Symbol.__lt__   s    $x"U)##r[   	tag_valuec                 :    U R                   R                  U5        g r   )rm   r   rk   r   s     rB   add_tagSymbol.add_tag   s    

y!r[   c                 :    U R                   R                  U5        g r   )rm   discardr   s     rB   
remove_tagSymbol.remove_tag   s    

9%r[   c                     XR                   ;   $ r   )rm   r   s     rB   has_tagSymbol.has_tag  s    JJ&&r[   c                     SU l         g NT)r   r   s    rB   temporary_disable_warnings!Symbol.temporary_disable_warnings  s
    &*#r[   c                     [        U R                  5      S:X  a  [        R                  " 5       $ [	        U R                  R                  5       5      $ )Nr   )lenr   r   r|   r   keysr   s    rB   last_used_timestampSymbol.last_used_timestamp  s>    t**+q0**,,t22779::r[   c                 L    U R                   nUc
  [        5       $ UR                  $ r   )r   rl   namespace_waiting_symbolsrk   r   s     rB   r    Symbol.namespace_waiting_symbols  s"    ^^
suD(D(DDr[   c                 "    U R                  5       $ r   )_get_initialized_timestampr   s    rB   r   Symbol._initialized_timestamp  s    ..00r[   seenc                 @   U R                   nUR                  (       a  U$ U=(       d
    [        5       nUR                  U 5        U R                  nUbK  [        5       R                  R                  UR                  / 5       H  nXA;   a  M
  UR                  US9s  $    U$ Nr   )
r~   r   rl   r   r   r   r   r   r   r   )rk   r   tsr   r   s        rB   r   !Symbol._get_initialized_timestamp  s     __I}su&&>v~~))"))R8;5545@@ 9 	r[   c                 b    U R                   nU R                  c  U$ [        XR                  5      $ r   )r   r   r   rk   r   s     rB   shallow_timestampSymbol.shallow_timestamp(  s/    ((##+Ir3344r[   c                     [        U R                  SS9 H/  n[        5       R                  U5      R                  (       d  M-  Us  $    g )NTreverse)sortedr   r   at_timestamp
is_visibler   s     rB   visible_timestampSymbol.visible_timestamp0  s=    00$?Bw##B'222	 @ r[   c                 L    U R                   R                  U R                  5      $ r   )r   r   r   r   s    rB   memoize_timestampSymbol.memoize_timestamp7  s    4488EEr[   c                     U R                   nU R                  (       d  U R                  (       a  U$ U R                  nUc  U$ [	        XR
                  5      $ r   )r   	is_import	is_moduler   r   max_descendent_timestamp)rk   r   r   s      rB   r   Symbol.timestamp;  sB    ##>>T^^I^^ZrIS-H-H%IIr[   version_uboundc                    Uc  U R                   U R                  1nOY[        R                  " 5       n[	        U R
                  5       H  nXR::  d  M
  Un  O   UR                  (       a  U1nO
[        5       nU R                  nUc  U$ Uc
  [        5       nX;   a  U$ UR                  U 5        UR                  5        H  nX7R                  XS9-  nM     U$ )N)r   r  )r   r   r   r|   reversedr   r   rl   r   r   all_symbols_this_indentation_compute_namespace_timestamps)rk   r   r  
timestampsmax_leq_uboundr   r   r   s           rB   r  $Symbol._compute_namespace_timestampsC  s    
 !00$..AJ&446Nt889'%'N : ,,,-
 U
^^:<5D<224C;; <  J 5 r[   versionc                 *   [        U R                  5      S:X  a  U R                  1$ U R                  U   nUR                  S:X  a!  [	        U R
                  UR                  5      1$ U R                  US:X  a  S OUS9[        R                  " 5       1-
  $ )Nr   rj   )r  )	r   r   r   cell_numr   defined_cell_numstmt_numr  r|   )rk   r  r   s      rB   _get_timestamps_for_version"Symbol._get_timestamps_for_versionb  s    t(()Q.NN##&&w/;;"d33R[[ABB55'."}t" 6 ((*+, ,r[   format_typec                 N    [        5       R                  U R                  US9SUS9$ )N)r  T)blackenr  )r   format_multi_slicer  )rk   r  r  s      rB   codeSymbol.codem  s5     |..,,W,=# / 
 	
r[   consider_containing_symbolsc                 .   Uc
  [        5       nX;   a  gUR                  U 5        U R                  nU R                  nUc  UO[	        UUR                  U5      5      nU(       d  U$ U R                  5        H  n[	        XVR                  US95      nM     U$ )Nrj   r   )rl   r   r   r   r   max_cascading_reactive_cell_numiter_containing_symbolscascading_reactive_cell_num)rk   r   r   r  r   retr   s          rB   r$  "Symbol.cascading_reactive_cell_numv  s    
 <5D<44^^ z 2248 	 +J//1Cc:::EFC 2
r[   ctrc                 p    [        U R                  Uc  [        5       R                  5       OU5      U l        g r   )r   r   r   cell_counterrk   r'  s     rB    bump_cascading_reactive_cell_num'Symbol.bump_cascading_reactive_cell_num  s,    ,/--%([DF!c-
)r[   )r]   NNc              #      #    U v   U R                   nUb  UR                  (       d  g UR                  5        H9  n[        5       R                  R                  UR                  / 5       S h  vN   M;     g  N	7fr   )r   r   iter_containing_namespacesr   r   r   r   )rk   r   containing_nss      rB   r#  Symbol.iter_containing_symbols  s]     
&&:R22::<Mv~~))-*>*>CCC =Cs   A*A8,A6-
A8c                 f    [        U R                  R                  [        5       R                  5      $ r   )r   r~   r  r   min_timestampr   s    rB   waiting_timestampSymbol.waiting_timestamp  s!    4??++TV-A-ABBr[   c                     U R                   $ r   )r   r   s    rB   r  Symbol.defined_cell_num  s    %%%r[   c                 8    U R                   R                  U 5      $ r   rd   make_namespace_qualified_namer   s    rB   r   Symbol.readable_name      $$BB4HHr[   c                 <    U R                   [        R                  :H  $ r   )rb   rE   rT   r   s    rB   is_subscriptSymbol.is_subscript  s    :#7#777r[   c                 <    U R                   [        R                  :H  $ r   )rb   rE   rV   r   s    rB   is_classSymbol.is_class  s    :#3#333r[   c                 <    U R                   [        R                  :H  $ r   )rb   rE   rU   r   s    rB   is_functionSymbol.is_function  s    :#6#666r[   c                 |    [        U R                  5      [        L =(       a    U R                  R                  S5      $ )Nz<lambda_sym_)r5   ra   r   
startswithr   s    rB   	is_lambdaSymbol.is_lambda  s2     DII#% 
$))*>*>+
 	
r[   c                 <    U R                   [        R                  :H  $ r   )rb   rE   rW   r   s    rB   r  Symbol.is_import      :#4#444r[   c                 <    U R                   [        R                  :H  $ r   )rb   rE   rX   r   s    rB   r  Symbol.is_module  rK  r[   c                    U R                   (       d  [        S5      e[        U R                  [        R
                  5      (       a  U R                  R                   H?  nUR                  =(       d    UR                  nX R                  :X  d  M3  UR                  s  $    [        SU < S[        R                  " U R                  5      < 35      e[        U R                  [        R                  5      (       a/  U R                  R                  c   eU R                  R                  $ [        U R                  c	  SS -  5      e[        R                  " U R                  5      5      e)Nz3only IMPORT symbols have `imported_module` property!Unable to find module for symbol 	 is stmt 'Invalid stmt type for import symbol: %s)r  
ValueErrorr   re   astImportnamesasnamera   dump
ImportFromrL   	TypeErrorrk   aliasra   s      rB   imported_moduleSymbol.imported_module  s   ~~RSSdnncjj11--||1uzz99$ ::% . $..13  77%%11>>(((>>) :D@  XXdnn- r[   c                    U R                   (       d  [        S5      e[        U R                  [        R
                  5      (       a  U R                  $ [        U R                  [        R                  5      (       a  U R                  R                   H?  nUR                  =(       d    UR                  nX R                  :X  d  M3  UR                  s  $    [        SU < S[        R                  " U R                  5      < 35      e[        U R                  c	  SS -  5      e[        R                  " U R                  5      5      e)NzAonly IMPORT symbols have `imported_symbol_original_name` propertyrO  rP  rQ  )r  rR  r   re   rS  rT  r\  rX  rU  rV  ra   rW  rY  rZ  s      rB   imported_symbol_original_name$Symbol.imported_symbol_original_name  s    ~~S  dnncjj11'''77--||1uzz99$ ::% . $..13 
 >>) :D@  XXdnn- r[   c                 `    U R                  5       [        U[        5       R                  5      :  $ r   )r$  r   r   min_cascading_reactive_cell_numr*  s     rB    is_cascading_reactive_at_counter'Symbol.is_cascading_reactive_at_counter  s,    //1C775
 
 	
r[   c                    U R                   R                  (       d  U $ [        SU R                   5      n[        5       R                  R                  UR                  / 5       H&  nUR                  (       d  M  UR                  5       s  $    g Nr.   )	rd   r   r   r   r   r   r   is_globally_accessibleget_top_level)rk   rd   r[  s      rB   rh  Symbol.get_top_level  sn    $$77K#K1F1FG++,<,C,CRH/// ..00 I r[   c                 0   U R                   (       d  [        S5      eU R                  n[        U R                  [
        R                  5      (       a&  XR                  :X  a  SU 3$ SU SU R                   3$ [        U R                  [
        R                  5      (       a8  U R                  nX R                  :X  a  SU SU 3$ SU SU SU R                   3$ [        U R                  c	  SS -  5      e[
        R                  " U R                  5      5      e)Nz8only IMPORT symbols support recreating the import stringzimport z as zfrom z import rQ  )r  rR  r\  r   re   rS  rT  ra   rX  r_  rY  rW  )rk   rL   original_symbol_names      rB   get_import_stringSymbol.get_import_string  s    ~~WXX%%dnncjj11" )) TYYK8877#'#E#E #yy0vhh/C.DEEvhh/C.DDTT>>) :D@  XXdnn- r[   c                     U R                   [        R                  :X  a  gU R                  nUb  UR                  (       a  ggNTF)rb   rE   rY   r   r   r   s     rB   r   Symbol.is_anonymous  s5    z333&&>boor[   c                     U R                   $ r   )r   r   s    rB   r   Symbol.is_implicit$  s    ~~r[   new_objnew_containing_scopec                 <    U R                  U R                  X1U5      $ r   )	__class__ra   )rk   rs  rt  rb   s       rB   shallow_cloneSymbol.shallow_clone(  s     ~~dii?STTr[   c                 ,    [        U R                  5      $ r   )r   rc   r   s    rB   r   Symbol.obj_id-  s    $((|r[   c                      U R                   (       d0  [        U R                  S5      (       a  [        U R                  5      $ g ! [         a     g f = f)N__len__)is_obj_lazy_modulehasattrrc   r   	Exceptionr   s    rB   obj_lenSymbol.obj_len1  sJ    	**wtxx/K/K488}$   		s   A A 
AAc                 ,    [        U R                  5      $ r   )r5   rc   r   s    rB   obj_typeSymbol.obj_type:  s    DHH~r[   c                 4    U R                   U R                  ;   $ r   )r  IMMUTABLE_TYPESr   s    rB   is_immutableSymbol.is_immutable>  s    }} 4 444r[   c                 4    U R                   U R                  :H  $ r   )ra   $IPYFLOW_MUTATION_VIRTUAL_SYMBOL_NAMEr   s    rB   is_mutation_virtual_symbol!Symbol.is_mutation_virtual_symbolB  s    yyDEEEEr[   c                 L    U R                   U R                  U R                  4;   $ r   )ra   r   IPYFLOW_ITER_VIRTUAL_SYMBOL_NAMEr   s    rB   is_implicit_virtualSymbol.is_implicit_virtualF  s*    yy5511
 
 	
r[   c                 Z    U R                   S:H  =(       a    U R                  R                  $ )N_)ra   rd   	is_globalr   s    rB   is_underscoreSymbol.is_underscoreM  s"    yyCCD$9$9$C$CCr[   c                 &    U R                   [        L $ r   )r  r,   r   s    rB   r}  Symbol.is_obj_lazy_moduleQ  s    }}++r[   c                 ,    [        U R                  5      $ r   )r   rc   r   s    rB   r   Symbol.get_type_annotationU  s    "488,,r[   c                 4    [        U R                  5       5      $ r   )r   r   r   s    rB   get_type_annotation_string!Symbol.get_type_annotation_stringX  s    %d&>&>&@AAr[   r.   c                 \    [        5       R                  R                  U R                  5      $ r   )r   r   r   r   r   s    rB   r   Symbol.namespace[  s    v  $$T[[11r[   c                 f    U R                   R                  (       a  [        SU R                   5      $ g rf  )rd   r   r   r   s    rB   r   Symbol.containing_namespace_  s'      33T%:%:;;r[   .c                 \    U R                   R                  [        U R                  5      4-   $ r   )rd   	full_pathr   ra   r   s    rB   r  Symbol.full_pathf  s$    $$..#dii.1BBBr[   c                 8    U R                   R                  U 5      $ r   r8  r   s    rB   full_namespace_pathSymbol.full_namespace_pathj  r;  r[   c                     U R                   $ r   )ro   r   s    rB   
is_garbageSymbol.is_garbagen  s    r[   c                    U R                   (       a  gU R                  n[        R                  R	                  SS 5      nUb4  Ub1  [        UR                  UR                  5      (       a  UR                  $ U R                  5       S:H  $ )NFnumpyr   )
ro   r   sysmodulesr   r   rc   ndarrayr  get_ref_count)rk   r/  r  s      rB   is_new_garbageSymbol.is_new_garbager  sp    ??11.)=,,emm<< !+++!!#q((r[   c                 .    U R                   R                  $ r   )rd   rg  r   s    rB   rg  Symbol.is_globally_accessible  s    $$;;;r[   c                 "   U R                   =(       a}    U R                  (       + =(       ae    U R                  (       + =(       aM    U R                  S L=(       a3    U R                  R                  =(       d    U R                  R                  (       + $ r   )rg  r   r  r   r   s    rB   is_user_accessibleSymbol.is_user_accessible  st     '' 	%%%	OO#	 ))5 --:: <00;;			
r[   c                 d    [        [        5       R                  U R                  U 5        S U l        g r   )r*   r   r   r   rc   r   s    rB   _remove_self_from_aliases Symbol._remove_self_from_aliases  s    T:r[   c                     U R                   (       a  g SU l        U R                  nUb3  [        S U R                   5       5      (       a  UR                  5         g g g )NTc              3   8   #    U  H  oR                   v   M     g 7fr   )r  )r   r[  s     rB   r   &Symbol.mark_garbage.<locals>.<genexpr>  s     !Mu"2"2   )r  ro   r   allr   mark_garbager   s     rB   r  Symbol.mark_garbage  sG    ??^^>c!M!MMMOO N>r[   c                    U R                   (       d   e[        5       R                  R                  U S 5        U R	                  5         U R
                   H  nUR                  R                  U S 5        M!     U R                   H  nUR
                  R                  U S 5        M!     U R                  nU R                  (       a*  Ub'  UR                  R                  U R                  S 5        g U R                  (       d1  U R                  R                  R                  U R                  S 5        g [        R                  SX R                  5        g )Nz(could not find symbol %s in its scope %s)r  r   %blocked_reactive_timestamps_by_symbolpopr  rz   r{   r   r=  _subscript_symbol_by_namera   rd   _symbol_by_nameloggerwarning)rk   parentchildr/  s       rB   collect_self_garbageSymbol.collect_self_garbage  s    4488tD&&(llFOOd+ #]]EMMdD) #11!:3377		4H""!!1155diiFNN:DBWBWr[   refresh_cachedc                    U R                   S:  a"   U R                  R                  5         SU l         U R                  S:  aE   U R
                  R                  U R                  R                  5      R                  5         SU l        SU l        SU l	        [        5       R                  R                  (       a;  U R                  [        U5      La#  U R                   H  nUR!                  5         M     U R"                  R%                  5         U R&                  R%                  5         Xl        U R(                  GbP  U R(                  U R*                  :w  Ga5  [        5       R,                  R/                  U R*                  S 5      n[        5       R,                  R/                  U R(                  S 5      nUbx  UR0                  U R0                  :X  a^  Uc9  [2        R5                  SU5        UR7                  U5      nUR9                  U5        O"UR:                  Ul        UR<                  Ul        U R?                  5         UbK  [A        [        5       RB                  R/                  U R(                  / 5      5      S:X  a  URE                  5         U(       a  U RG                  5         g g ! [         a     GNf = f! [         a     GNBf = f)Nr   FTz!create fresh copy of namespace %s)$r   rc   unobserve_allr  r   _mercury_widgets_manager
get_widgetcode_uidro   rp   r   rA   mark_typecheck_failures_unsaferr   r5   r   invalidate_typecheck_resultr   clearr   rq   r   r   r   r  r  info
fresh_copytransfer_symbols_tor   parent_scope_handle_aliasesr   r   r  rt   )rk   rc   r  cellnew_nsold_nss         rB   update_obj_refSymbol.update_obj_ref  s,   ((1,&&( -.D)--1--88HH%%-/ 23D.#' FOO::$$DI5--002 .%%++-""((*)d.@.@DKK.OV&&**4;;=FV&&**4+=+=tDF"..$2J2JJ>KK CVL#..s3F..v6(.(9(9F%*0*=*=F'  ""**4+=+=rBCqH##%$$& W    s#   J% =J6 %
J32J36
KKc                 .    SU l         S U l        S U l        g r   )rp   rq   rr   r   s    rB   invalidate_cachedSymbol.invalidate_cached  s    #' !#r[   c                    U R                   b  U R                   [        R                  L a  g[        R                  " U R                   5      S-
  nU[        [        5       R                  R                  U R                  / 5      5      -  nU R                  nUb  UR                   U R                   L a  US-  nU R                  nUb  UR                  (       d  US-  nU$ )Nrj      )rc   r]   NULLr  getrefcountr   r   r   r   r   r   r   r  )rk   totalr   s      rB   r  Symbol.get_ref_count  s    88txx6;;6)A-TV^^''R899^^>bff0QJE&&>"--QJEr[   prev_objc                 l   Uc  g[        5       R                  R                  U S5      U R                  R                  :X  a  gU R
                  (       a  U R                  U R                  :X  a  gU R                  b  U[        R                  L a'  U R                  S L =(       a    U[        R                  L $ g)NFrj   T)r   r  r   r   r  rp   r   rq   rc   r]   r  )rk   r  s     rB   _should_cancel_propagation!Symbol._should_cancel_propagation   s    F88<<T2F~~&&' ''4;;$:L:L+L88x6;;688t#?FKK(??r[   c                     [        [        5       R                  U R                  U 5        [        5       R                  R	                  U R
                  [        5       5      R                  U 5        g r   )r*   r   r   rq   r   r   rl   r   r   s    rB   r  Symbol._handle_aliases  sA    (:(:DA!!$++su599$?r[   c                 &   Xl         S U l        U R                  (       d"  Ubo  [        U[        R
                  5      (       aP  U [        5       R                  [        U5      '   U R                  R                  U R                  5      U l        Xl        U$ r   )re   ry   rC  r   rS  Lambdar   statement_to_func_symr   rd   make_child_scopera   rv   rw   )rk   re   s     rB   rx   Symbol.update_stmt_node  sp     #%)"!jCJJ&G&G
 ;?DF((I7"33DDTYYODO!*r[   c                 x    SU l         U R                  U l        U R                  U l        U R
                  U l        g NF)rp   r   rq   r  rr   r  rs   r   s    rB   rt   Symbol._refresh_cached_obj"  s.    #( ![[#}}"llr[   c                    U R                   bH  [        U R                   [        R                  [        R                  [        R
                  45      (       d   e/ nU R                   R                  R                  U R                   R                  R                  -    H  nUR                  U5        M     U R                   R                  R                  b/  UR                  U R                   R                  R                  5        U R                   R                  R                  b/  UR                  U R                   R                  R                  5        U$ r   )rw   r   rS  FunctionDefAsyncFunctionDefr  args
kwonlyargsappendvarargkwarg)rk   r  args      rB   get_definition_argsSymbol.get_definition_args)  s    !!-*#2F2F

 S3
 3
 	
 
 %%**//$2D2D2I2I2T2TTCKK U""))5KK**//667""((4KK**//556r[   c              #     ^#    U R                   bH  [        U R                   [        R                  [        R                  [        R
                  45      (       d   eU R                  5       nUb  [        U[        R                  5      (       d  g U R                   R                  R                  [        U R                   R                  R                  5      * S   Vs0 s H  nUR                  U_M     snm[        U4S jUR                   5       5      (       d  [        R                  S5        g U R                   R                  R                  n[        U R                   R                  R                  5      S:  a-  US [        U R                   R                  R                  5      *  n[        U5      S:  a  US   R                  S:X  a  USS  n[!        X1R                  5       HC  u  pE[        U[        R"                  5      (       a    O!U[%        5       R'                  U5      4v   ME     [)        5       nUR                   HS  nUR                  UR*                  pUb  U	c  M"  UR-                  U5        TU   [%        5       R'                  U	5      4v   MU     [!        U R                   R                  R                  [        U R                   R                  R                  5      * S  U R                   R                  R                  5       H4  u  p*UR                  U;   a  M  U[%        5       R'                  U
5      4v   M6     g s  snf 7f)Nc              3   @   >#    U  H  oR                   T;   v   M     g 7fr   )r  )r   keywordkwarg_by_names     rB   r   ?Symbol._match_call_args_with_definition_args.<locals>.<genexpr>F  s     T?SG;;-/?Ss   z9detected mismatched kwargs from caller node to definitionr   rk   r  )rw   r   rS  r  r  r  _get_calling_ast_nodeCallr  r   defaultsr  r  keywordsr  r  zipStarredr!   resolve_loaded_symbolsrl   valuer   )rk   caller_nodearg_keydef_argsdef_argcall_arg	seen_keysr  keyword_keykeyword_value	arg_valuer  s              @rB   %_match_call_args_with_definition_args,Symbol._match_call_args_with_definition_args6  s     !!-*#2F2F

 S3
 3
 	
 
 002jchh&G&G  --2277T'',,55668
 KK 
 T{?S?STTTNNVW%%**//t!!&&//014 H3t'9'9'>'>'G'G#H"HIHx=1!F!:|H!$X/?/?!@G(CKK00 68::8DDD "A E	"++G)0gmm"m&;MM+&,fh.M.M/   , #&##((#d.@.@.E.E.N.N*O)O)QR##,,#
G {{i'68::9EEE#
=
s   CM
M2IM
c                    [        5       R                  (       d?  [        U R                  S5      (       d%  [	        [        U R                  5      SS 5      S:X  a  g U R                  b  [        U R                  [        R                  [        R                  45      (       aa  U R                  S;   a  g U R                  R                   H6  n[        U[        R                  5      (       d  M$  UR                  S:X  d  M6    g    [        5       R                  n[!        U5      S:X  a  g UR#                  S5      n[        5       R$                  R'                  US 5      nUb  [        U[        R(                  5      (       d  g U$ )NrP   builtins)__getitem____setitem____delitem__propertyr   !prev_node_id_in_cur_frame_lexical)r!   'tracing_disabled_since_last_module_stmtr~  rc   getattrr5   rw   r   rS  r  r  ra   decorator_listNamer   lexical_call_stackr   	get_fieldast_node_by_idr   r  )rk   	decoratorr$  r  caller_ast_nodes        rB   r  Symbol._get_calling_ast_nodef  s(   8;;,//TXXd;zI)j#2F2F G/
 /
 yyII!//>>	i22y||z7Q ? $X88!"a',>,H,H/-
) !(1155-t
 "*_chh*O*Or[   
call_framec           
      f   U R                   c   e[        5       n[        R                  SU 5        U R	                  5        H  u  p4UR                  UR                  5        U R                  R                  UR                  UR                  R                  UR                  5      UU R                   SUS9  [        R                  SX45        M     U R                  5        HO  nUR                  U;   a  M  U R                  R                  UR                  S [        5       U R                   SUS9  MQ     g )Nzcreate symbols for call to %sF)	propagaterf   zdef arg %s matched with deps %s)rw   rl   r  r  r  r   r  rv   upsert_symbol_for_namef_localsr   r  )rk   r*  seen_def_argsr  depss        rB   create_symbols_for_call_args#Symbol.create_symbols_for_call_args  s   !!---3T:!GGIMGgkk*OO22##''4""# 3  KK97I J //1G{{m+OO22""# 3  2r[   c                 *   U R                   (       d  U R                  (       a  gU R                  U R                  R                  :  a  g[        5       R                  S:X  a  [        U R                  5      S:  $ [        S U R                   5       5      $ )NFTrj   r   c              3   8   #    U  H  oR                   v   M     g 7fr   )
is_waitingr   s     rB   r   $Symbol.is_waiting.<locals>.<genexpr>  s     P1O#~~1Or  )
r   r   r3  r   r  r   r2  r   r   anyr   s    rB   r5  Symbol.is_waiting  sr      D$?$?!!D$;$;$D$DDV!!R't556:: P1O1OPPPr[   c                     U R                   (       d  U R                  (       a  gU R                  U R                  R                  :  $ r  )r   r   r3  r   r  r   s    rB   is_shallow_staleSymbol.is_shallow_stale  s3      D$?$?%%(?(?(H(HHHr[   posdeepc                    U R                   R                  5        H  u  p4U H  n[        5       R                  U5      R                  nXa:  a  M-  UR
                   H`  n[        5       R                  U5      R                  U:  a  M,  UR                  UR                  :  d  UR                  U5      (       d  M^        g   M     M     U(       a+  U R                   H  nUR                  U5      (       d  M    g   gro  )	rz   itemsr   r   positionr   r  is_waiting_at_positionr   )	rk   r<  r=  parr  r   dep_introduced_pos
updated_tsr   s	            rB   %_is_ready_or_waiting_at_position_impl,Symbol._is_ready_or_waiting_at_position_impl  s    #||113OC %*W%9%9"%=%F%F"%+"%"8"8Jw++J7@@CUU !**R[[8C<V<V*= =  $ #9	 !  4& 55--c22 6 r[   c                    U(       a  U R                   (       d  gOU R                  (       d  g[        5       R                  R                  [
        R                  :X  a  g[        5       R                  5       U R                  :  a7  U R                  R                  5         [        5       R                  5       U l	        X4U R                  ;   a  U R                  X4   $ SU R                  X4'   U R                  X5      nX0R                  X4'   U$ NFT)r5  r:  r   r8   
flow_orderr   	ANY_ORDERr   r   r   r   r  rE  )rk   r<  r=  r5  s       rB   rA  Symbol.is_waiting_at_position  s    ?? # ((6))]-D-DD7!D$Q$QQ77==?<AG<P<P<RD9;$EEE>>syIIAF33CI>??J
AK33CI>r[   c                 2    U R                   (       a  gXL a  ggrH  )r   )rk   updated_deps     rB   should_mark_waitingSymbol.should_mark_waiting  s      r[   new_depsc                 D   U R                   (       a  g[        U R                  [        R                  [        R
                  45      (       d  g[        U5      S:w  a  g[        [        U5      5      nUR                  (       + =(       a    U R                  UR                  :H  $ )NTFr  )r  r   re   rS  Assign	AnnAssignr   nextiterr   r   )rk   rP  only_deps      rB   _is_underscore_or_simple_assign&Symbol._is_underscore_or_simple_assign  sm    $..3::s}}*EFFx=AX/(((KT[[HOO-KKr[   	overwritemutateddeleted"propagate_to_namespace_descendentsr,  refreshis_cascading_reactivec
                 J  ^ ^ [        5       n
T R                  (       a+  T R                  T R                  :X  a  T R	                  5         g U(       a+  T R
                  (       d  T R                  R                  5         U(       a  T R                  (       a  g ST l	        U=(       a    T U;  nU=(       a    [        U 4S jU 5       5      (       + n[        R                  ST U5        UR                  T 5        U(       a\  T R                  R                  5       U-
   H;  nUR                   R#                  T S 5        T R                  R#                  US 5        M=     UT R                  R                  5       -
   H  nUc  M  UR                   R%                  T / 5      R'                  [(        R*                  " 5       5        T R                  R%                  U/ 5      R'                  [(        R*                  " 5       5        M     [(        R,                  " 5       T l        T R0                  R                  5         T R2                  R                  5         U(       d)  [5        T R6                  [8        R:                  5      (       a  T R=                  5         U(       d  U(       a  [(        R*                  " 5       R>                  (       a  T R                  (       d  T R@                  (       d  T R
                  (       a  T RB                  (       do  T RD                  (       d^  T RF                  [H        LaK  T RJ                  (       d:  T RL                  b-  T RL                  RO                  T RP                  [S        5       SS9  U=(       a(    U=(       d    U=(       d    T RU                  U5      (       + n [W        5       RY                  5       RZ                  nUc  SOUR^                  mU(       a=  ST l0        U
Rb                  R                  T 5        U
Rd                  R                  T 5        U	b  U	=(       d    [        U4S jU 5       5      n	U	(       a  T Rg                  5         U(       aH  T R	                  U=(       a2    U=(       a    U(       + (       + =(       a    T Ri                  U5      (       + S9  U(       a  [k        T 5      " XXh5        T Rm                  5         T RJ                  (       a=  [o        5       Rp                  R#                  5       nURs                  T Rt                  5        U HO  nURt                  T Rt                  L d  M  URv                  c  M-  URv                  T l;        URx                  T l<        MQ     T RL                  nUb@  URz                  S:X  a0  [5        T R|                  [~        5      (       a  T R|                  Ul=        U(       aP  [        [        5       R                  T R                     5      S	:X  a!  T R                  5         T R                  5         g g g ! [\         a    S n GN^f = f)
NFc              3   B   >#    U  H  nTUR                   ;   v   M     g 7fr   )rz   )r   new_deprk   s     rB   r   %Symbol.update_deps.<locals>.<genexpr>  s      *
3;DGOO#8s   zsymbol %s new deps %s)r,  rj   c              3   D   >#    U  H  oR                  T5      v   M     g 7fr   )rc  )r   r   prev_cell_ctrs     rB   r   rb  ;  s!      AOW44]CCxs    )refresh_descendent_namespacesrk   r  )Dr   r  r   rq   r]  rg  r   r  r  r   r7  r  r  r   rz   r   r{   r  r   r  r   r}   r|   r   r   r   r   re   rS  	AugAssignupdate_usage_infor   r  r  r   r  r5   r@  r   r-  r  objectr  r   current_cell	prev_cellKeyErrorcell_ctrr   updated_reactive_symbolsupdated_deep_reactive_symbolsr+  rW  r   rt   r!   pending_class_namespacesr  rc   rv   rw   r   ra   r   r   r    _handle_possible_widget_creation(_handle_possible_mercury_widget_creation)rk   rP  r  rY  rZ  r[  r\  r,  r]  r^  r@   r  
new_parentrj  pending_class_nsdepr   rd  s   `                @rB   update_depsSymbol.update_deps  s    >>dkkT-?-??LLNT88""$t(( 6$h"6	 
c *
3;*
 '
 #
	 	.h?,,++-8##D$/  . 9 #T\\%6%6%88J!**44;;I<M<M<OPLL##J3::9;L;L;NO	 9
 #,"9"9";$$&((..0j??""$	!!#22%%33++&&$$T)MM*NN119968u 2   
OwOd&E&Eh&O"O 		,,.88I (/Y5G5G02D-**2248//77= ,$9 %S AOWA >! !113LL /8 /G K)K%KL/G<<XFF   4 #E 	  "==%x@@DDF++DHH5Cww$(("s~~'A"%..%(%6%6"  ^^>bmmv5*TYYPS:T:T !IIBMTV^^DKK89Q>11399; ?9Q  	I	s   !"X X"!X"r0  c                 L    U R                  U=(       d
    [        5       SSUUS9  g )NFT)rY  rZ  r\  r]  )ru  rl   )rk   r0  r,  s      rB   mutateSymbol.mutate_  s,     	MCE/8 	 	
r[   c                 (   U R                   c  g U R                  (       d  [        U R                   S5      (       d  g  [        R                  R                  U R                   R                  R                  5      R                  $ ! [         a     g f = f)Nr  )
rc   r}  r~  r  r  r   rv  rP   WidgetsManagerr  r   s    rB   r  Symbol._mercury_widgets_managerj  sk    88""'$((J*G*G	;;??488#5#5#@#@APPP 		s   AB 
BBc                 F   U R                   c  g [        [        R                  R	                  S5      SS 5      nUbb  U R
                  (       dQ  [        U R                   U5      (       a6  [        U R                   S5      (       a  [        U R                   S5      (       d  g U R                  5       R                  S[        U R                   SS 5      [        5       U R                  5        U R                   R                  U R                  5        U =R                  S-  sl        g )N
ipywidgetsWidgetobserver  r  )rc   r!  r  r  r   r}  r   r~  
namespacedr-  rl   re   r  _observe_widgetr   )rk   r  s     rB   rp  'Symbol._handle_possible_widget_creationu  s    886$GN&&dhh//488Y//488W--00WTXXw5sudnn	
 	--.%%*%r[   c                 L   U R                   nUc  g UR                  U R                  R                  5      nU R	                  5       R                  S[        USS 5      [        5       U R                  5        UR                  U R                  5        U =R                  S-  sl        g )Nr  r  )r  r  rc   r  r  r-  r!  rl   re   r  r  r   )rk   r{  widgets      rB   rq  /Symbol._handle_possible_mercury_widget_creation  s    66!**488+<+<=00WVWd3SUDNN	
 	t++,**a/*r[   msgc                    UR                  S5      S:w  d  SU;  a  g U R                  nUc  g UR                  S5      nUc  g US   n[        5       R	                  U R
                  5      n[        R                  " UR                   SU 35      R                  S   Ul
        [        5       R                  5       S-   Ul        [        U R
                  R                  UR                   5      Ul        UR%                  U5        ['        5       R)                  UR                  UR"                  SS9  [+        5          [        5       R-                  UR
                  UR"                  U5        [        5       R-                  UR"                  UR
                  U5        S S S 5        U R/                  SS	9  g ! , (       d  f       N= f)
Nra   r  newz = r   r  T)r   overrider1   )r   r   &lookup_symbol_by_name_this_indentationr   r   r~   rS  parser   body_extra_stmtr   r)  r   r   r  num_original_stmtsr   r  r   create_and_trackr"   add_data_depdebounced_exec_schedule)rk   r  r   r   newvalcurrent_ts_cells         rB   r  Symbol._observe_widget  s|   776?g%c)9^^:77@;U'..t?&)ii33D3D2ES0Q&R&W&W'
# 150C0C0E0I-"+OO$$o&H&H#
 	6"%%''-- 	& 	

 %&F''
 F'' ' 	$$d$3 '&s   8AF//
F=r1   c                     [        [        5       R                  U R                  5      R                  US9(       a  S[        5       R                  l        g g )Nr  T)rC   r   r   r   cell_idr   r=   r?   )rk   r1   s     rB   r  Symbol.debounced_exec_schedule  s?    #G  0888
 CGDF?
r[   c                     U R                   nUb  U$ [        5       " U R                  U R                  U R                  S9$ )N)r  )r   r   rc   ra   rd   r   s     rB   r  Symbol.namespaced  s4    ^^>I|DHHdiid>S>STTr[   	used_timeupdated_time	is_staticc                    [        5       nU=(       d    X!:  nU(       a%  [        US9   UR                  UUU 5        S S S 5        U(       a#  [        5       R	                  U5      R
                  nU$ ! , (       d  f       N:= f)Nr  )r   r#   r  r   r   r   )rk   r  r  r  r@   is_usages         rB   update_usage_info_one_timestamp&Symbol.update_usage_info_one_timestamp  sj     8 8 95""  6 w++L9DDH 65s   A00
A>	used_node
exclude_nsis_blockingc           	         U=(       d     [        U5      [        5       R                  ;   nUc  [        R                  " 5       n[        5       R                  (       a,  [        R                  SU UR                  U R                  5        U(       a  U R                  OU R                  nU(       d  SnU R                  n[        U R                  SS9 H7  n	U	R                   (       d  M  U R#                  UU	US9nU(       d	  U(       a  M7    O   U(       a&  UR                   (       a  XU'   Ub  X R$                  U'   U(       a  U $ U R'                  SS9 H  n
U
R)                  US SUUS9  M     U $ )Nz0sym `%s` used in cell %d last updated in cell %dFTr   r  )recurse)r  r  r  r  r  )r   r!   blocking_node_idsr   r}   r   is_dev_moder  r  r  r   r   r   r   r   r   r   r  r   get_namespace_symbolsrg  )rk   r  r  r  r  r  r   r  	ts_to_userD  r   s              rB   rg  Symbol.update_usage_info  sT    "PR	]fh6P6P%P!))+I6KKB""	  ++,, 	
 H33I$T%<%<dK
!00??' @ 
 99 L I444=y1(=F//	:K--d-;C!!##' "  < r[   r  c              #      #    U R                   nUc  g Uc
  [        5       nX;   a  g UR                  U 5        UR                  5        H'  nUv   U(       d  M  UR	                  XS9 S h  vN   M)     g  N	7f)N)r  r   )r   rl   r   r  r  )rk   r  r   r   r   s        rB   r  Symbol.get_namespace_symbols
  sq      ^^:<5D<224CIw44W4PPP 5 Qs   AA5A5)A3*
A5	ts_uboundc                 t   Uc
  [        5       nX;   a  g UR                  U 5        U R                  R                  U R                  5        U R
                  R                  U5        U R                  nUc  g [        5       R                  R                  UR                  / 5       H  nUR                  XS9  M     g r   )rl   r   r   r  r~   r   r   r   r   r   r   _take_timestamp_snapshots)rk   r  r   r/  r[  s        rB   r   Symbol._take_timestamp_snapshots  s     <5D<!!((9((//	:11 V^^''(<(<bAE++I+A Br[   take_timestamp_snapshotsre  r   c                    Ub  X;   a  g U R                   nU R                  R                  U5        Uc  [        R                  " 5       OUU l         S U l        U(       aC  XPR                   :  d  [        U R                  5      S:X  a  U R                  U R                   5        SU l	        U R                   H(  nUR                  X R                   R                  5        M*     U R                  nUb  [        UR                  U R                   5      Ul        [!        5       nUR"                  R%                  UR&                  / 5       H;  n	U	R(                   H(  nUR                  XR                   R                  5        M*     M=     U R*                  R-                  5         U(       d  g Uc
  [/        5       nUR                  U 5        U R0                  nUc  g UR3                  SS9 H  n
U
R5                  SU R                   SUS9  M!     g )Nr   FT)exclude_class)re  r   r  r   )r~   r   r   r   r}   r   r   r   r  r   r   add_used_cell_counterr  r   r   r	  r   r   r   r   r   r   r  rl   r   r  r]  )rk   r  re  r   r   orig_timestampr  r   r@   r[  r   s              rB   r]  Symbol.refresh*  s      $$^41:1B)++-	#' #__,D4M4M0NRS0S**4??;&+#))D&&t__-E-EF *&&>*-++T__+B' FE**299b9!77D..uoo6N6NO 8 : 	&&,,.,<5D^^:222FC KK.2//).	   Gr[   c                 D   U R                   R                  (       d  g  [        5       R                  U R                     nU R                  ULGa  [        5       n[        UR                  R                  [        U5      / 5      5      S:X  ag  UR                  R                  U R                  =(       d    S[        5       5      UR                  R                  U R                  [        5       5      -  nO
[        5       nU H  nUR                  (       a  M  UR                   nUc  M'  UR                  nUc  M8  [#        U[$        5      (       d  MO  US   UL d  MY  UR&                  R)                  UR                  S 5        [        U5      S-
  Ul        UR+                  U5        XVR&                  UR                  '   M     [-        UR                  U R                  U 5        [-        UR                  U R                  U 5        UR                  R/                  [        U5      [        5       5      R1                  U 5        U R+                  U5        O,U R2                  U R4                  :w  a  U R7                  5         Og U(       a  U R9                  5         g g ! [
         a     g f = f)Nr   rj   r  )rd   r  r    user_nsra   r  rc   r   r   r   r   r   rq   rl   r   r  r   r   r   r  r  r  r*   r   r   r  rs   rt   r]  )rk   r]  rc   r@   aliases_to_checkr[  r   containing_objs           rB   resync_if_necessarySymbol.resync_if_necessaryg  s   $$..	'//$)),C 883FE5==$$RWb12a7#(==#4#4&&,"ce$MM%%dkk359$:  $'5 ),,','A'A$'/!5!9!9!)nd33r8Jc8Q(BBFFuzzSWX!$^!4q!8EJ((-QVBB5::N * EMM4+=+=tDEMM4;;=MM$$RWce488>$\\T000$$&LLN E  		s   !J 
JJi@B obj1obj2c                 
    X:H  $ r   rN   r  r  s     rB   _equalSymbol._equal  s
    |r[   c                 R    SS K n UR                  X:H  5      $ ! [         a     gf = f)Nr   F)r  alltruer  )r  r  nps      rB   _array_equalSymbol._array_equal  s-    	::dl++ 		s    
&&c                 F     U R                  U5      $ ! [         a     gf = fr  )equalsr  r  s     rB   _dataframe_equalSymbol._dataframe_equal  s(    	;;t$$ 		s    
  eqsc                 X   ^  S[         [           S[         [           S[        4U 4S jjnU$ )Nlst1lst2r2   c                 P   > [        TX5       H  u  p#nU" X45      (       a  M    g   grH  )r
  )r  r  eqr  r  r  s        rB   list_eq%Symbol._make_list_eq.<locals>.list_eq  s)    "%c4"6$$~~  #7 r[   )r   r   bool)r  r  s   ` rB   _make_list_eqSymbol._make_list_eq  s,    	$s) 	49 	 	 r[   seen_idsc           	      h  ^  [        U[        [        [        [        [
        [        45      (       a  UT R                  S4$ [        U[        5      (       d8  [        U5      U;   a  T R                  S S4$ UR                  [        U5      5        [        U[        [        [        [        [        45      (       GaO  Sn/ n/ n[        U[        5      (       a  [!        UR#                  5       5      nOUnU H  nT R%                  Xr5      u  pn
UT R                  L d  U	c  T R                  S S4s  $ X:S-   -  nUT R&                  :  a  T R                  S S4s  $ UR)                  U5        UR)                  U	5        M     [+        U 4S jU 5       5      (       a  T R                  nO;[        U[        [        45      (       a  T R                  S S4$ T R-                  U5      n[        U[        [        45      (       a  [        U5      OUnXU4$ [/        U5      [.        [0        4;   an  [3        5       R4                  R7                  [        U5      / 5       H.  nUR9                  US9u  pNUT R                  Ld  M%  Uc  M*  XNS4s  $    T R                  S S4$ [;        [/        U5      SS5      nUR=                  S5      (       a  [;        [/        U5      S	S5      nUR?                  S
5      (       a  UT R@                  URB                  4$ [D        RF                  R7                  S5      nUb*  [        UURH                  5      (       a  UT R                  S4$ OUR=                  S5      (       aF  [;        [/        U5      S	S5      nUR?                  S5      (       a  UT RJ                  URB                  4$ O}UR=                  S5      (       ag  [D        RF                  R7                  S5      nUbE  [        UURL                  5      (       a*  [O        US5      (       a  URP                  T R                  S4$ T R                  S S4$ )Nr  rj   r   c              3   >   >#    U  H  oTR                   L v   M     g 7fr   )r  )r   r  clss     rB   r   9Symbol.make_memoize_comparable_for_obj.<locals>.<genexpr>  s     2c#cs   r  rP    r  rO   r  )modinpandas)	DataFrameSeriesr~  r  ))r   r  bytes	bytearrayintfloatr   r  tupler   r  r   dict	frozensetr   rl   r   r?  make_memoize_comparable_for_obj_MAX_MEMOIZE_COMPARABLE_SIZEr  r  r  r5   r   r   r   r   make_memoize_comparabler!  rF  endswithr  sizer  r  numberr  r  r~  r  )r  rc   r  r  compr  iterableinner
inner_compinner_eq
inner_sizeiter_eqr%  r   r  rL   ra   r  r~  s   `                  rB   r  &Symbol.make_memoize_comparable_for_obj  s|    cD%CDEE

A%%#u%%#w("xxr))LLC!cD)T3>??DD46C#t$$,2399;,?!363V3V40
j )X-=88T2--Q&#:::88T2--J'

8$ " 2c22269jjC)S!122xxr))++C0%/i5E%F%F)D/DC%%#Y4..v~~))"S'26666Isxx'BNQ;& 7 88T2%% T#Yb9F  ))tCy*b9==++ 0 0#((::KKOOG4E(ZU\\-J-J"CJJ11""#677tCy*b9==!899 4 4chh>> :""<00 [[__\:
*"3
(9(9::W--99cjj!3388T2%%r[   c                 v   Uc
  [        5       n[        U R                  [        R                  [        R
                  [        R                  45      (       a  [        R                  " U R                  5      /n[        U R                  R                  5       5       HQ  nUR                  US9u  pEX@R                  L d  XPR                  La  U R                  S 4s  $ UR                  U5        MS     X R                  4$ U R!                  U R"                  U5      u  penXpR$                  :  a  U R                  S 4$ Xe4$ )Nr  )rl   r   re   rS  ClassDefr  r  
astunparser-   r   rz   r   r  r  r  r  r  rc   r  )rk   r  compsr   par_compr  rc   r  s           rB   r  Symbol.make_memoize_comparable  s     uHNNS\\3??C<P<PQ
 
  ''78Edll//12"::H:Myy(Bkk,A99d?*X&	 3
 ++%%<<TXXxP33399d?"7Nr[   ),rp   r   r   ry   r   r   r   r   r   r   r   r   r   r   rm   r   r~   ro   r   rq   rs   rr   rv   r   r   r{   rd   r   rn   r   r   rw   r   ra   rc   rz   r   re   rf   rb   r   r   r   r   )NNFF)r2   Nr   )NN)Nrj   r   )T)NTFFFTTN)r2   r.   )NNFFF)FN)TFNN)rO   rP   rQ   rR   rh  r  DISPLAYrl   r'   r  r  r  r)   rE   r   r   r   rS  stmtr  ASTr  r   r   r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r  r   r$   r%   r  r$  r+  r
   r#  r3  r  r   r=  r@  rC  rG  r  r  r\  r_  rc  rh  rl  r   r   rw  r   r  r  r  r  r  r  r}  r   r  r   r   r   r  r  r  r  rg  r  r  r  r  r  r  r  r  r  rx   rt   r  r  r  r  r  r   r1  r5  r:  rE  rA  rN  rW  ru  rx  r  rp  rq  r	   r  r  r  r  rg  r  r  r]  r  r  staticmethodr  r  r  r   r  classmethodr  r  rZ   rN   r[   rB   r]   r]   `   sr   8D hG34O+?('7$ <@)-#(c' c'  c' 	c'
 "c' E#((CJJ"678c' cgg&c' !c' c' 
c'J#  ,C	N , , 9h 9 9 J#d) J J)# )" "# $t $" " "&C &D &' ' '+ ;Y ; ; E3x= E E 1	 1 1 /3S]+	  59 5 5 8I#6   F8I#6 F F J9 J J )-.2s8}% !+ 
Y	>	,3 	,3y> 	, NP
#D$45
GJ
	
 )-,0s8}% &* 
	4
HSM 
T 
D3G)H D C3 C C &# & & Is I I 8d 8 8 4$ 4 4 7T 7 7 
4 
 
 54 5 5 54 5 5   0 s  .
C 
D 

x1 3 , d   T  UU29UHRU	U
    #   $s)   5d 5 5 FD F F 
T 
 
 Dt D D ,D , ,-BC B 28K0 2 2 h{&;   C5c? C C IS I I D  ) ) < < < 
D 
 
80'# 0't 0't 0'd$
s 8C= T @!%#**(<"=>	%#**,-	. +T#''] .F	5$x.014=	>.F`x'9 :y T 6 	QD 	Q 	Q I$ I I
 D T 4# T T (
LH 
L$ 
L 3804l<h-l< l< 	l<
 l< l< -1l< l< l<  (~l< 
l<^ GK	
S]+	
?C	
		
  +$	0#44S> #4d #4JG G GU   	
 
* *.'+ !2I&2 CGG$2 	2
 2 2 
2j FJQQ+3CM+BQ	'	(Q" EIB"B*23x=*AB	B$ *..3)-(,;"&; (,; I&	;
 s8}%; 
;z(4 (D (T $) S     3 c d   s # $   	(C:t+,-		49d3i($.	/	 	 B&B&!$SB&	sHXsCj$&678#=	>B& B&J .2 S*	sHXsCj$&6788	9 r[   r]   )PrS  loggingr  enumr   typesr   r   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   ipyflow.configr   r   ipyflow.data_model.cellr   r   ipyflow.data_model.timestampr   )ipyflow.data_model.utils.annotation_utilsr   r   (ipyflow.data_model.utils.update_protocolr   ipyflow.modelsr   r   r   r   ipyflow.singletonsr   r    r!   ipyflow.slicing.contextr"   r#   ipyflow.slicing.mixinr$   r%   ipyflow.tracing.watchpointr&   ipyflow.typesr'   r(   r)   ipyflow.utils.misc_utilsr*   r+   importlib.utilr,   r  r  r~  ipyflow.data_model.namespacer.   ipyflow.data_model.scoper/   	getLoggerrO   r  setLevelERROR _override_unused_warning_symbolsr  rC   rE   r]   r   r  rN   r[   rB   <module>r     s=   
  
  )     < / 2 D L L 2 2 L 3 2 O O >* S)J6.			8	$   $+   
#Cv C C$ C C* k k\- AF# QQ/  Ks   E E E 