
    ^h                     h   S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
Jr  S SKJrJrJr  S SKJrJrJr  \(       a  S SKJr  S SKJr  \R0                  " \5      r\R7                  \R8                  5        \rS qS q " S S	\5      r \ " S
S
5      r!\"" \5      S :X  a  \RF                  " \ 5        g\ \S '   g)    N)contextmanager)TYPE_CHECKING	GeneratorIterable
NamedTupleOptionalTupleUnion)_TimestampContainercells
timestamps)flowtracertracer_initialized)ResolvedSymbol)Symbolc            
       n   \ rS rSr% \\S'   \\S'   \SS j5       r\SS j5       r	\SS j5       r
\S\4S j5       rS	\S
\SS 4S jr\\ SS\S\S\S   4S jj5       5       rS\\\4   4S jrS\4S jrS\4S jr\  SS\\S   \\S      \S   \\S      4   S\\R4                     4S jj5       rSrg)	Timestamp$   cell_numstmt_numreturnc                     [        5       (       aC  U " [        5       R                  5       [        -   [	        5       R                  5       [        -   5      $ [        R                  5       $ N)	r   r   cell_counter_cell_offsetr   module_stmt_counter_stmt_offsetr   uninitializedclss    V/home/james-whalen/.local/lib/python3.13/site-packages/ipyflow/data_model/timestamp.pycurrentTimestamp.current(   sQ     ##%4,,.= 
 **,,    c                     [        [        5       R                  U R                  5      R                  U R
                  5      $ r   )r   r   
at_counterr   positionr   selfs    r"   
positionalTimestamp.positional4   s*    ++DMM:CCT]]SSr%   c                     [         $ r   )_TS_UNINITIALIZEDr    s    r"   r   Timestamp.uninitialized8   s      r%   c                     [         R                  5       nU R                  UR                  :  =(       a    U R                  UR                  :  $ r   )r   r   r   r   )r*   uniniteds     r"   is_initializedTimestamp.is_initialized<   s9    **,}}x000VT]]XEVEV5VVr%   cell_num_deltastmt_num_deltac                 Z    U R                  U R                  U-   U R                  U-   5      $ r   )	__class__r   r   )r*   r4   r5   s      r"   plusTimestamp.plusA   s*    ~~MMN*DMMN,J
 	
r%   cell_offsetstmt_offset)NNNc              #      #    [         U -  q [        U-  q S v   [         U -  q [        U-  qg ! [         U -  q [        U-  qf = f7fr   )r   r   )r:   r;   s     r"   offsetTimestamp.offsetF   sN      	##	(K'LK'L K'LK'Ls   A- AAAc                 2    U R                   U R                  4$ r   )r   r   r)   s    r"   as_tupleTimestamp.as_tupleU   s    t}}--r%   c                     Uc  g[        U[        5      (       d  [        SU< SU < 35      e[        U R	                  5       R                  5       5      [        UR	                  5       R                  5       5      :H  $ )NFz#cannot compare non-timestamp value z with timestamp )
isinstancer   	TypeErrortuple_asdictvaluesr*   others     r"   __eq__Timestamp.__eq__X   sc    =%++$   T\\^**,-u}}7M7M7O1PPPr%   c                     X:X  + $ r    rH   s     r"   __ne__Timestamp.__ne__b   s      r%   Nsymbolsr   r   	used_nodec                     Uc  g  [        U5        U R                  5       nU H+  nUc  M  UR                  (       a  M  UR	                  XCUS9  M-     g ! [         a    U/n NQf = f)N)	used_timerQ   
exclude_ns)iterrD   r#   is_anonymousupdate_usage_info)r!   rP   rT   rQ   rS   syms         r"   rW   Timestamp.update_usage_infoe   so     ?	 M KKM	Cs'7'7'7%%' &    	 iG	 s   A A#"A#rM   )r   r   )r   r   )FN)__name__
__module____qualname____firstlineno__int__annotations__classmethodr#   propertyr+   r   boolr2   r8   staticmethodr   r   r=   r	   r@   rJ   rN   r
   r   r   astASTrW   __static_attributes__rM   r%   r"   r   r   $   sX   MM	- 	- T T ! ! W W W
3 
 
 

 12((+.(	#	$(  (.%S/ .Qt Q!t !  '+XXh'(%&X./02
 CGG$ r%   r   )$rd   logging
contextlibr   typingr   r   r   r   r   r	   r
   ipyflow.modelsr   r   r   ipyflow.singletonsr   r   r   !ipyflow.analysis.resolved_symbolsr   ipyflow.data_model.symbolr   	getLoggerrZ   loggersetLevelERROR#_override_unused_warning_timestampsr   r   r   r.   lenappendrM   r%   r"   <module>rv      s    
  %   B A ? ?@0 
		8	$   '1 # X
 Xv b"%  q y)&r%   