o
    7f                     @  s   d Z ddlmZ ddl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 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 ddlmZ g dZ G dd deZ!dS )zYTest cases for generating node-level dependencies (for fine-grained incremental checking)    )annotationsN)defaultdict)build)CompileError)BuildSource)
ExpressionMypyFile)Options)get_dependencies)test_temp_dir)DataDrivenTestCase	DataSuite)assert_string_arrays_equalfind_test_filesparse_options)Type)
type_state)__main__pkgzpkg.modc                   @  s*   e Zd ZeddZdddZdddZdS )GetDependenciesSuitez
deps*.test)patterntestcaser   returnNonec                 C  sT  d |j}d|v }t||dd}d|_d|_tj|_d|_d|_	d|_
| ||\}}}|}|d u s7|d u r=|s<dg}n[tt}	| D ]%\}
}|
tv sO|rj|
|jv rjt|||j|}|D ]}|	| ||  q^qEt|	 t|	 D ]!\}}|drqv| dd	 t| }|d
d}|| qvt|j|d|j d|j d d S )N
z# __dump_all__   )incremental_stepTzCUnknown compile error (likely syntax error in test case or fixture))z<enumz<typingz<mypyz<_typeshed.z -> z, r   mzInvalid output (z, line ))joininputr   use_builtins_fixturesshow_tracebackosdevnull	cache_direxport_typespreserve_astsallow_empty_bodiesr   r   setitemsdumped_modulestest_modulesr
   python_versionupdater   add_all_protocol_depssorted
startswithreplaceappendr   outputfileline)selfr   srcdump_alloptionsmessagesfilestype_mapadepsmoduler5   new_depssourcetargetsr6    rD   K/home/ertert/spirit/venv/lib/python3.10/site-packages/mypy/test/testdeps.pyrun_case   s@   

zGetDependenciesSuite.run_caserB   strr:   r	   Ktuple[list[str], dict[str, MypyFile] | None, dict[Expression, Type] | None]c              
   C  s`   zt j tdd |g|td}W n ty' } z|jd d fW  Y d }~S d }~ww |j|j|jfS )Nmain)sourcesr:   alt_lib_path)r   r   r   r   r;   errorsr<   types)r7   rB   r:   resulterD   rD   rE   r   A   s   
zGetDependenciesSuite.buildN)r   r   r   r   )rB   rG   r:   r	   r   rH   )__name__
__module____qualname__r   r<   rF   r   rD   rD   rD   rE   r      s    

&r   )"__doc__
__future__r   r#   collectionsr   mypyr   mypy.errorsr   mypy.modulefinderr   
mypy.nodesr   r   mypy.optionsr	   mypy.server.depsr
   mypy.test.configr   mypy.test.datar   r   mypy.test.helpersr   r   r   
mypy.typesr   mypy.typestater   r+   r   rD   rD   rD   rE   <module>   s"    