Ë
    pPêjá¨  ã                  ó˜  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	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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  ddl!m"Z"  G d„ d«      Z#e$e%e&f   Z'e(e'   Z)e*e%e$e$e+e+f   e$e+e+f   dz  f   f   Z,de-d<   ddgZ.de-d<   e G d„ de«      «       Z/e%e/z  Z0 G d„ d«      Z1 G d„ d«      Z2 G d„ d«      Z3	 	 	 	 	 	 	 	 	 	 d,d„Z4d-d „Z5ejl                  d.d!„«       Z7d/d"„Z8d0d#„Z9d1d$„Z:d2d%„Z;	 	 	 	 	 	 	 	 d3d&„Z<ejz                  d4d'„«       Z>	 d5	 	 	 	 	 	 	 	 	 d6d(„Z?d7d)„Z@d8d*„ZAd9d+„ZBy):zmLow-level infrastructure to find modules.

This builds on fscache.py; find_sources.py builds on top of this.
é    )ÚannotationsN)ÚEnumÚunique)ÚFinalÚ	TypeAlias)ÚGitIgnoreSpec)ÚGitIgnorePatternError)Úpyinfo)ÚCompileError)ÚFileSystemCache)ÚMypyFile)ÚOptions)Ústub_distribution_name)Úos_path_joinc                  ó0   — e Zd Z	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚSearchPathsc                ó”  — t        t        t        j                  j                  |«      «      | _        t        t        t        j                  j                  |«      «      | _        t        t        t        j                  j                  |«      «      | _        t        t        t        j                  j                  |«      «      | _        y ©N)	ÚtupleÚmapÚosÚpathÚabspathÚpython_pathÚ	mypy_pathÚpackage_pathÚtypeshed_path)Úselfr   r   r   r   s        úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/modulefinder.pyÚ__init__zSearchPaths.__init__    ss   € ô !¤¤R§W¡W§_¡_°kÓ!BÓCˆÔäœs¤2§7¡7§?¡?°IÓ>Ó?ˆŒä!¤#¤b§g¡g§o¡o°|Ó"DÓEˆÔä"¤3¤r§w¡w§¡¸Ó#FÓGˆÕó    c                ó`   — | j                   | j                  | j                  | j                  dœS )N©r   r   r   r   r#   ©r   s    r   ÚasdictzSearchPaths.asdict0   s.   € à×+Ñ+ØŸ™Ø ×-Ñ-Ø!×/Ñ/ñ	
ð 	
r!   N)
r   útuple[str, ...]r   r&   r   r&   r   r&   ÚreturnÚNone)r'   zdict[str, tuple[str, ...]])Ú__name__Ú
__module__Ú__qualname__r    r%   © r!   r   r   r      sB   „ ðHà$ðHð #ðHð &ð	Hð
 'ðHð 
óHô 
r!   r   Ú
_TypeAliasÚStdlibVersionsú.pyiú.pyr   ÚPYTHON_EXTENSIONSc                  ó$   — e Zd ZdZdZdZdZdd„Zy)ÚModuleNotFoundReasonr   é   é   é   c                ó*  — d}| t         j                  u r	d}|g}||fS | t         j                  u r	d}dg}||fS | t         j                  u r	d}|g}||fS | t         j                  u r-d}dg}|s|j                  d«       |j                  |«       ||fS J ‚)NzKSee https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-importszFCannot find implementation or library stub for module named "{module}"zOYou may be running mypy in a subpackage, mypy should be run on the package rootz`Skipping analyzing "{module}": module is installed, but missing library stubs or py.typed markerz*Library stubs not installed for "{module}"z*Hint: "python3 -m pip install {stub_dist}"zD(or run "mypy --install-types" to install all missing stub packages))r3   Ú	NOT_FOUNDÚWRONG_WORKING_DIRECTORYÚFOUND_WITHOUT_TYPE_HINTSÚAPPROVED_STUBS_NOT_INSTALLEDÚappend)r   ÚdaemonÚdoc_linkÚmsgÚnotess        r   Úerror_message_templatesz,ModuleNotFoundReason.error_message_templatesY   sÛ   € Ø`ˆØÔ'×1Ñ1Ñ1ØZˆCØ�JˆEð, �EˆzÐð+ Ô)×AÑAÑAØZˆCàaðˆEð& �EˆzÐð! Ô)×BÑBÑBð%ð ð �JˆEð �EˆzÐð Ô)×FÑFÑFØ>ˆCØAÐBˆEÙØ—‘ØZôð �L‰L˜Ô"ð �EˆzÐð �5r!   N)r=   Úboolr'   ztuple[str, list[str]])r)   r*   r+   r8   r:   r9   r;   rA   r,   r!   r   r3   r3   F   s&   „ ð €Ið  !Ðð  Ðð $%Ð ôr!   r3   c                  ó>   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚBuildSourcezA single source file.Nc                óR   — || _         |xs d| _        || _        || _        || _        y )NÚ__main__)r   ÚmoduleÚtextÚbase_dirÚfollowed)r   r   rG   rH   rI   rJ   s         r   r    zBuildSource.__init__~   s,   € ð ˆŒ	ØÒ* 
ˆŒØˆŒ	Ø ˆŒØ ˆ�r!   c                ó”   — dj                  | j                  | j                  | j                  d u| j                  | j
                  «      S )NzLBuildSource(path={!r}, module={!r}, has_text={}, base_dir={!r}, followed={}))Úformatr   rG   rH   rI   rJ   r$   s    r   Ú__repr__zBuildSource.__repr__Œ   s9   € àZ×aÑaØ—	‘	˜4Ÿ;™;¨¯	©	¸Ð(=¸t¿}¹}ÈdÏmÉmóð	
r!   )NNF)r   ú
str | NonerG   rN   rH   rN   rI   rN   rJ   rB   r'   r(   )r'   Ústr)r)   r*   r+   Ú__doc__r    rM   r,   r!   r   rD   rD   {   sT   „ Ùð  Ø#Øð!àð!ð ð!ð ð	!ð
 ð!ð ð!ð 
ó!ô
r!   rD   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚBuildSourceSetzIHelper to efficiently test a file's membership in a set of build sources.c                ó<  — d| _         i | _        t        «       | _        |D ]z  }|j                  �d| _         |j
                  r%| j                  j                  |j
                  «       |j                  sŒT|j
                  xs d| j                  |j                  <   Œ| y )NFTÚ )Úsource_text_presentÚsource_modulesÚsetÚsource_pathsrH   r   ÚaddrG   )r   ÚsourcesÚsources      r   r    zBuildSourceSet.__init__—   s‚   € Ø#(ˆÔ Ø.0ˆÔÜ&)£eˆÔàò 	GˆFØ�{‰{Ð&Ø+/�Ô(Ø�{Š{Ø×!Ñ!×%Ñ% f§k¡kÔ2Ø�}‹}Ø5;·[±[Ò5FÀB�×#Ñ# F§M¡MÒ2ñ	Gr!   c                óž   — |j                   xr |j                   | j                  v xs& |j                  | j                  v xs | j                  S r   )r   rX   Ú	_fullnamerV   rU   )r   Úfiles     r   Ú	is_sourcezBuildSourceSet.is_source¤   sG   € à�Y‰YÒ9˜4Ÿ9™9¨×(9Ñ(9Ð9ò (Ø�~‰~ ×!4Ñ!4Ð4ò(à×'Ñ'ð	
