Format: application/x-python-code
⬇ Download File (3.3 KB)
   1  o
   2  
   3  �h��@s�ddlmZmZddlmZmZmZddlmZddl	m
   4  Z
   5  Gdd�d�Zedd�Zed	d
   6  �Z
   7  edd�Zd
   8  d�Zddd�Zdd�Zdd�ZdS)�)�Dict�Optional)�get_flow_branch_keyword�is_scope�get_parent_scope)�execution_allowed)�is_big_annoying_libraryc@sXeZdZUiZeeedfed<deededdfdd�Z	dd	�Z
   9  d
  10  d�Zdd
  11  �ZdS)�Status�lookup_table�value�name�returnNcCs||_||_|tj|<dS�N)�_value�_namer	r
  12  )�selfrr�r�Rc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/flow_analysis.py�__init__szStatus.__init__cCs|turtS|turtStSr)�	REACHABLE�UNREACHABLE�UNSURE�rrrr�inverts
  13  z
  14  Status.invertcCs$t||fvrtS|jr|jrtStSr)rrrr)r�otherrrr�__and__szStatus.__and__cCsdt|�j|jfS)Nz<%s: %s>)�type�__name__rrrrr�__repr__szStatus.__repr__)
  15  r�
  16  __module__�__qualname__r
  17  rr�bool�__annotations__�strrrrrrrrrr	s
  18  r	T�	reachableFZunreachableNZunsureccs,�	t|dd�}|dust|�rdS|Vq)NT�Z
  19  include_flows)rr)�noderrr�_get_flow_scopes's��r'cCs�t|�s|jjs
  20  tSt|dd�}|durott|��}tt|��}d}|D]7}||vr[t||�}	t||�}
  21  |	|
  22  k}|jdkrD|sCt	Sn|jdkrW|sW|
  23  dkrW|	dkrWt	S|r[nq$|duro||krh|rht
  24  S|j}|dus`t||||�S)NTr%�if_stmt�try_stmt�else�except)
  25  r�inference_stateZflow_analysis_enabledrr�listr'rrrr�parent�_break_check)�context�value_scoper&Zorigin_scopeZfirst_flow_scopeZorigin_flow_scopesZnode_flow_scopesZbranch_matches�
  26  flow_scopeZnode_keywordZorigin_keywordrrr�reachability_check/s>�
  27  
  28  
  29  �
  30  �	�r3cCs�t}|jdkr4|�|�r%|��D]}t||�}|ttfvrnq|��}n|�|�}|dur3t||�}n|jdvr;tS|ttfvrC|S||kr[||j	kr[t
  31  |dd�}|t||||�@S|S)Nr()r)Z
  32  while_stmtTr%)rrZis_node_after_elseZget_test_nodes�	_check_ifrrZget_corresponding_test_noderr.rr/)r0r1r2r&r$Z
  33  check_nodeZ	flow_noderrrr/Xs*
  34  
  35  
  36  �
  37  
  38  
  39  �
  40  r/cCs�t|j|��7}|stWd�S|�|�}tdd�|D��}t|�dkr4tj|��Wd�StWd�S1s@wYdS)Ncss�|]}|��VqdSr)Z
  41  py__bool__)�.0�xrrr�	<genexpr>ys�z_check_if.<locals>.<genexpr>�)	rr,rZ
  42  infer_node�set�lenr	r
  43  �pop)r0r&�allowed�types�valuesrrrr4ss�
  44  �	$�r4r)�typingrrZjedi.parser_utilsrrrZjedi.inference.recursionrZjedi.inference.helpersrr	rrrr'r3r/r4rrrr�<module>s
  45  
  46  
  47  
  48  )