ó
    T=ŒjV,  ã                   ó2  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	SSK
Jr  SSKJrJrJr  \R                   " \5      rSq " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r\" S5      \\	R8                  \0r  S SKr\\\RD                  '   \\\RF                  '   \\\RH                  '   CS r&0 r'S r(\RR                  " \*" S5      5      r+S r,g! \  a    S SK!r N^f = f! \ \%4 a     N>f = f)é    )Úunicode_literalsNé   )ÚDistlibException)Úcached_propertyÚget_cache_baseÚCachec                   ó8   ^ • \ rS rSrSU 4S jjrS rS rSrU =r$ )ÚResourceCacheé   c                 ó”   >• Uc1  [         R                  R                  [        5       [	        S5      5      n[
        [        U ]  U5        g )Nzresource-cache)ÚosÚpathÚjoinr   ÚstrÚsuperr
   Ú__init__)ÚselfÚbaseÚ	__class__s     €Úa/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_vendor/distlib/resources.pyr   ÚResourceCache.__init__   s4   ø€ Ø‰<ä—7‘7—<‘<¤Ó 0´#Ð6FÓ2GÓHˆDÜŒm˜TÑ+¨DÕ1ó    c                 ó   • g)z»
Is the cache stale for the given resource?

:param resource: The :class:`Resource` being cached.
:param path: The path of the resource in the cache.
:return: True if the cache is stale.
T© ©r   Úresourcer   s      r   Úis_staleÚResourceCache.is_stale"   s   € ð r   c                 óz  • UR                   R                  U5      u  p#Uc  UnU$ [        R                  R	                  U R
                  U R                  U5      U5      n[        R                  R                  U5      n[        R                  R                  U5      (       d  [        R                  " U5        [        R                  R                  U5      (       d  SnOU R                  X5      nU(       a2  [        US5       nUR                  UR                  5        SSS5        U$ U$ ! , (       d  f       U$ = f)z„
Get a resource into the cache,

:param resource: A :class:`Resource` instance.
:return: The pathname of the resource in the cache.
NTÚwb)ÚfinderÚget_cache_infor   r   r   r   Úprefix_to_dirÚdirnameÚisdirÚmakedirsÚexistsr   ÚopenÚwriteÚbytes)r   r   Úprefixr   Úresultr$   ÚstaleÚfs           r   ÚgetÚResourceCache.get-   sä   € ð  —‘×5Ñ5°hÓ?‰ˆØ‰>ØˆFð ˆô —W‘W—\‘\ $§)¡)¨T×-?Ñ-?ÀÓ-GÈÓNˆFÜ—g‘g—o‘o fÓ-ˆGÜ—7‘7—=‘= ×)Ñ)Ü—’˜GÔ$Ü—7‘7—>‘> &×)Ñ)Ø‘àŸ™ hÓ5�Þä˜& $Ô'¨1Ø—G‘G˜HŸN™NÔ+÷ (àˆˆvˆ÷ (Ô'àˆús   ÄD+Ä+
D:r   ©N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r/   Ú__static_attributes__Ú__classcell__©r   s   @r   r
   r
      s   ø† ÷2ò	÷ð r   r
   c                   ó   • \ rS rSrS rSrg)ÚResourceBaseéG   c                 ó   • Xl         X l        g r1   ©r!   Úname)r   r!   r>   s      r   r   ÚResourceBase.__init__I   s   € ØŒØ�	r   r=   N)r2   r3   r4   r5   r   r6   r   r   r   r:   r:   G   s   † õr   r:   c                   óR   • \ rS rSrSrSrS r\S 5       r\S 5       r	\S 5       r
Srg	)
ÚResourceéN   z·
A class representing an in-package resource, such as a data file. This is
not normally instantiated by user code, but rather by a
:class:`ResourceFinder` which manages the resource.
Fc                 ó8   • U R                   R                  U 5      $ )zr
Get the resource as a stream.