r!   N)rZ   úlist[BuildSource]r'   r(   )r^   r   r'   rB   )r)   r*   r+   rP   r    r_   r,   r!   r   rR   rR   ”   s   „ ÙSóGô
r!   rR   c                  óž   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd	œdd
„Z	dd„Z
	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zy)ÚFindModuleCacheaK  Module finder with integrated cache.

    Module locations and some intermediate results are cached internally
    and can be cleared with the clear() method.

    All file system accesses are performed through a FileSystemCache,
    which is not ever cleared by this class. If necessary it must be
    cleared by client code.
    Nc                óÆ   — || _         || _        |xs
 t        «       | _        i | _        i | _        i | _        || _        d }|r|j                  }|xs t        |«      | _
        y r   )Úsearch_pathsÚ
source_setr   ÚfscacheÚinitial_componentsÚresultsÚns_ancestorsÚoptionsÚcustom_typeshed_dirÚload_stdlib_py_versionsÚstdlib_py_versions)r   rd   rf   rj   rm   re   rk   s          r   r    zFindModuleCache.__init__·   sq   € ð )ˆÔØ$ˆŒØÒ3¤/Ó"3ˆŒð PRˆÔà68ˆŒØ,.ˆÔØˆŒØ"ÐÙØ")×"=Ñ"=ÐØ"4ò #
Ô8OØó9
ˆÕr!   c                ó    — | j                   j                  «        | j                  j                  «        | j                  j                  «        y r   )rh   Úclearrg   ri   r$   s    r   ro   zFindModuleCache.clearÐ   s6   € Ø�‰×ÑÔØ×Ñ×%Ñ%Ô'Ø×Ñ×ÑÕ!r!   c                óò  ‡ ‡‡— ‰ j                   sy‰ j                   j                  j                  |d«      }|r•‰ j                  j	                  |«      rzt
        j                  j                  |«      Št        |j                  d«      «      D ]<  }t        ˆˆ fd„t        D «       «      s yt
        j                  j                  ‰«      ŠŒ> |S |j                  d«      }|dk7  r”‰ j                  |d| «      Š‰�t        ‰t        «      syt
        j                  j!                  ‰«      \  }}t        ˆfd„t        D «       «      s3|t        v r+‰ j                  j#                  |«      st$        j&                  S y)z’Fast path to find modules by looking through the input sources

        This is only used when --fast-module-lookup is passed on the command line.Nú.c              3  ón   •K  — | ],  }‰j                   j                  t        ‰d |z   «      «      –— Œ. y­w©r    N)rf   Úisfiler   )Ú.0ÚxÚdr   s     €€r   ú	<genexpr>z=FindModuleCache.find_module_via_source_set.<locals>.<genexpr>ä   s0   øè ø€ ò ØMN�D—L‘L×'Ñ'¬°Q¸
