a
    b                     @   s   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
 d
eZdS )    )absolute_import   )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)Z	__cinit__Z__dealloc__Z__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sRJ d|j	j
v rb|S |j}g | _|j| _|j	jtdt|dd}t|t|td|dt|| jd	d
}| | |jj| |S )NmoduleZautotestdictzautotestdict.allzautotestdict.cdefZ__test__public)Z
visibility)nameentry)Zkey_value_pairs)lhsrhs)Zis_pxd
scope_type
scope_nodeZcurrent_directivesall_docstringscdef_docstrings
isinstancebodyr   scopeentriesposteststestsposZdeclare_varr   r   r   r   r	   Zvisitchildrenstatsappend)selfnoder#   Ztest_dict_entryZcreate_test_dict_assignment r*   v/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/Cython/Compiler/AnalysedTreeTransforms.pyvisit_ModuleNode   s8    


z&AutoTestDictTransform.visit_ModuleNodec                 C   sL   | j }d||d f }t|t|d}t||d}| jt|||d d S )Nz%s (line %d)r   )value)keyr-   )r%   r   r   r$   r'   r
   )r(   Ztestpospathdoctestr#   Zkeystrr.   r-   r*   r*   r+   add_test4   s
    zAutoTestDictTransform.add_testc                 C   s   |S )Nr*   )r(   r)   r*   r*   r+   visit_ExprNode;   s    z$AutoTestDictTransform.visit_ExprNodec                 C   s8  |j rt|tr|jr|S | js4t|tr4|js4|S | jsHd|j vrH|S | j}| j	dkrb|j
j}n| j	dv rt|tr|jd ur|jj}q|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|j
jf }nd||j
jf }n
ds"J | |j||j  |S )	Nz>>>r   )pyclasscclassr4   r3   z%s.%s.%sz%s.%sF)docr   r   Zfused_py_funcr   r   Zpy_funcr   r%   r   r   r   	blacklistr   
class_namer!   r   ZPropertyScoper1   r#   )r(   r)   r#   r/   r   r7   Zproperty_method_namer*   r*   r+   visit_FuncDefNode@   s<    









z'AutoTestDictTransform.visit_FuncDefNodeN)__name__
__module____qualname__r6   r,   r1   r2   r8   r*   r*   r*   r+   r   
   s
   #r   N)
__future__r   ZVisitorr   ZNodesr   r   r   r   Z	ExprNodesr	   r
   r   r   Z
PyrexTypesr   ZStringEncodingr    r   r   r*   r*   r*   r+   <module>   s   