B
    '(b                 @   s   d Z ddlZddlmZ ddlmZmZmZmZm	Z	 ddl
mZ ddlmZmZ ddlmZ ddlmZ dd	lmZ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! ddl"m#Z# ddl$m%Z% dddgZ&G dd deZ'dS )zYTest cases for generating node-level dependencies (for fine-grained incremental checking)    N)defaultdict)ListTupleDictOptionalSet)DefaultDict)builddefaults)BuildSource)CompileError)MypyFile
Expression)Options)get_dependencies)test_temp_dir)DataDrivenTestCase	DataSuite)assert_string_arrays_equalparse_options)Type)	TypeState__main__pkgzpkg.modc            	   @   sd   e Zd ZddddddgZeddd	d
Zeeee	e e
eeef  e
eeef  f dddZdS )GetDependenciesSuitez	deps.testzdeps-types.testzdeps-generics.testzdeps-expressions.testzdeps-statements.testzdeps-classes.testN)testcasereturnc             C   sj  d |j}d|k}t||dd}|jdr6tj|_d|_d|_	t
j|_d|_d|_| ||\}}}|}|d ks||d kr|sdg}ntt}	xT|D ]L}
|
tks|r|
dkrt||
 ||j|}x|D ]}|	| ||  qW qW t|	 xTt|	 D ]D\}}|d	rq| d
d t| }|dd}|| qW t|j|d|j d|j d d S )N
z# __dump_all__   )Zincremental_stepZpython2TzCUnknown compile error (likely syntax error in test case or fixture))abctypingZmypy_extensionstyping_extensionsenum)z<enumz<typingz<mypyz -> z, r   mzInvalid output (z, line )) joininputr   nameendswithr
   ZPYTHON2_VERSIONpython_versionZuse_builtins_fixturesshow_tracebackosdevnull	cache_dirZexport_typesZpreserve_astsr	   r   setdumped_modulesr   updater   Zadd_all_protocol_depssorteditems
startswithreplaceappendr   outputfileline)selfr   srcZdump_alloptionsmessagesfilesZtype_mapadepsmoduleZnew_depssourcetargetsr8    rC   A/home/dcms/DCMS/lib/python3.7/site-packages/mypy/test/testdeps.pyrun_case#   s@    


zGetDependenciesSuite.run_case)rA   r;   r   c          
   C   sZ   yt j tdd |g|td}W n* tk
rH } z|jd d fS d }~X Y nX |j|j|jfS )Nmain)sourcesr;   Zalt_lib_path)r	   r   r   r   r<   errorsr=   types)r9   rA   r;   resulterC   rC   rD   r	   O   s    zGetDependenciesSuite.build)__name__
__module____qualname__r=   r   rE   strr   r   r   r   r   r   r   r   r	   rC   rC   rC   rD   r      s   -
r   )(__doc__r+   collectionsr   r    r   r   r   r   r   r!   r   Zmypyr	   r
   Zmypy.modulefinderr   Zmypy.errorsr   Z
mypy.nodesr   r   Zmypy.optionsr   Zmypy.server.depsr   Zmypy.test.configr   Zmypy.test.datar   r   Zmypy.test.helpersr   r   Z
mypy.typesr   Zmypy.typestater   r/   r   rC   rC   rC   rD   <module>   s"   
