
    Ae                         d dl mZ ddlmZ ddlmZmZmZmZ ddl	m
Z
mZmZmZ ddlmZ ddlmZ ddlmZ  G d	 d
e      Zy)    )absolute_import   )ScopeTrackingTransform)StatListNodeSingleAssignmentNodeCFuncDefNodeDefNode)DictNodeDictItemNodeNameNodeUnicodeNode)py_object_type)EncodedString)Symtabc                   ,    e Zd Zg dZd Zd Zd Zd Zy)AutoTestDictTransform)	__cinit____dealloc____richcmp____nonzero____bool____len____contains__c           	         |j                   r|S d| _        || _        | j                  d   s|S | j                  d   | _        | j                  xs | j                  d   | _        t        |j                  t              sJ d|j                  j                  v r|S |j                  }g | _        |j                  | _        |j                  j                  t        d      t         |d      }t#        |t%        |t        d      |      t'        || j                  	      
      }| j)                  |       |j                  j*                  j-                  |       |S )Nmoduleautotestdictzautotestdict.allzautotestdict.cdef__test__public)
visibility)nameentry)key_value_pairs)lhsrhs)is_pxd
scope_type
scope_nodecurrent_directivesall_docstringscdef_docstrings
isinstancebodyr   scopeentriesposteststestsposdeclare_varr   r   r   r   r
   visitchildrenstatsappend)selfnoder/   test_dict_entrycreate_test_dict_assignments        Flib/python3.12/site-packages/Cython/Compiler/AnalysedTreeTransforms.pyvisit_ModuleNodez&AutoTestDictTransform.visit_ModuleNode   s.   ;;K"&&~6K"556HI#22bd6M6MNa6b$))\22 $**,,,Khh
**00{1K1?14<D 1 F ';3=#=.0djj9';# 	4 		:;    c                     | j                   }d||d   fz  }t        |t        |            }t        ||      }| j                  j	                  t        |||             y )Nz%s (line %d)r   )value)keyr>   )r1   r   r   r0   r5   r   )r6   testpospathdoctestr/   keystrr?   r>   s           r:   add_testzAutoTestDictTransform.add_test4   sV    mm D'!*#55#]6%:;Cw/

,s5ABr<   c                     |S )N )r6   r7   s     r:   visit_ExprNodez$AutoTestDictTransform.visit_ExprNode;   s	     r<   c                 l   |j                   rt        |t              r|j                  r|S | j                  st        |t
              r|j                  s|S | j                  sd|j                   vr|S | j                  }| j                  dk(  r|j                  j                  }ni| j                  dv rXt        |t
              r:|j                  |j                  j                  }n#|j                  j                  }n|j                  }| j                  dk(  r|| j                  v r|S | j                  dk(  r| j                  j                  }n| j                  j                  }t        |j                  j                  t         j"                        r]|j                  j                  j                  }|d|j                  j                  j                  d|j                  j                  }n|d|j                  j                  }nJ | j%                  |j&                  ||j                          |S )Nz>>>r   )pyclasscclassrJ   rI   .)docr+   r	   fused_py_funcr*   r   py_funcr)   r1   r&   r!   r    	blacklistr'   
class_namer-   r   PropertyScoperD   r/   )r6   r7   r/   rA   r    rP   property_method_names          r:   visit_FuncDefNodez'AutoTestDictTransform.visit_FuncDefNode@   s   xxJtW5$:L:LK##$-dll""uDHH'<Kmm??h&::??D__ 55$-<<+<<,,D::??Dyy(*tt~~/E)+!__11
!__77
$****F,@,@A'+zz'7'7'<'<$%/1A1A1F1F%)ZZ__6 #-djjoo>dhhdhh/r<   N)__name__
__module____qualname__rO   r;   rD   rG   rS   rF   r<   r:   r   r   
   s    ,I!FC
#r<   r   N)
__future__r   Visitorr   Nodesr   r   r   r	   	ExprNodesr
   r   r   r   
PyrexTypesr   StringEncodingr    r   r   rF   r<   r:   <module>r^      s/    & + L L D D & ) Y2 Yr<   