ÀQ¹Ó(G×Hñùs   ƒ25éÿÿÿÿc              3  óF   •K  — | ]  }‰j                  d |z   «      –— Œ y­wrs   )Úendswith)ru   rv   Úparents     €r   rx   z=FindModuleCache.find_module_via_source_set.<locals>.<genexpr>ô   s   øè ø€ ÒR¸1�v—‘ z°A¡~×6ÑRùs   ƒ!)re   rV   Úgetrf   rt   r   r   ÚdirnameÚrangeÚcountÚanyr1   ÚrfindÚfind_module_via_source_setÚ
isinstancerO   ÚsplitextÚisdirr3   r8   )	r   ÚidÚpÚ_ÚidxÚbasenameÚextrw   r|   s	   `      @@r   rƒ   z*FindModuleCache.find_module_via_source_setÕ   s1  ú€ ð �ŠØà�O‰O×*Ñ*×.Ñ.¨r°4Ó8ˆÙ�—‘×$Ñ$ QÔ'ô
 —‘—‘ Ó"ˆAÜ˜2Ÿ8™8 C›=Ó)ò '�Üô ÜRcôô ñ  Ü—G‘G—O‘O AÓ&‘ð'ð ˆHà�h‰h�s‹mˆØ�"Š9ð ×4Ñ4°R¸¸°XÓ>ˆFØˆ~¤Z°¼Ô%<ØäŸG™G×,Ñ,¨VÓ4‰MˆH�cÜÓRÔ@QÔRÔRØÔ(Ñ(°·±×1CÑ1CÀHÔ1Mô ,×5Ñ5Ð5Ør!   c                ó$  — |j                  d«      }t        j                  j                  |dd «      }g }| j	                  ||d   «      D ]B  }|rt        ||«      }n|}| j                  j                  |«      sŒ0|j                  |df«       ŒD |S )zMFind which elements of a lib_path have the directory a module needs to exist.rq   Nry   r   T)	Úsplitr   ÚsepÚjoinÚget_toplevel_possibilitiesr   rf   r†   r<   )r   r‡   Úlib_pathÚ
componentsÚ	dir_chainÚdirsÚpathitemÚdirs           r   Úfind_lib_path_dirsz"FindModuleCache.find_lib_path_dirs  s‰   € à—X‘X˜c“]ˆ
Ü—F‘F—K‘K 
¨3¨B Ó0ˆ	àˆØ×7Ñ7¸À*ÈQÁ-ÓPò 	)ˆHáÜ" 8¨YÓ7‘à�Ø�|‰|×!Ñ! #Õ&Ø—‘˜S $˜KÕ(ð	)ð ˆr!   c                óž  — || j                   v r| j                   |   j                  |g «      S i }|D ]h  }	 | j                  j                  |«      }|D ]E  }t
        j                  j                  |«      d   }|j                  |g «      j                  |«       ŒG Œj || j                   |<   |j                  |g «      S # t        $ r g }Y Œzw xY w)aÙ  Find which elements of lib_path could contain a particular top-level module.

        In practice, almost all modules can be routed to the correct entry in
        lib_path by looking at just the first component of the module name.

        We take advantage of this by enumerating the contents of all of the
        directories on the lib_path and building a map of which entries in
        the lib_path could contain each potential top-level module that appears.
        r   )
rg   r}   rf   ÚlistdirÚOSErrorr   r   r…   Ú
setdefaultr<   )r   r’   r‡   r“   r—   ÚcontentsÚnames          r   r‘   z*FindModuleCache.get_toplevel_possibilities  sÝ   € ð �t×.Ñ.Ñ.Ø×*Ñ*¨8Ñ4×8Ñ8¸¸RÓ@Ð@ð ,.ˆ
Øò 
	<ˆCðØŸ<™<×/Ñ/°Ó4�ð !ò <�Ü—w‘w×'Ñ'¨Ó-¨aÑ0�Ø×%Ñ% d¨BÓ/×6Ñ6°sÕ;ñ<ð
	<ð -7ˆ×Ñ Ñ)Ø�~‰~˜b "Ó%Ð%øô ò Ø’ðús   ¶B>Â>CÃCF©Ú	fast_pathc               ó  — || j                   vrñ|j                  d«      d   }d}|| j                  v r| j                  |«      }n|| j                  v r| j                  |«      }| j	                  ||«      \  }}|rƒ|sc| j
                  �| j
                  j                  sA|t        j                  u r/| j                  |«      rt        j                  | j                   |<   n|| j                   |<   | j                   |   S |S | j                   |   S )zµReturn the path of the module source file or why it wasn't found.

        If fast_path is True, prioritize performance over generating detailed
        error descriptions.
        rq   r   T)rh   Ú	partitionrm   Ú_typeshed_has_versionÚ_find_modulerj   Úfast_module_lookupr3   r8   Ú_can_find_module_in_parent_dirr9   )r   r‡   r    Ú	top_levelÚuse_typeshedÚresultÚshould_caches          r   Úfind_modulezFindModuleCache.find_module5  sú   € ð �T—\‘\Ñ!ØŸ™ SÓ)¨!Ñ,ˆIØˆLØ�T×,Ñ,Ñ,Ø#×9Ñ9¸"Ó=‘Ø˜d×5Ñ5Ñ5Ø#×9Ñ9¸)ÓD�Ø#'×#4Ñ#4°R¸Ó#FÑ ˆF�LÙñ " d§l¡lÐ&>À4Ç<Á<×CbÒCbàÔ"6×"@Ñ"@Ñ@Ø×;Ñ;¸BÔ?ä';×'SÑ'S�D—L‘L Ò$à'-�D—L‘L Ñ$Ø—|‘| BÑ'Ð'à�Ø�|‰|˜BÑÐr!   c                óŽ   — | j                   syt        | j                   «      }| j                  |   \  }}||k\  xr |d u xs ||k  S )NT)rj   Útypeshed_py_versionrm   )r   rG   ÚversionÚmin_versionÚmax_versions        r   r£   z%FindModuleCache._typeshed_has_versionS  sN   € Ø�|Š|ØÜ% d§l¡lÓ3ˆØ#'×#:Ñ#:¸6Ñ#BÑ ˆ�[Ø˜+Ñ%ÒY¨;¸$Ð+>Ò+XÀ'È[ÑBXÐYr!   c                ó°  — d}|}|j                  d«      }t        |«      D ]º  \  }}t        ||«      }| j                  j	                  t        |d«      «      r*t        j                  j                  |g|d d ¢­Ž |dk(  fc S |s;| j                  j                  |«      s| j                  j	                  |dz   «      rd}| j                  j                  |«      rŒº n |rh| j                  rL| j                  j                  |«      }|j                  r%t        j                  j                  |g|d d ¢­Ž dfS t        j                  S t        j                  S )NFrq   úpy.typedry   r   r0   T)rŽ   Ú	enumerater   rf   rt   r   r   r�   r†   rj   Úclone_for_moduleÚfollow_untyped_importsr3   r:   r8   )	r   r‡   Úpkg_dirÚplausible_matchÚdir_pathr“   ÚindexÚ	componentÚmodule_specific_optionss	            r   Ú_find_module_non_stub_helperz,FindModuleCache._find_module_non_stub_helperZ  s*  € ð  ˆØˆØ—X‘X˜c“]ˆ
Ü )¨*Ó 5ò 
	ÑˆE�9Ü# H¨iÓ8ˆHØ�|‰|×"Ñ"¤<°¸*Ó#EÔFÜ—w‘w—|‘| GÐ>¨j¸¸"¨oÒ>ÀÈÁ
ÐJÒJÙ$Ø—‘×"Ñ" 8Ô,°·±×0CÑ0CÀHÈuÑDTÔ0Uà"&�à—<‘<×%Ñ% hÕ/Ùð
	ñ Ø�|Š|Ø*.¯,©,×*GÑ*GÈÓ*KÐ'Ø*×AÒAÜŸ7™7Ÿ<™<¨ÐB°*¸S¸b°/ÒBÀEÐIÐIÜ'×@Ñ@Ð@ä'×1Ñ1Ð1r!   c                ó  — |\  }}t        dt        |«      «      D ]n  }dj                  |d |  «      }|| j                  vr*| j                  j                  |«      r|| j                  |<   t        j                  j                  |«      }Œp y )Nr4   rq   )	r   Úlenr�   ri   rf   r†   r   r   r~   )r   r“   Úmatchr   ÚverifyÚiÚpkg_ids          r   Ú_update_ns_ancestorsz$FindModuleCache._update_ns_ancestorst  s|   € Ø‰ˆˆfÜ�qœ#˜j›/Ó*ò 	)ˆAØ—X‘X˜j¨¨1¨"˜oÓ.ˆFØ˜T×.Ñ.Ñ.°4·<±<×3EÑ3EÀdÔ3KØ,0�×!Ñ! &Ñ)Ü—7‘7—?‘? 4Ó(‰Dñ		)r!   c                óâ  — t        j                  «       }t        t        dddd«      | j                  | j
                  | j                  ¬«      }t        d„ t        j                  |«      D «       «      r}t         j                  j                  |«      }t        |fddd«      |_        t        |j                  |d«      d   t        «      syt        d„ t        j                  |«      D «       «      rŒ}y)zsTest if a module can be found by checking the parent directories
        of the current working directory.
        r,   )rm   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Úis_init_file)ru   r^   s     r   rx   zAFindModuleCache._can_find_module_in_parent_dir.<locals>.<genexpr>‡  s   è ø€ ÒI¨”,˜t×$ÑIùs   ‚Fr   T)r   Úgetcwdrb   r   rf   rj   rm   r�   rš   r   r~   rd   r„   r¤   r3   )r   r‡   Úworking_dirÚparent_searchs       r   r¦   z.FindModuleCache._can_find_module_in_parent_dir|  s¼   € ô —i‘i“kˆÜ'Ü˜˜B  BÓ'Ø�L‰LØ�L‰LØ#×6Ñ6ô	
ˆô ÑI´·±¸KÓ1HÔIÔIÜŸ'™'Ÿ/™/¨+Ó6ˆKÜ)4°k°^ÀRÈÈRÓ)PˆMÔ&Ü˜m×8Ñ8¸¸UÓCÀAÑFÔH\Ô]Øô	 ÑI´·±¸KÓ1HÔIÕIð
 r!   c           
     óŠ  — | j                   }| j                  �'| j                  j                  r| j                  |«      nd}|r|dfS |j	                  d«      }t
        j                  j                  |dd «      }g }g }d}	|d   |d   dz   fD �
�ch c]2  }
| j                  |
| j                  j                  «      D ]  }|d   ’Œ	 Œ4 }}
}d}| j                  j                  D �]p  }||vrŒ	|d   dz   }t        ||«      }|j                  |«      rät        |d«      }|g|d	d z   }t        j                  j                  |g|dd ¢­Ž }|j                  |«      r›|j                  |«      rw|j                  |«      j!                  «       j#                  «       d
k(  r3t        ||«      }|j%                  |df«       |j%                  |df«       n'|j%                  |df«       n|j%                  |df«       | j'                  ||«      }t)        |t*        «      r|t*        j,                  u s�ŒHd}	d}�ŒN|j%                  |«       | j/                  ||«       �Œs | j                  r8| j                  j0                  r"|j3                  «        |j3                  «        d}	| j                  j4                  | j                  j6                  z   }| j                  ||«      }|r)|| j                  || j                  j8                  «      z  }|||z   z  }t
        j                  |d   z   }t
        j                  dz   }g }|D �]Š  \  }}||z   }d}|}t;        t=        |«      d	z
  «      D ]!  } t
        j                  j?                  |«      }Œ# |› d|› d�}!|jA                  |!|«      r*|r"tC        |||!|«      s|j%                  |!|f«       n|!dfc S tD        D ]J  }"||z   |"z   }|jA                  ||«      sŒd}|r"tC        ||||«      s|j%                  ||f«       ŒD|dfc c S  | j                  rO| j                  jF                  r9|s7|jI                  ||«      r%|jA                  ||«      s|j%                  ||f«       tD        D ]E  }"||"z   }|jA                  ||«      sŒ|r"tC        ||||«      s|j%                  ||f«       Œ?|dfc c S  �Œ� | j                  r\| j                  jF                  rF|rD|D ��cg c]  \  }}tK        ||||«      ‘Œ }#}}|#jM                  tO        |#«      «      }$||$   d   dfS | jP                  jS                  |«      }%|%�|%dfS tU        |«      }&|&rµt=        |«      d	k(  rt*        jV                  dfS t;        d	t=        |«      «      D ]&  }'dj                  |d|' «      }(tU        |(«      |&k(  sŒ& n t*        jV                  dfS | jY                  |(«      t*        jV                  u rt*        jV                  dfS t*        jZ                  dfS |	rt*        j,                  |fS t*        jZ                  dfS c c}}
w c c}}w )zwTry to find a module in all available sources.

        Returns:
            ``(result, can_be_cached)`` pair.
        NTrq   ry   Fr   z-stubsr²   r4   Úpartialr    r/   ).rf   rj   r¥   rƒ   rŽ   r   r�   r�   r˜   rd   r   r   r†   r   rt   ÚreadÚdecodeÚstripr<   r¼   r„   r3   r:   rÃ   Úuse_builtins_fixturesro   r   r   r   r   r¾   r~   Úisfile_caseÚverify_moduler1   Únamespace_packagesÚexists_caseÚhighest_init_levelr¹   Úmaxri   r}   r   r;   r«   r8   ))r   r‡   r¨   rf   rˆ   r“   r”   Úthird_party_inline_dirsÚthird_party_stubs_dirsÚ-found_possible_third_party_missing_type_hintsrº   Úpackage_dirÚcandidate_package_dirsÚcan_cache_any_resultr¶   Ú	stub_nameÚstub_dirÚstub_typed_fileÚstub_componentsr   Úruntime_pathÚnon_stub_matchÚpython_mypy_pathÚcandidate_base_dirsÚseplastÚsepinitÚnear_missesrI   rÀ   Ú	base_pathÚhas_initÚ
dir_prefixr‰   Ú
path_stubsÚ	extensionÚlevelsr¹   ÚancestorÚapproved_dist_namerÁ   Ú	parent_ids)                                            r   r¤   zFindModuleCache._find_moduleŽ  sr  € ð —,‘,ˆð> —‘Ð(¨T¯\©\×-LÒ-Lð ×+Ñ+¨BÔ/àð 	
ñ
 Ø�d�7ˆNð —X‘X˜c“]ˆ
Ü—F‘F—K‘K 
¨3¨B Ó0ˆ	ð 02ÐØ.0ÐØ8=Ð5ð )¨™m¨Z¸©]¸XÑ-EÐF÷"
àØ#×6Ñ6°yÀ$×BSÑBS×B`ÑB`Óaò"
ð ð ˜‹Nð"
Øð"
Ðñ "
ð  $ÐØ×(Ñ(×5Ñ5ó "	FˆGØÐ4Ñ4ØØ" 1™¨Ñ0ˆIÜ# G¨YÓ7ˆHØ�}‰}˜XÔ&Ü".¨x¸Ó"D�Ø#, +°
¸1¸2°Ñ">�Ü—w‘w—|‘| GÐC¨o¸c¸rÐ.BÒC�Ø—=‘= Ô&Ø—~‘~ oÔ6ð
 #Ÿ<™<¨Ó8×?Ñ?ÓA×GÑGÓIÈYÒVÜ+7¸ÀÓ+K˜LØ3×:Ñ:¸LÈ$Ð;OÔPð 3×9Ñ9¸4À¸-ÕHð 3×9Ñ9¸4À¸,ÕGà.×5Ñ5°t¸T°lÔCØ!×>Ñ>¸rÀ7ÓKˆNÜ˜.Ô*>Ô?Ø!Ô%9×%RÑ%RÓRØDHÐAØ+0Ò(à'×.Ñ.¨~Ô>Ø×)Ñ)¨*°nÖEðE"	FðH �<Š<˜DŸL™L×>Ò>à#×)Ñ)Ô+Ø"×(Ñ(Ô*Ø<AÐ9Ø×,Ñ,×6Ñ6¸×9JÑ9J×9VÑ9VÑVÐØ"×5Ñ5°bÐ:JÓKÐÙð   4×#:Ñ#:¸2¸t×?PÑ?P×?^Ñ?^Ó#_Ñ_ÐØÐ5Ð8OÑOÑOÐô —&‘&˜: b™>Ñ)ˆÜ—&‘&˜:Ñ%ˆØˆØ 3ó )	&ÑˆH�fØ  7Ñ*ˆIØˆHØ!ˆJÜœ3˜z›?¨QÑ.Ó/ò 9�ÜŸW™WŸ_™_¨ZÓ8‘
ð9ð &˜; f¨W¨I°TÐ:ˆJØ×"Ñ" :¨zÔ:Ù¤-°¸¸ZÈÔ"TØ×&Ñ&¨
°JÐ'?Õ@à% tÐ+Ò+ô /ò &�	Ø  7Ñ*¨YÑ6�Ø×&Ñ& t¨ZÕ8Ø#�HÙ¤m°G¸RÀÀzÔ&RØ#×*Ñ*¨D°*Ð+=Ô>Ø Ø ˜:Ô%ð&ð �|Š| §¡× ?Ò ?á Ø×+Ñ+¨I°zÔBØ#×/Ñ/°	¸:ÔFà×&Ñ&¨	°:Ð'>Ô?ô /ò &�	Ø  9Ñ,�Ø×&Ñ& t¨ZÕ8Ù¤m°G¸RÀÀzÔ&RØ#×*Ñ*¨D°*Ð+=Ô>Ø Ø ˜:Ô%ò&ðG)	&ð@ �<Š<˜DŸL™L×;Ò;Áð )4÷á$�D˜*ô # 7¨B°°jÕAðˆFñ ð —L‘L¤ V£Ó-ˆEØ˜uÑ% aÑ(¨$Ð.Ð.ð ×$Ñ$×(Ñ(¨Ó,ˆØÐØ˜T�>Ð!ä3°BÓ7ÐÙÜ�:‹ !Ò#Ü+×HÑHÈ$ÐNÐNô ˜1œc *›oÓ.ò O�ØŸH™H Z°° ^Ó4�	Ü)¨)Ó4Ð8JÓJÙðOô
 ,×HÑHÈ$ÐNÐNØ×Ñ 	Ó*Ô.B×._Ñ._Ñ_Ü+×HÑHÈ$ÐNÐNÜ'×1Ñ1°4Ð7Ð7á8Ü'×@Ñ@ÐBVÐVÐVÜ#×-Ñ-¨tÐ3Ð3ùóG"
ùóDs   Â7X9Ó1X?c                ól  — | j                  |d¬«      }t        |t        «      rg S t        ||d «      g}d }t	        |«      r t
        j                  j                  |«      }n| j                  j                  |«      r|}|€|S t        «       }t        | j                  j                  |«      «      }|D �]þ  }|dv s|j                  d«      rŒt        ||«      }| j                  rDt!        || j                  j"                  | j                  | j                  j$                  dk\  «      rŒv| j                  rE| j                  j&                  r/t)        || j                  | j                  j$                  dk\  «      rŒÇ| j                  j                  |«      r§| j                  r| j                  j*                  sL| j                  j-                  t        |d«      «      s'| j                  j-                  t        |d«      «      s�ŒP|j/                  |«       |j1                  | j3                  |dz   |z   «      «       �Œ‰t
        j                  j5                  |«      \  }	}
|	dk(  r�Œ²|	|vs�Œ¸d|	vs�Œ¾|
t6        v s�ŒÈ|j/                  |	«       |j1                  | j3                  |dz   |	z   «      «       �Œ |S )	NTrŸ   )Ú__pycache__zsite-packagesÚnode_modulesrq   r5   ú__init__.pyú__init__.pyir    )r«   r„   r3   rD   rÆ   r   r   r~   rf   r†   rW   Úsortedrš   Ú
startswithr   rj   Úmatches_excludeÚexcludeÚ	verbosityÚexclude_gitignoreÚmatches_gitignorerÒ   rt   rY   ÚextendÚfind_modules_recursiver…   r1   )r   rG   Úmodule_pathrZ   r   ÚseenÚnamesrž   ÚsubpathÚstemÚsuffixs              r   rý   z&FindModuleCache.find_modules_recursivek  s2  € Ø×&Ñ& v¸Ð&Ó>ˆÜ�kÔ#7Ô8ØˆIÜ˜{¨F°DÓ9Ð:ˆàˆÜ˜Ô$ÜŸ7™7Ÿ?™?¨;Ó7‰LØ�\‰\×Ñ Ô,Ø&ˆLØÐØˆNô ›ˆÜ�t—|‘|×+Ñ+¨LÓ9Ó:ˆØó !	UˆDàÐGÑGÈ4Ï?É?Ð[^ÔK_ØÜ" <°Ó6ˆGà�|Š|¤Ø˜Ÿ™×-Ñ-¨t¯|©|¸T¿\¹\×=SÑ=SÐWXÑ=Xô!ð à—’Ø—L‘L×2Ò2Ü% g¨t¯|©|¸T¿\¹\×=SÑ=SÐWXÑ=XÔYàà�|‰|×!Ñ! 'Ô*à—L’L T§\¡\×%DÒ%DØ—L‘L×'Ñ'¬°W¸mÓ(LÔMØ—|‘|×*Ñ*¬<¸ÀÓ+PÖQà—H‘H˜T”NØ—N‘N 4×#>Ñ#>¸vÈ¹|ÈdÑ?RÓ#SÖTä!Ÿw™w×/Ñ/°Ó5‘��fØ˜:Ò%ÙØ˜tÓ#¨°4«¸FÔFWÓ<Wð —H‘H˜T”NØ—N‘N 4×#>Ñ#>¸vÈ¹|ÈdÑ?RÓ#SÖTðC!	UðD ˆr!   )NN)rd   r   rf   zFileSystemCache | Nonerj   zOptions | Nonerm   zStdlibVersions | Nonere   zBuildSourceSet | Noner'   r(   )r'   r(   )r‡   rO   r'   zModuleSearchResult | None)r‡   rO   r’   r&   r'   ÚPackageDirs)r’   r&   r‡   rO   r'   ú	list[str])r‡   rO   r    rB   r'   ÚModuleSearchResult)rG   rO   r'   rB   )r‡   rO   r¶   rO   r'   z$OnePackageDir | ModuleNotFoundReason)r“   r  r¿   ztuple[str, bool]r'   r(   )r‡   rO   r'   rB   )r‡   rO   r¨   rB   r'   ztuple[ModuleSearchResult, bool])rG   rO   r'   r`   )r)   r*   r+   rP   r    ro   rƒ   r˜   r‘   r«   r£   r¼   rÃ   r¦   r¤   rý   r,   r!   r   rb   rb   ¬   s¦   „ ñð 59Ø,0ð
à!ð
ð (ð
ð  ð	
ð
 2ð
ð *ð
ð 
ó
ó2"ó
/óbó &ð> 9>õ  ó<Zð2Øð2Ø #ð2à	-ó2ó4)óó$[4ôz7r!   rb   c                ó  — |syt         j                  j                  | «      j                  t         j                  d«      }|j                  | «      r|dz  }|D ]?  }	 t        j                  ||«      r&|r"t        d|› d|› d�t        j                  ¬«        yŒA y# t        j                  $ rO}t        d|› d	|› �d
|v rdndz   dz   dz   t        j                  ¬«       t        j                  d«       Y d }~Œ d }~ww xY w)NFú/úTRACE: Excluding z (matches pattern ú)©r^   Tzerror: The exclude z, is an invalid regular expression, because: ú\z>
(Hint: use / as a path separator, even if you're on Windows!)rT   z7
For more information on Python's flavor of regex, see:z* https://docs.python.org/3/library/re.htmlr5   )r   r   ÚrelpathÚreplacer�   r†   ÚreÚsearchÚprintÚsysÚstderrÚerrorÚexit)r  Úexcludesrf   ÚverboseÚsubpath_strrø   Úes          r   r÷   r÷   ¥  s  € ñ ØÜ—'‘'—/‘/ 'Ó*×2Ñ2´2·6±6¸3Ó?€KØ‡}�}�WÔØ�sÑˆØò ˆð	Ü�y‰y˜ +Ô.ÙÜØ+¨K¨=Ð8JÈ7È)ÐSTÐUÜ ŸZ™Zõñ ð /ðð, øô �x‰xò 	ÜØ% g YÐ.ZÐ[\ÐZ]Ð^ð ˜w‘ñ Vàñ	ð MñMð ?ñ?ô —Z‘Zõ
ô �H‰H�Q�K‰Kûð	ús   Á:BÂC>Â/AC9Ã9C>c                óF  — t         j                  j                  | «      \  }}t        |«      D ]q  \  }}t         j                  j	                  | |«      }|j                  |«      r|dz   }|j                  |«      sŒN|r!t        d|› d|› �t        j                  ¬«        y y)Nr  r	  z (matches .gitignore) in r  TF)
r   r   rŽ   Úfind_gitignoresr  r†   Ú
match_filer  r  r  )r  rf   r  r—   r‰   Úgi_pathÚgi_specÚrelative_paths           r   rû   rû   Æ  s—   € Ü�W‰W�]‰]˜7Ó#�F€CˆÜ+¨CÓ0ò 
Ñˆ�ÜŸ™Ÿ™¨°Ó9ˆØ�=‰=˜Ô'Ø)¨CÑ/ˆMØ×Ñ˜mÕ,ÙÜØ'¨ Ð6OÐPWÈyÐYÜŸ™õñ ð
ð r!   c                óÊ  — t         j                  j                  | «      }|| k(  s=t         j                  j                  t         j                  j	                  | d«      «      r‚g }t         j                  j	                  | ddd«      }t         j                  j                  |«      rJt        |«      5 }|j                  «       }d d d «       	 | t        j                  d«      fg}nt        |«      }t         j                  j	                  | d«      }t         j                  j                  |«      rAt        |«      5 }|j                  «       }d d d «       	 || t        j                  d«      fgz   S |S # 1 sw Y   Œ±xY w# t        $ r! t        d|› �t        j                  ¬«       Y Œ·w xY w# 1 sw Y   ŒaxY w# t        $ r# t        d|› �t        j                  ¬«       |cY S w xY w)Nz.gitÚinforø   Ú	gitignorezerror: could not parse r  z
.gitignore)r   r   r~   Úexistsr�   rt   ÚopenÚ	readlinesr   Ú
from_linesr	   r  r  r  r  )r—   Ú
parent_dirÚparent_gitignoresÚgit_info_excludeÚfÚexclude_linesr"  Úliness           r   r  r  Ö  s•  € ä—‘—‘ Ó%€JØ�SÒœBŸG™GŸN™N¬2¯7©7¯<©<¸¸VÓ+DÔEØÐÜŸ7™7Ÿ<™<¨¨V°V¸YÓGÐÜ�7‰7�>‰>Ð*Ô+ÜÐ&Ó'ð .¨1Ø !§¡£�÷.ðUØ&)¬=×+CÑ+CÀKÐQ^Ó+_Ð%`Ð$aÑ!ô ,¨JÓ7Ðä—‘—‘˜S ,Ó/€IÜ	‡w�w‡~�~�iÔ Ü�)‹_ð 	" Ø—K‘K“MˆE÷	"ð	%Ø$¨¬m×.FÑ.FÀ{ÐTYÓ.ZÐ([Ð'\Ñ\Ð\ð Ð÷%.ð .ûô )ò UÜÐ/Ð0@Ð/AÐBÌÏÉ×TðUú÷	"ð 	"ûô %ò 	%ÜÐ+¨I¨;Ð7¼c¿j¹jÕIØ$Ò$ð	%ús<   Â0E1Ã
E= Ä9F*ÅF6 Å1E:Å='F'Æ&F'Æ*F3Æ6)G"Ç!G"c                óD   — t         j                  j                  | «      dv S )N)ró   rô   )r   r   r‹   )r   s    r   rÆ   rÆ   ò  s   € Ü�7‰7×Ñ˜DÓ!Ð%DÐDÐDr!   c                ó  ‡ ‡‡— t        ‰«      rt        j                  j                  ‰«      Št	        |j                  d«      «      D ]=  }t        j                  j                  ‰«      Št        ˆ ˆˆfd„t        D «       «      rŒ= y y)z;Check that all packages containing id have a __init__ file.rq   c              3  ó\   •K  — | ]#  }‰j                  t        ‰d |› �«      ‰«      –— Œ% y­wrs   ©rÐ   r   ©ru   rë   rf   r   Úprefixs     €€€r   rx   z verify_module.<locals>.<genexpr>ü  s4   øè ø€ ò 
àð ×Ñ¤¨T°X¸i¸[Ð3IÓ JÈF×Sñ
ùó   ƒ),FT©rÆ   r   r   r~   r   r€   r�   r1   )rf   r‡   r   r2  rÁ   s   ` `` r   rÑ   rÑ   ö  sj   ú€ ä�DÔÜ�w‰w�‰˜tÓ$ˆÜ�2—8‘8˜C“=Ó!ò ˆÜ�w‰w�‰˜tÓ$ˆÜõ 
ä.ô
õ 
ñ ðð r!   c                ó   ‡ ‡‡— t        ‰«      rt        j                  j                  ‰«      Šd}t	        |j                  d«      «      D ]A  }t        j                  j                  ‰«      Št        ˆ ˆˆfd„t        D «       «      sŒ=|dz   }ŒC |S )z:Compute the highest level where an __init__ file is found.r   rq   c              3  ó\   •K  — | ]#  }‰j                  t        ‰d |› �«      ‰«      –— Œ% y­wrs   r0  r1  s     €€€r   rx   z%highest_init_level.<locals>.<genexpr>  s4   øè ø€ ò 
àð ×Ñ¤¨T°X¸i¸[Ð3IÓ JÈF×Sñ
ùr3  r4   r4  )rf   r‡   r   r2  ÚlevelrÁ   s   ` ``  r   rÔ   rÔ     sw   ú€ ä�DÔÜ�w‰w�‰˜tÓ$ˆØ€EÜ�2—8‘8˜C“=Ó!ò ˆÜ�w‰w�‰˜tÓ$ˆÜõ 
ä.ô
õ 
ð ˜‘E‰Eðð €Lr!   c                 ór   — t        j                  d«      } | sg S | j                  t         j                  «      S )NÚMYPYPATH)r   ÚgetenvrŽ   Úpathsep)Úpath_envs    r   r   r     s+   € Ü�y‰y˜Ó$€HÙØˆ	Ø�>‰>œ"Ÿ*™*Ó%Ð%r!   c                ó&  — t         j                  j                  | «      } g }|�rt         j                  j                  |«      }t         j                  j                  |d«      }t         j                  j                  |dd«      }t         j                  j                  |dd«      }t         j                  j                  |d«      }t         j                  j	                  |«      rt         j                  j                  |«      sæt        dj                  |«      t        j                  ¬«       t        j                  d«       n¦t         j                  j                  | d	«      }t         j                  j	                  |«      r|} t         j                  j                  | d
d«      }t         j                  j                  | d
dd«      }t         j                  j                  | d
dd«      }|j                  |«       |j                  |«       |j                  |«       t        j                  dk7  r|j                  d«       |sNt        dj                  t        j                  | «      t        j                  ¬«       t        j                  d«       |S )zJReturn default standard library search paths. Guaranteed to be normalised.ÚstdlibÚstubszmypy-extensionsÚlibrtÚVERSIONSzDerror: --custom-typeshed-dir does not point to a valid typeshed ({})r  r5   z
stubs-autoÚtypeshedÚwin32z/usr/local/lib/mypyz~Could not resolve typeshed subdirectories. Your mypy install is broken.
Python executable is located at {}.
Mypy located at {}r4   )r   r   r   r�   r†   rt   r  rL   r  r  r  r<   ÚplatformÚ
executable)	Údata_dirÚ	pyversionrk   r   Útypeshed_dirÚmypy_extensions_dirÚ	librt_dirÚversions_fileÚautos	            r   Údefault_lib_pathrM    sÌ  € ô
 �w‰w�‰˜xÓ(€HØ€DâÜ Ÿg™gŸo™oÐ.AÓBÐÜ—w‘w—|‘|Ð$7¸ÓBˆÜ Ÿg™gŸl™lÐ+>ÀÐIZÓ[ÐÜ—G‘G—L‘LÐ!4°g¸wÓGˆ	ÜŸ™Ÿ™ \°:Ó>ˆÜ�w‰w�}‰}˜\Ô*´"·'±'·.±.ÀÔ2OÜØV×]Ñ]Ø'óô —Z‘Zõ	ô �H‰H�Q�Kä�w‰w�|‰|˜H lÓ3ˆÜ�7‰7�=‰=˜ÔØˆHÜ—w‘w—|‘| H¨j¸(ÓCˆÜ Ÿg™gŸl™l¨8°ZÀÐJ[Ó\ÐÜ—G‘G—L‘L ¨:°wÀÓHˆ	Ø‡K�K�Ôð 	‡K�KÐ#Ô$Ø‡K�K�	Ôô ‡|�|�wÒØ�‰Ð)Ô*ÙÜðFßFLÁfÜ—‘ óGô —‘õ	
