ó
    Ñ]j´A  ã                  ó"  • % S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
Jr  S SKJr  SSKJr  SS	KJr  SS
KJr  \
(       a  S SKJrJrJrJrJrJr  SSKJr  \R:                  " \5      rS\ S'   \RB                  S:H  r"S\ S'       S/           S0S jjr#     S1           S2S jjr$              S3S jr%   S4           S5S jjr&S6S jr'S7S jr(  S8SS.           S9S jjjr)            S:S jr*          S;S jr+SS.           S<S jjr,SS.       S=S jjr-S>S jr. " S  S!5      r/SS.     S?S" jjr0S@S# jr1/ S$Qr2S%\ S&'   SAS' jr3SBS( jr4S)S*.SCS+ jjr5 " S, S-\5      r6/ S.Qr7g)Dé    )ÚannotationsN)Úsuppress)ÚPath)ÚTYPE_CHECKINGÚFinal)Úuser_data_pathé   )Ú
fs_path_id)Ú
PythonInfo)Ú
PythonSpec)ÚCallableÚ	GeneratorÚIterableÚIteratorÚMappingÚSequence)ÚPyInfoCachezFinal[logging.Logger]Ú_LOGGERÚwin32zFinal[bool]ÚIS_WINc                óŒ   • [        U [        5      (       a  U /OU nU H$  n[        Xa=(       d    SX#U5      =n(       d  M"  Us  $    g)uê  
Find a Python interpreter matching *key*.

Iterates over one or more specification strings and returns the first interpreter that satisfies the spec and passes
the optional *predicate*.

:param key: interpreter specification string(s) â€” an absolute path, a version (``3.12``), an implementation prefix
    (``cpython3.12``), or a
    `version specifier <https://packaging.python.org/en/latest/specifications/version-specifiers/>`_
    (``>=3.10``). When a sequence is given each entry is tried in order.
:param try_first_with: executables to probe before the normal discovery search.
:param cache: interpreter metadata cache; when ``None`` results are not cached.
:param env: environment mapping for ``PATH`` lookup; defaults to :data:`os.environ`.
:param predicate: optional callback applied after an interpreter matches the spec. Return ``True`` to accept the
    interpreter, ``False`` to skip it and continue searching.
:return: the first matching interpreter, or ``None`` if no match is found.
© N)Ú
isinstanceÚstrÚ_find_interpreter)ÚkeyÚtry_first_withÚcacheÚenvÚ	predicateÚspecsÚspec_strÚresults           ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/python_discovery/_discovery.pyÚget_interpreterr%      sG   € ô0   ¤S×)Ñ)ˆS‰E¨s€EÛˆÜ& x×1EÀ2ÀuÐS\Ó]Ð]ˆ6×]ØŠMñ ð ó    c           	   #  ó  #   • U c  SnO$[        U [        5      (       a  U 4nO[        U 5      n[        U=(       d    S5      nUc  [        R                  OUn[        5       nU H  n	[        X–X'XH5       Sh  v•N   M     g N	7f)u‚  
Yield every interpreter on the system that satisfies *key*.

Iteration order is discovery order: ``try_first_with`` paths first, then the running interpreter, then ``PATH``
(left to right), then UV-managed installs. Results are deduplicated by the resolved real path of the underlying
system interpreter, so symlinked aliases (``/bin`` vs ``/usr/bin``) and venvs that symlink to a base interpreter
collapse to a single entry. Callers that want a different ordering should sort the result.

:param key: interpreter specification â€” same syntax as :func:`get_interpreter`. ``None`` enumerates every Python
    implementation python-discovery knows about (see :data:`KNOWN_IMPLEMENTATIONS`).
:param try_first_with: executables to probe before the normal discovery search.
:param cache: interpreter metadata cache; when ``None`` results are not cached. Strongly recommended for
    enumeration, which interrogates every candidate as a subprocess on a cold cache.
