
    ^h                         S SK JrJr  S SKJrJrJr  S SKJr  S SK	J
r
   " S S5      r\" SS5      r\" S	S
5      r\" SS5      rS rSS jrS rS rg)    )DictOptional)get_flow_branch_keywordis_scopeget_parent_scope)execution_allowed)is_big_annoying_libraryc                   b    \ rS rSr% 0 r\\\   S 4   \S'   S\\   S\	SS4S jr
S rS	 rS
 rSrg)Status   lookup_tablevaluenamereturnNc                 B    Xl         X l        U [        R                  U'   g N)_value_namer   r   )selfr   r   s      V/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/flow_analysis.py__init__Status.__init__   s    
%)E"    c                 J    U [         L a  [        $ U [        L a  [         $ [        $ r   )	REACHABLEUNREACHABLEUNSUREr   s    r   invertStatus.invert   s#    9[ Mr   c                     [         X4;   a  [         $ U R                  (       a  UR                  (       a  [        $ [        $ r   )r   r   r   r   )r   others     r   __and__Status.__and__   s(    d]"M $9M+Mr   c                 R    S[        U 5      R                  < SU R                  < S3$ )N<z: >)type__name__r   r   s    r   __repr__Status.__repr__   s    !$Z00$**==r   )r   r   )r)   
__module____qualname____firstlineno__r   r   r   bool__annotations__strr   r   r#   r*   __static_attributes__ r   r   r   r      sH    35L$x~x/05*htn *C *D *
N>r   r   T	reachableFunreachableNunsurec              #   T   #     [        U SS9n U b  [        U 5      (       a  g U v   M$  7f)NTinclude_flows)r   r   )nodes    r   _get_flow_scopesr;   '   s.     
D9<8D>>
	 s   &(c                 2   [        U 5      (       d  U R                  R                  (       d  [        $ [	        USS9nUb  [        [        U5      5      n[        [        U5      5      nSnU Hx  nX;   d  M
  [        X5      n	[        X5      n
X:H  nUR                  S:X  a  U(       d  [        s  $ O+UR                  S:X  a  U(       d  U
S:X  a  U	S:X  a  [        s  $ U(       d  Mx    O   Ub#  XC:X  a  U(       a  [        $ UR                  nUb  M#  [        XXB5      $ )NTr8   if_stmttry_stmtelseexcept)r	   inference_stateflow_analysis_enabledr   r   listr;   r   r(   r   r   parent_break_check)contextvalue_scoper:   origin_scopefirst_flow_scopeorigin_flow_scopesnode_flow_scopesbranch_matches
flow_scopenode_keywordorigin_keywords              r   reachability_checkrP   /   s   w''**@@'DA!"2<"@A 0 67,J-6zH!8!R!-!???i/)** *__
2)n.F , 8**!> -, &/N  '..L &
 .>EEr   c                    [         nUR                  S:X  a{  UR                  U5      (       aE  UR                  5        H   n[	        X5      nU[         [
        4;   d  M     O   UR                  5       nO6UR                  U5      nUb  [	        X5      nOUR                  S;   a  [
        $ U[        [
        4;   a  U$ X:w  a(  XR                  :w  a  [        USS9nU[        XX#5      -  $ U$ )Nr=   )r>   
while_stmtTr8   )r   r(   is_node_after_elseget_test_nodes	_check_ifr   r   get_corresponding_test_noder   rD   r   rE   )rF   rG   rM   r:   r4   
check_node	flow_nodes          r   rE   rE   X   s    I)#((..(779
%g:	F 33 : "((*I">>tDI$%g9		6	6 [&)) [4E4E%E%jE
<jOOOr   c                 T   [        U R                  U5       nU(       d  [        sS S S 5        $ U R                  U5      n[	        S U 5       5      n[        U5      S:X  a*  [        R                  UR                  5          sS S S 5        $ [        sS S S 5        $ ! , (       d  f       g = f)Nc              3   @   #    U  H  oR                  5       v   M     g 7fr   )
py__bool__).0xs     r   	<genexpr>_check_if.<locals>.<genexpr>y   s     3U\\^^Us      )	r   rA   r   
infer_nodesetlenr   r   pop)rF   r:   allowedtypesvaluess        r   rU   rU   s   s}    	722D	9W 
:	9 ""4(3U33v;!&&vzz|4 
:	9  
:	9	9s   BAB
B
B'r   )typingr   r   jedi.parser_utilsr   r   r   jedi.inference.recursionr   jedi.inference.helpersr	   r   r   r   r   r;   rP   rE   rU   r3   r   r   <module>rl      sZ    ! Q Q 6 :> >4 4%	UM*	h	&FR6
r   