ô 	�‰�ŒØ€Kr!   c                óŒ  — | €g g fS | t         j                  k(  rt        j                  «       \  }}||fS i t	        t
        j                  «      ¥ddi¥}	 t        j                  t        j                  | t        j                  dg|t        j                  ¬«      j                  «       «      \  }}||fS # t        j                  $ r0}t        |j                   «       t        |j"                  «       ‚ d}~wt$        $ rE}|j&                  €J ‚t        j(                  |j&                  «      }t+        d| › d|› �g«      |‚d}~ww xY w)a  Find package directories for given python. Guaranteed to return absolute paths.

    This runs a subprocess call, which generates a list of the directories in sys.path.
    To avoid repeatedly calling a subprocess (which can be slow!) we
    lru_cache the results.
    NÚPYTHONSAFEPATHÚ1Úgetsearchdirs)Úenvr  z!mypy: Invalid python executable 'z': )r  rE  r
   rQ  Údictr   ÚenvironÚastÚliteral_evalÚ
subprocessÚcheck_outputÚ__file__ÚPIPErÍ   ÚCalledProcessErrorr  r  Ústdoutr›   ÚerrnoÚstrerrorr   )Úpython_executableÚsys_pathÚsite_packagesrR  ÚerrÚreasons         r   Úget_search_dirsrd  M  s5  € ð Ð Ø�BˆxˆØ	œcŸn™nÒ	,ä"(×"6Ñ"6Ó"8Ñˆ�-ð. �]Ð"Ð"ð' :””b—j‘jÓ!Ð9Ð#3°SÑ9ˆð	Ü&)×&6Ñ&6Ü×'Ñ'Ø&¬¯©¸ÐIØÜ%Ÿ?™?ô÷ ‘&“(ó'Ñ#ˆH�mð" �]Ð"Ð"øô ×,Ñ,ò 	Ü�#—*‘*ÔÜ�#—*‘*ÔØûÜò 	Ø—9‘9Ð(Ð(Ð(Ü—[‘[ §¡Ó+ˆFÜØ4Ð5FÐ4GÀsÈ6È(ÐSÐTóàðûð	ús&   ÁAB4 Â4EÃ+C2Ã2EÃ>A D>Ä>Ec                ó"  ‡— t        j                  t        ||j                  |j                  ¬«      «      }|j
                  r¨t        j                  dd«      }|s@t        j                  j                  t        j                  j                  t        «      «      }t        j                  j                  |«      }|j                  t        j                  j                  |ddd«      «       g }|so| D ]1  }|j                  sŒ|j                  }||vsŒ!|j                  |«       Œ3 |j                   rd}nt        j"                  «       }||vr|j%                  d|«       t'        «       }	|	j)                  |j&                  «       |r|	j%                  d|«       t+        |j,                  «      \  }
}|D ]ž  Š‰|vsJ ‚‰|	v sDt/        ˆfd	„|	D «       «      s0t        j                  j0                  sŒ<t/        ˆfd
„|	D «       «      sŒQt3        ‰› d�t4        j6                  ¬«       t3        dt4        j6                  ¬«       t5        j8                  d«       Œ  t;        t=        t?        |«      «      t=        |	«      t=        |
|z   «      t=        |«      ¬«      S )a/  Compute the search paths as specified in PEP 561.

    There are the following 4 members created:
    - User code (from `sources`)
    - MYPYPATH (set either via config or environment variable)
    - installed package directories (which will later be split into stub-only and inline)
    - typeshed
    )rk   ÚMYPY_TEST_PREFIXNz	test-dataÚunitzlib-stubrq   r   c              3  óv   •K  — | ]0  }|j                  ‰t        j                  j                  z   «      –— Œ2 y ­wr   )rö   r   r   r�   ©ru   rˆ   Úsites     €r   rx   z'compute_search_paths.<locals>.<genexpr>¹  s'   øè ø€ ÒF¸�1—<‘< ¤r§w¡w§{¡{Ñ 2×3ÑFùó   ƒ69c              3  óv   •K  — | ]0  }|j                  ‰t        j                  j                  z   «      –— Œ2 y ­wr   )rö   r   r   Úaltsepri  s     €r   rx   z'compute_search_paths.<locals>.<genexpr>º  s'   øè ø€ Ò&]Èq q§|¡|°D¼2¿7¹7¿>¹>Ñ4I×'JÑ&]ùrk  z& is in the MYPYPATH. Please remove it.r  zbSee https://mypy.readthedocs.io/en/stable/running_mypy.html#how-mypy-handles-imports for more infor4   r#   ) ÚcollectionsÚdequerM  Úpython_versionrk   rÏ   r   r:  r   r~   rY  r   Ú
