o
    wi                     @   st   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 deZd	S )
   )ScopeTrackingTransform)StatListNodeSingleAssignmentNodeCFuncDefNodeDefNode)DictNodeDictItemNodeNameNodeUnicodeNode)py_object_type)EncodedString)Symtabc                   @   s4   e Zd Zg dZdd Zdd Zdd Zdd	 Zd
S )AutoTestDictTransform)	__cinit____dealloc____richcmp____nonzero____bool____len____contains__c                 C   s   |j r|S d| _|| _| jd s|S | jd | _| jp| jd | _t|jts)J d|j	j
v r1|S |j}g | _|j| _|j	jtdt|dd}t|t|td|dt|| jd	d
}| | |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_assignment r5   c/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/Cython/Compiler/AnalysedTreeTransforms.pyvisit_ModuleNode   s8   


z&AutoTestDictTransform.visit_ModuleNodec                 C   sR   | j }t| d|d dd}t||d}t||d}| jt|||d d S )Nz (line r   d))value)keyr:   )r,   r   r
   r+   r0   r   )r1   testpospathdoctestr*   keystrr;   r:   r5   r5   r6   add_test2   s
   zAutoTestDictTransform.add_testc                 C   s   |S )Nr5   )r1   r2   r5   r5   r6   visit_ExprNode9   s   z$AutoTestDictTransform.visit_ExprNodec                 C   s.  |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r1|j
j}n[| j	dv rt|trJ|jd urE|jj}n|j
j}n|j}| j	dkrY|| jv rY|S | j	dkrc| jj}n| jj}t|j
jtjr|j
jj}d||j
jj|j
jf }nd||j
jf }nJ | |j||j  |S )Nz>>>r   )pyclasscclassrC   rB   z%s.%s.%sz%s.%s)docr&   r   fused_py_funcr%   r   py_funcr$   r,   r!   r   r   excludelistr"   
class_namer(   r   PropertyScoper@   r*   )r1   r2   r*   r=   r   rH   property_method_namer5   r5   r6   visit_FuncDefNode>   s<   









z'AutoTestDictTransform.visit_FuncDefNodeN)__name__
__module____qualname__rG   r7   r@   rA   rK   r5   r5   r5   r6   r      s    #r   N)Visitorr   Nodesr   r   r   r   	ExprNodesr   r   r	   r
   
PyrexTypesr   StringEncodingr    r   r   r5   r5   r5   r6   <module>   s    