o
    2g                     @  s   d Z ddlmZ ddlZddl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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  sj  d |j}d|v }t||dd}|jtjkrtd d|_d|_	t
j|_d|_d|_d|_| ||\}}}|}|d u sB|d u rH|sGdg}n[tt}	| D ]%\}
}|
tv sZ|ru|
|jv rut|||j|}|D ]}|	| ||  qiqPt|	 t|	 D ]!\}}|drq| d	d
 t| }|dd}|| qt|j|d|j  d|j! d d S )N
z# __dump_all__   )incremental_stepz)Test case requires a newer Python versionTzCUnknown 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   python_versionsysversion_infopytestskipuse_builtins_fixturesshow_tracebackosdevnull	cache_direxport_typespreserve_astsallow_empty_bodiesr   r   setitemsdumped_modulestest_modulesr
   updater   add_all_protocol_depssorted
startswithreplaceappendr   outputfileline)selfr   srcdump_alloptionsmessagesfilestype_mapadepsmoduler9   new_depssourcetargetsr:    rH   J/home/garg/my-data/venv/lib/python3.10/site-packages/mypy/test/testdeps.pyrun_case   sD   


zGetDependenciesSuite.run_caserF   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)r;   rF   r>   resulterH   rH   rI   r   F   s   
zGetDependenciesSuite.buildN)r   r   r   r   )rF   rK   r>   r	   r   rL   )__name__
__module____qualname__r   r@   rJ   r   rH   rH   rH   rI   r      s    

(r   )$__doc__
__future__r   r(   r"   collectionsr   r$   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   r0   r   rH   rH   rH   rI   <module>   s&    