appendleftr�   rI   r<   ÚbazelrÇ   Úinsertr   rü   rd  r_  r�   rm  r  r  r  r  r   r   Úreversed)rZ   rj   rF  Úalt_lib_pathr’   Úroot_dirr   r[   r—   Úmypypathr`  ra  rj  s               @r   Úcompute_search_pathsrx  t  s  ø€ ô × Ñ ÜØ�g×,Ñ,À'×B]ÑB]ô	
ó€Hð ×$Ò$ô
 —9‘9Ð/°Ó6ˆÙÜ—w‘w—‘¤r§w¡w§¡´xÓ'@ÓAˆHÜ—7‘7—?‘? 8Ó,ˆØ×ÑœBŸG™GŸL™L¨°;ÀÈ
ÓSÔTð  €KÙØò 	,ˆFà�‹Ø—o‘o�Ø˜kÒ)Ø×&Ñ& sÕ+ð	,ð �=Š=Ø‰Cä—)‘)“+ˆCØ�hÑØ×Ñ˜q #Ô&ô ‹{€Hð ‡O�O�G×%Ñ%Ô&ñ Ø�‰˜˜<Ô(ä-¨g×.GÑ.GÓHÑ€Hˆmàò ˆØ˜8Ñ#Ð#Ð#à�HÑÜÓF¸XÔFÔFÜ—‘—“¤3Ó&]ÐT\Ô&]Õ#]ä�T�FÐ@ÐAÌÏ
É
ÕSÜð:ä—Z‘Zõô
 �H‰H�Q�Kðô Üœ( ;Ó/Ó0Ü˜“/Ü˜8 mÑ3Ó4Ü˜H“oô	ð r!   c                ón  — | xs- t        t        j                  j                  t        «      d«      }t        |d«      }i }t        |d«      }t        j                  j                  |«      sJ | |t        f«       ‚t        |«      5 }|D ]•  }|j                  d«      d   j                  «       }|dk(  rŒ+|j                  d«      \  }}|j                  d«      }	t        |	d   «      }
t        |	«      d	k\  r!|	d
   j                  «       rt        |	d
   «      nd}|
|f||<   Œ— 	 ddd«       |S # 1 sw Y   |S xY w)zÛReturn dict with minimum and maximum Python versions of stdlib modules.

    The contents look like
    {..., 'secrets': ((3, 6), None), 'symbol': ((2, 7), (3, 9)), ...}

    None means there is no maximum version.
    rB  r>  rA  ú#r   rT   ú:ú-r5   r4   N)r   r   r   r~   rY  rt   r$  rŽ   rÎ   Úparse_versionr¾   )rk   rH  Ú
stdlib_dirr©   Úversions_pathr*  ÚlinerG   Úversion_rangeÚversionsr¯   r°   s               r   rl   rl   Ì  s-  € ð 'Ò]¬,´r·w±w·±ÄxÓ7PÐR\Ó*]€LÜ˜l¨HÓ5€JØ€Fä  ¨ZÓ8€MÜ�7‰7�>‰>˜-Ô(ÐXÐ+>ÀÌxÐ*XÓXÐ(Ü	ˆmÓ	ð 6 Øò 
	6ˆDØ—:‘:˜c“? 1Ñ%×+Ñ+Ó-ˆDØ�rŠzØØ$(§J¡J¨s£OÑ!ˆF�MØ$×*Ñ*¨3Ó/ˆHÜ'¨°©Ó4ˆKä.1°(«m¸qÒ.@ÀXÈaÁ[×EVÑEVÔEX”˜h q™kÔ*Ð^bð ð )¨+Ð5ˆF�6ŠNñ
	6÷6ð €M÷6ð €Mús   ÂBD*Ä*D4c                ór   — | j                  «       j                  d«      \  }}t        |«      t        |«      fS )Nrq   )rÎ   rŽ   Úint)r®   ÚmajorÚminors      r   r}  r}  é  s/   € Ø—=‘=“?×(Ñ(¨Ó-�L€Eˆ5Üˆu‹:”s˜5“zÐ!Ð!r!   c                ó.   — t        | j                  d«      S )zIReturn Python version used for checking whether module supports typeshed.)r6   é
   )rÕ   rp  )rj   s    r   r­   r­   î  s   € äˆw×%Ñ% wÓ/Ð/r!   )
r  rO   r  r  rf   r   r  rB   r'   rB   )r  rO   rf   r   r  rB   r'   rB   )r—   rO   r'   zlist[tuple[str, GitIgnoreSpec]])r   rO   r'   rB   )
rf   r   r‡   rO   r   rO   r2  rO   r'   rB   )
rf   r   r‡   rO   r   rO   r2  rO   r'   r„  )r'   r  )rF  rO   rG  útuple[int, int]rk   rN   r'   r  )r_  rN   r'   ztuple[list[str], list[str]]r   )
rZ   r`   rj   r   rF  rO   ru  rN   r'   r   )rk   rN   r'   r.   )r®   rO   r'   r‰  )rj   r   r'   r‰  )CrP   Ú
__future__r   rU  rn  Ú	functoolsr   r  rW  r  Úenumr   r   Útypingr   r   r-   Úpathspecr   Úpathspec.patterns.gitignorer	   Úmypyr
   Úmypy.errorsr   Úmypy.fscacher   Ú
