o
    2g                     @  s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZ ddlmZmZmZ dd	lmZ G d
d deZdddZdS )z!Identity AST transform test cases    )annotations)build)CompileError)BuildSource)test_temp_dir)DataDrivenTestCase	DataSuite)assert_string_arrays_equalnormalize_error_messagesparse_options)TypeAssertTransformVisitorc                   @  s&   e Zd ZdZg dZdZd
ddZd	S )TransformSuiteT)zsemanal-basic.testzsemanal-expressions.testzsemanal-classes.testzsemanal-types.testzsemanal-modules.testzsemanal-statements.testzsemanal-abstractclasses.testtestcaser   returnNonec                 C  s   t | d S )N)test_transform)selfr    r   O/home/garg/my-data/venv/lib/python3.10/site-packages/mypy/test/testtransform.pyrun_case   s   zTransformSuite.run_caseNr   r   r   r   )__name__
__module____qualname__required_out_sectionfiles
native_sepr   r   r   r   r   r      s
    	r   r   r   r   r   c           	   
   C  s  zWd | j}t|| d}d|_d|_d|_d|_tjtdd|g|t	d}|j
}|r/t|t|j D ]}|| jv rUt }d|_||j| }|||d7 }q6W n tyl } z	|j}W Y d}~nd}~ww | jrtt|}t| j|d| j d| j d	 dS )
z(Perform an identity transform test case.
   TmainN)sourcesoptionsalt_lib_pathz"Invalid semantic analyzer output (z, line ))joininputr   use_builtins_fixturessemantic_analysis_onlyshow_tracebackforce_uppercase_builtinsr   r   r   errorsr   sortedr   keystest_modulesr   	test_onlymypyfilestr_with_optionssplitmessagesnormalize_outputr
   r	   outputfileline)	r   srcr!   resultamoduletr5   er   r   r   r       s@   
r   Nr   )__doc__
__future__r   mypyr   mypy.errorsr   mypy.modulefinderr   mypy.test.configr   mypy.test.datar   r   mypy.test.helpersr	   r
   r   mypy.test.visitorsr   r   r   r   r   r   r   <module>   s    