:param env: environment mapping for ``PATH`` lookup; defaults to :data:`os.environ`.
:param predicate: optional filter applied after the spec match; return ``True`` to include the interpreter.
N©Nr   )r   r   ÚtupleÚosÚenvironÚsetÚ_iter_for_spec)
r   r   r   r   r    ÚkeysÚ
first_withÚenv_mapÚseenr"   s
             r$   Úiter_interpretersr2   8   sr   é € ð. �{Ø'.‰Ü	�Cœ×	Ñ	Øˆv‰ä�S‹zˆÜ�~×+¨Ó,€JØ™KŒb�jŠj¨S€GÜ“U€DÛˆÜ! (¸È	ÓX×XÒXò ÙXùs   ‚A3BÁ5A?Á6
Bc           	   #  óª  #   • U c  [        SS S S S S S 5      nSnO[         R                  " U 5      nSn[        XaX#US9 H‘  u  p‰Uc  M
  UR                  =(       d    UR                  =n
c  M.  [
        R                  R                  U
5      =oµ;   a  MT  UR                  XiS9(       d  Mj  Ub  U" U5      (       d  M|  UR                  U5        Uv •  M“     g 7f)NÚ TF©Úall_implementations©Úimpl_must_match)
r   Úfrom_string_specÚpropose_interpretersÚsystem_executableÚ
executabler*   ÚpathÚrealpathÚ	satisfiesÚadd)r"   r   r   r   r    r1   ÚspecÚwideÚinterpreterr8   ÚanchorÚ	real_paths               r$   r-   r-   \   sÖ   é € ð ÑÜ˜"˜d D¨$°°d¸DÓAˆØ‰ä×*Ò*¨8Ó4ˆØˆÜ(<Ø˜e¸dô)Ñ$ˆð ÑÙØ!×3Ñ3×M°{×7MÑ7MÐMˆFÑVÙÜŸ™×)Ñ)¨&Ó1Ð1ˆIÓ:ÙØ×$Ñ$ TÐ$ÖKÙØÑ ©°;×)?Ñ)?ÙØ�‰�ÔØÔò)ùs   ‚CCc                óÂ  • [         R                  " U 5      n[        R                  SU5        [	        5       nUc  [
        R                  OUn[        XQX#5       H„  u  pxUc  M
  UR                  U4n	X–;   a  M  [        R                  SU5        UR                  XXS9(       a*  Ub  U" U5      (       a  [        R                  SU5        Us  $ UR                  U	5        M†     g )Nzfind interpreter for spec %rzproposed %sr7   zaccepted %s)r   r9   r   Úinfor,   r*   r+   r:   r;   r?   Údebugr@   )
r   r   r   r   r    rA   Úproposed_pathsrC   r8   Úproposed_keys
             r$   r   r   {   sÇ   € ô ×&Ò& sÓ+€DÜ‡L�LÐ/°Ô6Ü36³5€NØ™Œ"�*Š*¨€CÜ(<¸TÐSXÖ(^Ñ$ˆØÑÙØ"×4Ñ4°oÐEˆØÓ)ÙÜ�‰�] KÔ0Ø× Ñ  Ð ÖGØÑ¡¨;×!7Ñ!7ä�M‰M˜-¨Ô5ØÒØ×Ñ˜<Ö(ñ )_ð r&   c                ó  •  [         R                  " U 5        [        [	        U 5      R                  5       5      n[        U5      nX1;   a  gUR                  U5        [        [	        U 5      R                  5       5      $ ! [         a     gf = f)zWResolve *path* to an absolute path and return it if not yet tested, otherwise ``None``.N)	r*   ÚlstatÚOSErrorr   r   Úresolver
   r@   Úabsolute)r=   Útested_exesÚresolvedÚexe_ids       r$   Ú
_check_exerS   –   sv   € ðÜ
�Š�Œô ”4˜“:×%Ñ%Ó'Ó(€HÜ˜Ó!€FØÓØØ‡O�O�FÔÜŒt�D‹z×"Ñ"Ó$Ó%Ð%øô ó Ùðús   ‚A> Á>
BÂ
Bc                óH   • [        U 5      nX!;   a  gUR                  U5        g)zDReturn ``True`` and register *exe_raw* if it hasn't been tested yet.FT)r
   r@   )Úexe_rawrP   rR   s      r$   Ú_is_new_exerV   ¤   s$   € ä˜Ó €FØÓØØ‡O�O�FÔØr&   Fr5   c             #  ó²  #   • Uc  [         R                  OUn[        5       nU R                  (       aD  U R                  b7  [        U R                  U5      =n(       a  [        R                  " XbUS9S4v •  g[        XX#U5       Sh  v•N   U R                  b  U R                  (       a  g[        XX5US9 Sh  v•N   [        X#US9 Sh  v•N   g NI N N	7f)aB  
Yield ``(interpreter, impl_must_match)`` candidates for *spec*.

:param spec: the parsed interpreter specification to match against.
:param try_first_with: executable paths to probe before the standard search.
:param cache: interpreter metadata cache; when ``None`` results are not cached.
:param env: environment mapping for ``PATH`` lookup; defaults to :data:`os.environ`.
:param all_implementations: when ``True`` and *spec* does not constrain the implementation, also surface
    non-CPython binaries on ``PATH`` and under UV's install directory. Used by enumeration APIs.
N©r   Tr5   )r*   r+   r,   Úis_absr=   rS   r   Úfrom_exeÚ_propose_explicitÚ_propose_from_pathÚ_propose_from_uv)rA   r   r   r   r6   rP   rU   s          r$   r:   r:   ­   s¶   é € ð$ ™Œ"�*Š*¨€CÜ›E€KØ‡{‡{�t—y‘yÑ,Ü  §¡¨KÓ8Ð8ˆ7Õ8Ü×%Ò% g¸#Ñ>ÀÐDÒDØä  °uÀ;ÓO×OÐOØ‡y�yÑ §§ØÜ! $¨sÐUhÑi×iÐiÜ Ð@SÑT×TÑTñ	 Pñ jÙTùs6   ‚BCÂCÂ1CÂ9CÂ:CÃCÃCÃCÃCc              #  óp  #   • U HQ  n[        [        [        U5      R                  5       5      U5      =n(       d  M8  [        R
                  " XbUS9S4v •  MS     U R                  b8  [        U R                  U5      =n(       a  [        R
                  " XbUS9S4v •  g g [        XX45       S h  v•N   g  N7f)NrX   T)rS   r   r   rN   r   rZ   r=   Ú_propose_current_and_windows)rA   r   r   r   rP   Úpy_exerU   s          r$   r[   r[   Í   sž   é € ó !ˆÜ ¤¤T¨&£\×%9Ñ%9Ó%;Ó!<¸kÓJÐJˆ7×JÜ×%Ò% g¸#Ñ>ÀÐDÔDñ !ð ‡y�yÑÜ  §¡¨KÓ8Ð8ˆ7Õ8Ü×%Ò% g¸#Ñ>ÀÐDÓDð 9ô 0°¸SÓN×NÓNùs   ‚7B6½A1B6Â.B4Â/B6c              #  ó(  #   • [         R                  " U5      n[        [        UR                  5      U5      (       a  US4v •  [
        (       aC  SSKJn  U" XU5       H/  n[        [        UR                  5      U5      (       d  M)  US4v •  M1     g g 7f)NTr	   )r:   )r   Úcurrent_systemrV   r   r<   r   Ú_windowsr:   )rA   r   r   rP   Úcurrent_pythonÚwin_proposerC   s          r$   r_   r_   ß   s{   é € ô  ×.Ò.¨uÓ5€NÜ”3�~×0Ñ0Ó1°;×?Ñ?Ø˜dÐ"Ò"ç‚vÝAá& t°CÖ8ˆKÜœ3˜{×5Ñ5Ó6¸×DÓDØ! 4Ð'Ô'ò 9ð ùs   ‚B BÂBc          	   #  ó„  #   • [        XS9n[        [        U5      5       H›  u  pg[        R	                  [        XgU5      5        U" U5       Hk  u  p‰[        U5      n
[        X¢5      =n(       a  [        R	                  SX«5        Un
[        X£5      (       d  ML  [        R                  X¡SUS9nUc  Mf  XÉ4v •  Mm     M�     g 7f)Nr5   zresolved shim %s to %sF©Úraise_on_errorr   )Úpath_exe_finderÚ	enumerateÚ	get_pathsr   rH   ÚLazyPathDumpr   Ú_resolve_shimrV   ÚPathPythonInforZ   )rA   r   r   rP   r6   Úfind_candidatesÚposr=   Úexer8   rU   rQ   rC   s                r$   r\   r\   ñ   s®   é € ô & dÑT€OÜœy¨›~Ö.‰	ˆÜ�‰”l 3¨cÓ2Ô3Ù$3°DÖ$9Ñ ˆCÜ˜#“hˆGÜ(¨Ó6Ð6ˆxÕ6Ü—‘Ð6¸ÔJØ"�Ü˜w×4Ñ4ÙÜ(×1Ñ1°'ÐQVÐ\_Ð1Ð`ˆKØÓ&Ø!Ð2Ô2ó %:ò /ùs   ‚B,C Â2C c          	   #  ón  #   • [         R                  " S5      =n(       a  [        U5      R                  5       nOK[         R                  " S5      =n(       a   [        U5      R                  5       S-  S-  nO[	        S5      S-  nSS/nU(       a  UR                  S5        [        5       nU Hƒ  nUR                  U5       Hk  n	[        [        U	5      R                  5       5      n
X§;   a  M,  UR                  U
5        [        R                  [        U	5      U SUS	9=n(       d  Me  US
4v •  Mm     M…     g 7f)NÚUV_PYTHON_INSTALL_DIRÚXDG_DATA_HOMEÚuvÚpythonz*/bin/pythonz*/python.exe)z*/bin/pypy*z*/bin/graalpyz*/pypy*.exez*/bin/graalpy.exeFrg   T)r*   Úgetenvr   Ú
expanduserr   Úextendr,   Úglobr   rN   r@   rn   rZ   )r   r   r6   Úuv_python_dirÚuv_python_pathÚxdg_data_homeÚpatternsÚseen_uv_pathsÚpatternÚexe_pathrQ   rC   s               r$   r]   r]     s  é € ô Ÿ	š	Ð"9Ó:Ð:€}Õ:Ü˜mÓ,×7Ñ7Ó9‰ÜŸ)š) OÓ4Ð	4ˆÕ	4Ü˜mÓ,×7Ñ7Ó9¸DÑ@À8ÑK‰ä'¨Ó-°Ñ8ˆà)¨>Ð:€HÞØ�‰Ð\Ô]Ü!›e€MÛˆØ&×+Ñ+¨GÖ4ˆHÜœ4 ›>×1Ñ1Ó3Ó4ˆHØÓ(ÙØ×Ñ˜hÔ'Ü,×5Ñ5´c¸(³mÀUÐ[`ÐfiÐ5ÐjÐjˆ{×jØ! 4Ð'Ô'ó 5ò ùs   ‚D D5Ä&D5c              #  óì  #   • U R                  SS 5      nUc   [        R                  " S5      nU(       a…  [        [        UR                  [        R                  5      5       HS  n[        [        5         UR                  5       (       a#  [        UR                  5       S 5      (       a  Uv •  S S S 5        MU     g g ! [        [        4 a    [        R
                  n N¯f = f! , (       d  f       MŽ  = f7f)NÚPATHÚCS_PATH)Úgetr*   ÚconfstrÚAttributeErrorÚ
ValueErrorÚdefpathÚmapr   ÚsplitÚpathsepr   rM   Úis_dirÚnextÚiterdir)r   r=   Úentrys      r$   rk   rk   #  s®   é € Ø�7‰7�6˜4Ó €DØ�|ð	Ü—:’:˜iÓ(ˆDö Üœ˜tŸz™z¬"¯*©*Ó5Ö6ˆEÜœ'Õ"Ø—<‘<—>‘>¤d¨5¯=©=«?¸D×&AÑ&AØ’K÷ #Ñ"ò 7ð øô ¤
Ð+ó 	Ü—:‘:ŠDð	ú÷ #Ö"üs@   ‚C4™B< ¯AC4Á59C"Â.C4Â< CÃC4ÃCÃC4Ã"
C1	Ã,C4c                  ó(   • \ rS rSrSS jrSS jrSrg)rl   i1  c                ó(   • Xl         X l        X0l        g r(   )rp   r=   r   )Úselfrp   r=   r   s       r$   Ú__init__ÚLazyPathDump.__init__2  s   € ØŒØŒ	Ø�r&   c                óP  ^• SU R                    SU R                   3nU R                  R                  S5      (       aØ  US-  nU R                  R	                  5        Hµ  m TR                  5       (       a  M  [        (       aH  U R                  R                  SS5      R                  S5      n[        U4S jU 5       5      (       d  Mm  O3TR                  5       R                  [        R                  -  (       d  M    US	-  nUTR                  -  nM·     U$ ! [         a     N&f = f)
Nzdiscover PATH[z]=Ú_VIRTUALENV_DEBUGz with =>ÚPATHEXTz.COM;.EXE;.BAT;.CMDÚ;c              3  óv   >#   • U  H.  nTR                   R                  5       R                  U5      v •  M0     g 7fr(   )ÚnameÚupperÚendswith)Ú.0ÚextÚ	file_paths     €r$   Ú	<genexpr>Ú(LazyPathDump.__repr__.<locals>.<genexpr>A  s.   øé € Ð"[ÒSZÈC 9§>¡>×#7Ñ#7Ó#9×#BÑ#BÀ3×#GÐ#GÒSZùs   ƒ69Ú )rp   r=   r   r…   r�   r�   r   r‹   ÚanyÚstatÚst_moder*   ÚX_OKrM   r›   )r“   ÚcontentÚpathextr    s      @r$   Ú__repr__ÚLazyPathDump.__repr__7  s   ø€ Ø" 4§8¡8 *¨B¨t¯y©y¨kÐ:ˆØ�8‰8�<‰<Ð+×,Ñ,Ø�zÑ!ˆGØ!ŸY™Y×.Ñ.Ö0�	ð
Ø ×'Ñ'×)Ñ)Ù ß’vØ"&§(¡(§,¡,¨yÐ:OÓ"P×"VÑ"VÐWZÓ"[˜Ü"Ô"[ÑSZÓ"[×[Ñ[Ù$ð  \à'Ÿn™nÓ.×6Ñ6¼¿¹×@Ù ð Að ˜3‘�Ø˜9Ÿ>™>Ñ)’ñ 1ð ˆøô	 ó Ùðús   Á!DÁ8ADÃ0DÄ
D%Ä$D%)r   r=   rp   N)rp   Úintr=   r   r   úMapping[str, str]ÚreturnÚNone)r®   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r”   rª   Ú__static_attributes__r   r&   r$   rl   rl   1  s   † ô÷
r&   rl   c               ó¨   ^^• U R                  [        R                  S:H  US9mU R                  m[        R                  S:X  a  T S3mSUU4S jjnU$ )z^Given a spec, return a function that can be called on a path to find all matching files in it.r   )Úwindowsr6   z.exec              3  óø   >#   • U T-  nUR                  5       (       a  US4v •  U R                  5        HA  nTR                  UR                  5      nU(       d  M'  UR	                  5       US   S:H  4v •  MC     g 7f)NFÚimplrv   )Úexistsr�   Ú	fullmatchr›   rO   )r=   Údirect_pathrq   ÚmatchÚdirectÚpats       €€r$   Ú	path_exesÚ"path_exe_finder.<locals>.path_exesU  sj   øé € Ø˜V‘mˆØ×Ñ×ÑØ˜uÐ$Ò$à—<‘<–>ˆCØ—M‘M #§(¡(Ó+ˆEßˆuØ—l‘l“n e¨F¡m°xÑ&?Ð?Ô?ò "ùs   ƒAA:ÁA:)r=   r   r®   z(Generator[tuple[Path, bool], None, None])Úgenerate_reÚsysÚplatformÚstr_spec)rA   r6   r¿   r½   r¾   s      @@r$   ri   ri   L  sX   ù€ ð ×
Ñ
¤3§<¡<°7Ñ#:ÐPcÐ
Ð
d€CØ�]‰]€FÜ
‡|�|�wÓØ�8˜4�ˆ÷@ð @ð Ðr&   c                óx  • [          H°  u  p#UR                  U5      =n(       d  M  [        R                  R	                  US5      n[        R                  R                  U 5      U:X  d  Md  [        R                  R                  U 5      n[        R                  R                  " U/UQ76 n[        XgU5      s  $    g)z;Resolve a version-manager shim to the actual Python binary.ÚshimsN)Ú_VERSION_MANAGER_LAYOUTSr…   r*   r=   ÚjoinÚdirnameÚbasenameÚ_resolve_shim_to_binary)r�   r   Úshims_dir_envÚversions_pathÚrootÚ	shims_dirÚexe_nameÚversions_dirs           r$   rm   rm   b  sŠ   € ç(@Ñ$ˆØ—7‘7˜=Ó)Ð)ˆ4×)ÜŸ™Ÿ™ T¨7Ó3ˆIÜ�w‰w�‰˜xÓ(¨IÕ5ÜŸ7™7×+Ñ+¨HÓ5�Ü!Ÿw™wŸ|š|¨DÐA°=ÒA�Ü.¨xÀsÓKÒKñ )Að r&   ))Ú
PYENV_ROOT)Úversions)ÚMISE_DATA_DIR©Úinstallsrv   )ÚASDF_DATA_DIRrÕ   z!list[tuple[str, tuple[str, ...]]]rÇ   c                ó  • [        U5       Hr  n[        R                  R                  XSU 5      n[	        U5      R                  5       (       d  MD  [        R                  " U[        R                  5      (       d  Mp  Us  $    g )NÚbin)Ú_active_versionsr*   r=   rÈ   r   Úis_fileÚaccessr§   )rÐ   rÑ   r   ÚversionrQ   s        r$   rË   rË   u  sX   € Ü# CÖ(ˆÜ—7‘7—<‘< °u¸hÓGˆÜ�‹>×!Ñ!×#Ó#¬¯	ª	°(¼B¿G¹G×(DÓ(DØŠOñ )ð r&   c              #  ó‚  #   • U R                  S5      =n(       a  UR                  S5       Sh  v•N   g[        [        R                  " 5       5      =n(       a  U Sh  v•N   gU R                  S5      =n(       a;  [        [
        R                  R                  US5      SS9=n(       a  U Sh  v•N   ggg N‰ N[ N7f)zMYield active Python version strings by reading version-manager configuration.ÚPYENV_VERSIONÚ:NrÒ   rÝ   F©Úsearch_parents)r…   r‹   Ú_read_python_version_filer   Úcwdr*   r=   rÈ   )r   Úpyenv_versionrÓ   Ú
pyenv_roots       r$   rÚ   rÚ   }  s«   é € àŸ™ Ó0Ð0€}Õ0Ø ×&Ñ& sÓ+×+Ð+ØÜ,¬T¯XªX«ZÓ8Ð8€xÕ8Ø×ÐØØ—g‘g˜lÓ+Ð+ˆ
Õ+Ü-¬b¯g©g¯l©l¸:ÀyÓ.QÐbgÑhÐhˆÕhà×Ñð 	ið 	,ñ 	,ñ 	ñ
 	ùs4   ‚-B?¯B9°/B?ÁB;Á AB?Â1B=Â2B?Â;B?Â=B?Trá   c               ó,  • U n [        U5      R                  5       (       a   [        R                  R	                  US5      OUn[        U5      R                  5       (       aw  [        U5      R                  SS9 nU Vs/ s H5  oUR                  5       =n(       d  M  UR                  S5      (       a  M3  UPM7     sn=n(       a  UsSSS5        $  SSS5        U(       d  g[        U5      R                  nX‚:X  a  gUnMü  s  snf ! , (       d  f       N:= f)zIRead a ``.python-version`` file, optionally searching parent directories.z.python-versionzutf-8)ÚencodingÚ#N)
r   r�   r*   r=   rÈ   rÛ   ÚopenÚstripÚ
startswithÚparent)	Ústartrâ   ÚcurrentÚ	candidateÚfhÚlineÚvrÓ   rí   s	            r$   rã   rã   ‹  sã   € à€GØ
Ü@DÀWÃ×@TÑ@T×@VÑ@V”B—G‘G—L‘L Ð*;Ô<Ð\cˆ	Ü�	‹?×"Ñ"×$Ñ$Ü�i“×%Ñ%¨wÐ%Ñ7¸2Ù.0Óbªb d¿*¹*»,Ð5F°QÓ5F£ÐPQ×P\ÑP\Ð]`×Pa§©bÑbÐb�8ÕbØ#÷ 8Ñ7Øb÷ 8ö ØÜ�g“×%Ñ%ˆØÓØØˆñ ùò  c÷ 8Õ7ús*   Á:DÁ?D ÂD Â5D Â;DÄ DÄ
Dc                  ó   • \ rS rSrSrSrg)rn   iœ  zpython info from path.r   N)r°   r±   r²   r³   Ú__doc__r´   r   r&   r$   rn   rn   œ  s   † Ü r&   rn   )rl   rn   r%   rk   r2   r:   )NNNN)r   zstr | Sequence[str]r   úIterable[str] | Noner   úPyInfoCache | Noner   úMapping[str, str] | Noner    ú#Callable[[PythonInfo], bool] | Noner®   úPythonInfo | None)NNNNN)r   zstr | Sequence[str] | Noner   rö   r   r÷   r   rø   r    rù   r®   úIterator[PythonInfo])r"   ú
str | Noner   ztuple[str, ...]r   r÷   r   r­   r    rù   r1   úset[str]r®   rû   )NNN)r   r   r   úIterable[str]r   r÷   r   rø   r    rù   r®   rú   )r=   r   rP   rý   r®   rü   )rU   r   rP   rý   r®   Úbool)NN)rA   r   r   rþ   r   r÷   r   rø   r6   rÿ   r®   ú5Generator[tuple[PythonInfo | None, bool], None, None])rA   r   r   rþ   r   r÷   r   r­   rP   rý   r®   r   )
rA   r   r   r÷   r   r­   rP   rý   r®   r   )rA   r   r   r÷   r   r­   rP   rý   r6   rÿ   r®   r   )r   r÷   r   r­   r6   rÿ   r®   r   )r   r­   r®   zGenerator[Path, None, None])rA   r   r6   rÿ   r®   z:Callable[[Path], Generator[tuple[Path, bool], None, None]])r�   r   r   r­   r®   rü   )rÐ   r   rÑ   r   r   r­   r®   rü   )r   r­   r®   zGenerator[str, None, None])rî   z
str | Pathrâ   rÿ   r®   zlist[str] | None)8Ú
__future__r   Úloggingr*   rÂ   Ú
contextlibr   Úpathlibr   Útypingr   r   Úplatformdirsr   Ú_compatr
   Ú_py_infor   Ú_py_specr   Úcollections.abcr   r   r   r   r   r   Ú_cacher   Ú	getLoggerr°   r   Ú__annotations__rÃ   r   r%   r2   r-   r   rS   rV   r:   r[   r_   r\   r]   rk   rl   ri   rm   rÇ   rË   rÚ   rã   rn   Ú__all__r   r&   r$   Ú<module>r     sE  ðÞ "ã Û 	Û 
Ý Ý ß 'å 'å Ý  Ý  æßZ×Zå#à!(×!2Ò!2°8Ó!<€Ð	Ó <Ø—l‘l gÑ-€ˆÓ -ð
 ,0Ø $Ø$(Ø59ðØ	ðà(ðð ðð 
"ð	ð
 3ðð õð@ '+Ø+/Ø $Ø$(Ø59ð!YØ	#ð!Yà(ð!Yð ð!Yð 
"ð	!Yð
 3ð!Yð õ!YðHØðà#ðð ðð 
ð	ð
 3ðð ðð ôðD !%Ø$(Ø59ðØ	ðà!ðð ðð 
"ð	ð
 3ðð õô6&ôð !%Ø$(ð	Uð !&ñUØ
ðUà!ðUð ðUð 
"ð	Uð ðUð ;öUð@OØ
ðOà!ðOð ðOð 
ð	Oð
 ðOð ;ôOð$(Ø
ð(àð(ð 
ð(ð ð	(ð
 ;ô(ð0 !&ñ3Ø
ð3àð3ð 
ð3ð ð	3ð ð3ð ;õ3ð6 !&ñ	(Øð(à	ð(ð ð	(ð
 ;õ(ô6 ÷ñ ð8 6;ñØ
ðØ.2ðà?õô,	ò?Ð Ð;ó ôôð LP÷ ô"!�Zô !ò�r&   