mypy.nodesr   Úmypy.optionsr   Úmypy.stubinfor   Ú	mypy.utilr   r   r   rO   rB   ÚOnePackageDirÚlistr  rS  r„  r.   Ú__annotations__r1   r3   r  rD   rR   rb   r÷   rû   Ú	lru_cacher  rÆ   rÑ   rÔ   r   rM  Úcacherd  rx  rl   r}  r­   r,   r!   r   ú<module>rœ     sä  ðòõ
 #ã 
Û Û Û 	Û 	Û Û 
ß ß 1å "Ý =å Ý $Ý (Ý Ý  Ý 0Ý "÷
ñ 
ð6 �c˜4�iÑ €Ø�=Ñ!€ð " # u¨U°3¸°8©_¸eÀCÈÀH¹oÐPTÑ>TÐ-TÑ'UÐ"UÑV€�
Ó Và" E˜?Ð �5Ó *ð ô,˜4ó ,ó ð,ðb Ð/Ñ/Ð ÷
ñ 
÷2
ñ 
÷0vñ vðrØðØ%ðØ0?ðØJNðà	óóBð  ×Ñòó ðó6Eóóó&ð0Øð0Ø-ð0ØDNð0àó0ðf ‡�ò##ó ð##ðN ]aðUØðUØ)0ðUØ<?ðUØOYðUàóUópó:"ô
0r!   