This is not a property to make it obvious that it returns a new stream
each time.
)r!   Ú
get_stream©r   s    r   Ú	as_streamÚResource.as_streamV   s   € ð �{‰{×%Ñ% dÓ+Ð+r   c                 óN   • [         c
  [        5       q [         R                  U 5      $ r1   )Úcacher
   r/   rE   s    r   Ú	file_pathÚResource.file_path_   s   € ô ‰=Ü!“OˆEÜ�y‰y˜‹Ðr   c                 ó8   • U R                   R                  U 5      $ r1   )r!   Ú	get_bytesrE   s    r   r*   ÚResource.bytesf   s   € à�{‰{×$Ñ$ TÓ*Ð*r   c                 ó8   • U R                   R                  U 5      $ r1   )r!   Úget_sizerE   s    r   ÚsizeÚResource.sizej   s   € à�{‰{×#Ñ# DÓ)Ð)r   r   N)r2   r3   r4   r5   Ú__doc__Úis_containerrF   r   rJ   r*   rQ   r6   r   r   r   rA   rA   N   sO   † ñð
 €Lò,ð ñó ðð ñ+ó ð+ð ñ*ó ó*r   rA   c                   ó(   • \ rS rSrSr\S 5       rSrg)ÚResourceContaineréo   Tc                 ó8   • U R                   R                  U 5      $ r1   )r!   Úget_resourcesrE   s    r   Ú	resourcesÚResourceContainer.resourcesr   s   € à�{‰{×(Ñ(¨Ó.Ð.r   r   N)r2   r3   r4   r5   rT   r   rZ   r6   r   r   r   rV   rV   o   s   † Ø€Làñ/ó ó/r   rV   c                   óè   • \ rS rSrSr\R                  R                  S5      (       a  SrOSrS r	S r
S rS	 rS
 rS rS rS rS rS rS rS r\" \R.                  R0                  5      rS rSrg)ÚResourceFinderéw   z,
Resource finder for file system resources.
Újava)ú.pycú.pyoz.class)r`   ra   c                 ó’   • Xl         [        USS 5      U l        [        R                  R                  [        USS5      5      U l        g )NÚ
__loader__Ú__file__Ú )ÚmoduleÚgetattrÚloaderr   r   r$   r   )r   rf   s     r   r   ÚResourceFinder.__init__�   s4   € ØŒÜ˜f l°DÓ9ˆŒÜ—G‘G—O‘O¤G¨F°JÀÓ$CÓDˆ�	r   c                 ó@   • [         R                  R                  U5      $ r1   )r   r   Úrealpath©r   r   s     r   Ú_adjust_pathÚResourceFinder._adjust_path†   s   € Ü�w‰w×Ñ Ó%Ð%r   c                 óÔ   • U R                  U R                  5      nX:X  a  gUR                  [        R                  5      (       d  U[        R                  -   nUR                  U5      $ )NT)rm   r   Úendswithr   ÚsepÚ
startswith)r   r   r   s      r   Ú_is_in_baseÚResourceFinder._is_in_base‰   sM   € Ø× Ñ  §¡Ó+ˆØ‹<ØØ�}‰}œRŸV™V×$Ñ$Øœ"Ÿ&™&‘=ˆDØ�‰˜tÓ$Ð$r   c                 ó8  • [        U[        5      (       a  SnOSnUR                  U5      nUR                  SU R                  5        [
        R                  R                  " U6 nU R                  U5      nU R                  U5      (       d  [        SU-  5      eU$ )Nó   /Ú/r   z!Resource name escapes package: %r)Ú
isinstancer*   ÚsplitÚinsertr   r   r   r   rm   rs   r   )r   Úresource_namerq   Úpartsr,   s        r   Ú
_make_pathÚResourceFinder._make_path‘   s‘   € ô �m¤U×+Ñ+Ø‰CàˆCØ×#Ñ# CÓ(ˆØ�‰�Q˜Ÿ	™	Ô"Ü—‘—’˜uÐ%ˆØ×"Ñ" 6Ó*ˆð ×Ñ ×'Ñ'Ü"ð $(Ø*7ñ$8ó 9ð 9àˆr   c                 ó@   • [         R                  R                  U5      $ r1   )r   r   r'   rl   s     r   Ú_findÚResourceFinder._find£   s   € Ü�w‰w�~‰~˜dÓ#Ð#r   c                 ó   • S UR                   4$ r1   )r   ©r   r   s     r   r"   ÚResourceFinder.get_cache_info¦   s   € Ø�X—]‘]Ð"Ð"r   c                 óÂ   • U R                  U5      nU R                  U5      (       d  S nU$ U R                  U5      (       a  [        X5      nO[	        X5      nX#l        U$ r1   )r}   r€   Ú_is_directoryrV   rA   r   )r   r{   r   r,   s       r   ÚfindÚResourceFinder.find©   s\   € Ø�‰˜}Ó-ˆØ�z‰z˜$×ÑØˆFð ˆð ×!Ñ! $×'Ñ'Ü*¨4Ó?‘ä! $Ó6�ØŒKØˆr   c                 ó.   • [        UR                  S5      $ ©NÚrb)r(   r   rƒ   s     r   rD   ÚResourceFinder.get_streamµ   s   € Ü�H—M‘M 4Ó(Ð(r   c                 ó„   • [        UR                  S5       nUR                  5       sS S S 5        $ ! , (       d  f       g = frŠ   )r(   r   Úread)r   r   r.   s      r   rM   ÚResourceFinder.get_bytes¸   s'   € Ü�(—-‘- Ô&¨!Ø—6‘6“8÷ '×&×&ús   —1±
?c                 óT   • [         R                  R                  UR                  5      $ r1   )r   r   Úgetsizerƒ   s     r   rP   ÚResourceFinder.get_size¼   s   € Ü�w‰w�‰˜xŸ}™}Ó-Ð-r   c                 óª   ^ • U 4S jn[        [        R                  " UR                  5       Vs/ s H  o2" U5      (       d  M  UPM     sn5      $ s  snf )Nc                 ó\   >• U S:g  =(       a     U R                  TR                  5      (       + $ )NÚ__pycache__)rp   Úskipped_extensions)r.   r   s    €r   ÚallowedÚ-ResourceFinder.get_resources.<locals>.allowedÁ   s%   ø€ Ø˜Ñ&×R¨q¯z©z¸$×:QÑ:QÓ/RÔ+RÐSr   )Úsetr   Úlistdirr   )r   r   r—   r.   s   `   r   rY   ÚResourceFinder.get_resources¿   s=   ø€ õ	Tô œrŸzšz¨(¯-©-Ô8ÓGÒ8˜!¸GÀA¿J—AÑ8ÑGÓHÐHùÒGs   ¯AÁAc                 ó8   • U R                  UR                  5      $ r1   )r†   r   rƒ   s     r   rT   ÚResourceFinder.is_containerÆ   s   € Ø×!Ñ! (§-¡-Ó0Ð0r   c              #   ó’  #   • U R                  U5      nUb¯  U/nU(       a¤  UR                  S5      nUv •  UR                  (       at  UR                  nUR                   HX  nU(       d  UnOSR                  XE/5      nU R                  U5      nUR                  (       a  UR                  U5        MT  Uv •  MZ     U(       a  M£  g g g 7f)Nr   rw   )r‡   ÚpoprT   r>   rZ   r   Úappend)r   r{   r   ÚtodoÚrnamer>   Únew_nameÚchilds           r   ÚiteratorÚResourceFinder.iteratorË   s£   é € Ø—9‘9˜]Ó+ˆØÑØ�:ˆDÞØŸ8™8 A›;�Ø’Ø×(×(Ø$ŸM™M�EØ (× 2Ô 2˜Þ$Ø'+™Hà'*§x¡x°°Ó'>˜HØ $§	¡	¨(Ó 3˜Ø ×-×-Ø ŸK™K¨Ö.à"'œKñ !3÷ ’$ð  ùs   ‚C CÃC)r   rh   rf   N)r2   r3   r4   r5   rS   ÚsysÚplatformrr   r–   r   rm   rs   r}   r€   r"   r‡   rD   rM   rP   rY   rT   Ústaticmethodr   r   r%   r†   r¥   r6   r   r   r   r]   r]   w   s�   † ñð ‡|�|×Ñ˜v×&Ñ&Ø7Ñà-ÐòEò
&ò%òò$$ò#ò
ò)òò.òIò1ñ ! §¡§¡Ó/€Mõ(r   r]   c                   ó\   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
 rS rSrU =r$ )ÚZipResourceFinderéà   z.
Resource finder for resources in .zip files.
c                 óP  >• [         [        U ]  U5        U R                  R                  nS[        U5      -   U l        [        U R                  S5      (       a  U R                  R                  U l        O[        R                  U   U l        [        U R                  5      U l        g )Nr   Ú_files)r   r«   r   rh   ÚarchiveÚlenÚ
prefix_lenÚhasattrr®   Ú	zipimportÚ_zip_directory_cacheÚsortedÚindex)r   rf   r¯   r   s      €r   r   ÚZipResourceFinder.__init__å   sv   ø€ ÜÔ Ñ/°Ô7Ø—+‘+×%Ñ%ˆØœc '›lÑ*ˆŒä�4—;‘; ×)Ñ)ØŸ+™+×,Ñ,ˆD�Kä#×8Ñ8¸ÑAˆDŒKÜ˜DŸK™KÓ(ˆ�
r   c                 ó   • U$ r1   r   rl   s     r   rm   ÚZipResourceFinder._adjust_pathð   s   € Øˆr   c                 ó  • XR                   S  nXR                  ;   a  SnOqU(       a*  US   [        R                  :w  a  U[        R                  -   n[        R                  " U R
                  U5      n U R
                  U   R                  U5      nU(       d,  [        R                  SXR                  R                  5        U$ [        R                  SXR                  R                  5        U$ ! [         a    Sn Nmf = f)NTéÿÿÿÿFz_find failed: %r %rz_find worked: %r %r)r±   r®   r   rq   Úbisectr¶   rr   Ú
IndexErrorÚloggerÚdebugrh   r+   )r   r   r,   Úis       r   r€   ÚZipResourceFinder._findó   sË   € Ø—O‘OÐ$Ð%ˆØ—;‘;ÓØ‰Fæ˜˜R™¤B§F¡FÓ*ØœbŸf™f‘}�Ü—’˜dŸj™j¨$Ó/ˆAðØŸ™ A™×1Ñ1°$Ó7�ö Ü�L‰LÐ.°·k±k×6HÑ6HÔIð ˆô �L‰LÐ.°·k±k×6HÑ6HÔIØˆøô ó Ø’ðús   Á4C1 Ã1D Ã?D c                 ój   • U R                   R                  nUR                  S[        U5      -   S  nX#4$ )Nr   )rh   r¯   r   r°   )r   r   r+   r   s       r   r"   Ú ZipResourceFinder.get_cache_info  s2   € Ø—‘×$Ñ$ˆØ�}‰}˜Q¤ V£™_Ð-Ð.ˆØˆ|Ðr   c                 óL   • U R                   R                  UR                  5      $ r1   )rh   Úget_datar   rƒ   s     r   rM   ÚZipResourceFinder.get_bytes
  s   € Ø�{‰{×#Ñ# H§M¡MÓ2Ð2r   c                 óL   • [         R                  " U R                  U5      5      $ r1   )ÚioÚBytesIOrM   rƒ   s     r   rD   ÚZipResourceFinder.get_stream  s   € Ü�zŠz˜$Ÿ.™.¨Ó2Ó3Ð3r   c                 óX   • UR                   U R                  S  nU R                  U   S   $ )Né   )r   r±   r®   r   s      r   rP   ÚZipResourceFinder.get_size  s+   € Ø�}‰}˜TŸ_™_Ð-Ð.ˆØ�{‰{˜4Ñ  Ñ#Ð#r   c                 óL  • UR                   U R                  S  nU(       a*  US   [        R                  :w  a  U[        R                  -  n[	        U5      n[        5       n[        R                  " U R                  U5      nU[	        U R                  5      :  aŠ  U R                  U   R                  U5      (       d   U$ U R                  U   US  nUR                  UR                  [        R                  S5      S   5        US-  nU[	        U R                  5      :  a  MŠ  U$ )Nr»   r   r   )r   r±   r   rq   r°   r™   r¼   r¶   rr   Úaddry   )r   r   r   Úplenr,   rÀ   Úss          r   rY   ÚZipResourceFinder.get_resources  så   € Ø�}‰}˜TŸ_™_Ð-Ð.ˆÞ�D˜‘H¤§¡Ó&Ø”B—F‘F‰NˆDÜ�4‹yˆÜ“ˆÜ�MŠM˜$Ÿ*™* dÓ+ˆØ”#�d—j‘j“/Ó!Ø—:‘:˜a‘=×+Ñ+¨D×1Ñ1Øð ˆð —
‘
˜1‘˜d˜eÐ$ˆAØ�J‰J�q—w‘wœrŸv™v qÓ)¨!Ñ,Ô-Ø�‰FˆAð ”#�d—j‘j“/Õ!ð ˆr   c                 ó*  • XR                   S  nU(       a*  US   [        R                  :w  a  U[        R                  -  n[        R                  " U R                  U5      n U R                  U   R                  U5      nU$ ! [         a    Sn U$ f = f)Nr»   F)r±   r   rq   r¼   r¶   rr   r½   )r   r   rÀ   r,   s       r   r†   ÚZipResourceFinder._is_directory#  sƒ   € Ø—O‘OÐ$Ð%ˆÞ�D˜‘H¤§¡Ó&Ø”B—F‘F‰NˆDÜ�MŠM˜$Ÿ*™* dÓ+ˆð	Ø—Z‘Z ‘]×-Ñ-¨dÓ3ˆFð ˆøô ó 	Ø‰FØˆð	ús   Á"B ÂBÂB)r®   r¶   r±   )r2   r3   r4   r5   rS   r   rm   r€   r"   rM   rD   rP   rY   r†   r6   r7   r8   s   @r   r«   r«   à   s:   ø† ñõ	)òòò$ò
3ò4ò$ò÷	ð 	r   r«   c                 ó(   • U[         [        U 5      '   g r1   )Ú_finder_registryÚtype)rh   Úfinder_makers     r   Úregister_finderrÙ   @  s   € Ø%1Ô”T˜&“\Ò"r   c                 ód  • U [         ;   a  [         U    nU$ U [        R                  ;  a  [        U 5        [        R                  U    n[	        USS5      nUc  [        S5      e[	        USS5      n[        R                  [        U5      5      nUc  [        SU -  5      eU" U5      nU[         U '   U$ )z�
Return a resource finder for a package.
:param package: The name of the package.
:return: A :class:`ResourceFinder` instance for the package.
Ú__path__Nz8You cannot get a finder for a module, only for a packagerc   zUnable to locate finder for %r)	Ú_finder_cacher§   ÚmodulesÚ
__import__rg   r   rÖ   r/   r×   )Úpackager,   rf   r   rh   rØ   s         r   r!   r!   G  s¸   € ð ”-ÓÜ˜wÑ'ˆð €Mð œ#Ÿ+™+Ó%Ü�wÔÜ—‘˜WÑ%ˆÜ�v˜z¨4Ó0ˆØ‰<Ü"ð $8ó 9ð 9ä˜ ¨tÓ4ˆÜ'×+Ñ+¬D°«LÓ9ˆØÑÜ"Ð#CÀgÑ#MÓNÐNÙ˜fÓ%ˆØ!'Œ�gÑØ€Mr   Ú	__dummy__c                 ó0  • Sn[         R                  " U 5        [        R                  R	                  U 5      n[
        R	                  [        U5      5      nU(       a9  [        n[        R                  R                  U S5      Ul        X$l        U" U5      nU$ )zœ
Return a resource finder for a path, which should represent a container.

:param path: The path.
:return: A :class:`ResourceFinder` instance for the path.
Nre   )ÚpkgutilÚget_importerr§   Úpath_importer_cacher/   rÖ   r×   Ú_dummy_moduler   r   r   rd   rc   )r   r,   rh   r!   rf   s        r   Úfinder_for_pathræ   c  ss   € ð €Fä×Ò˜ÔÜ×$Ñ$×(Ñ(¨Ó.€FÜ×!Ñ!¤$ v£,Ó/€FÞÜˆÜŸ'™'Ÿ,™, t¨RÓ0ˆŒØ"ÔÙ˜“ˆØ€Mr   )-Ú
__future__r   r¼   rÈ   Úloggingr   râ   r§   Útypesr³   re   r   Úutilr   r   r   Ú	getLoggerr2   r¾   rI   r
   Úobjectr:   rA   rV   r]   r«   r×   ÚzipimporterrÖ   Ú_frozen_importlib_externalÚ_fiÚImportErrorÚ_frozen_importlibÚSourceFileLoaderÚ
FileFinderÚSourcelessFileLoaderÚAttributeErrorrÙ   rÜ   r!   Ú
ModuleTyper   rå   ræ   r   r   r   Ú<module>r÷      sI  ðõ (ã Û 	Û Û 	Û Û 
Û Û å ß 8Ñ 8à	×	Ò	˜8Ó	$€à€ô*�Eô *ôZ�6ô ô*ˆ|ô *ôB/˜ô /ôf(�Vô f(ôRL˜ô Lñ^ ˜“J °	×0EÑ0EÐGXÐYÐ ð	ð(Û0ð .<Ð�S×)Ñ)Ñ*Ø'5Ð�S—^‘^Ñ$à1?Ð�S×-Ñ-Ñ.Øò
2ð €òð2 × Ò ¡ [Ó!1Ó2€óøð] ó (Ý'ð(ûð 	�^Ð$ó 	Ùð	ús0   Â%C; Â).D Ã;
DÄD ÄDÄD ÄDÄD