§
    ´³Ùg   ã                   óü   — d Z ddlZddlZddl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 e	j        d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Z G d	„ d
¦  «        Z e¦   «         Zej        Zej        Zej        ZdS )z3Use a cache layer in front of entry point scanning.é    Nzstevedore._cachec                  ó  — t           j        dk    rot          j        dk    r_t           j                             dd¦  «        pt           j                             d¦  «        } t           j                             | d¦  «        S t          j        dk    rt           j                             d¦  «        S t           j                             dd¦  «        pt           j                             d	¦  «        } t           j                             | d
¦  «        S )zpLocate a platform-appropriate cache directory to use.

    Does not ensure that the cache directory exists.
    ÚposixÚdarwinÚXDG_CACHE_HOMENz~/.cachezpython-entrypointsz$~/Library/Caches/Python Entry PointsÚLOCALAPPDATAz~\AppData\LocalzPython Entry Points)	ÚosÚnameÚsysÚplatformÚenvironÚgetÚpathÚ
expanduserÚjoin)Ú	base_paths    úF/granary/edev/quantum/lib/python3.11/site-packages/stevedore/_cache.pyÚ_get_cache_dirr      sÕ   € õ 
„w�'ÒÐ�cœl¨hÒ6Ð6å”J—N’NÐ#3°TÑ:Ô:ð .ÝŒw×!Ò! *Ñ-Ô-ð 	åŒw�|Š|˜IÐ';Ñ<Ô<Ð<õ 
Œ˜Ò	!Ð	!ÝŒw×!Ò!Ð"HÑIÔIÐIõ ”J—N’N >°4Ñ8Ô8ð 7ÝŒw×!Ò!Ð"5Ñ6Ô6ð 	åŒw�|Š|˜IÐ'<Ñ=Ô=Ð=ó    c                 ó¬   — 	 t          j        | ¦  «        }|j        S # t          $ r*}|j        t          j        t          j        hvr‚ Y d }~nd }~ww xY wdS )Ng      ð¿)r   ÚstatÚst_mtimeÚOSErrorÚerrnoÚENOENTÚENOTDIR)r	   ÚsÚerrs      r   Ú
_get_mtimer   6   sl   € ðÝŒG�D‰MŒMˆØŒzÐøÝð ð ð ØŒ9�Uœ\­5¬=Ð9Ð9Ð9Øð :Ð9Ð9Ð9Ð9øøøøðøøøð ˆ4s   ‚ �
A§ AÁAc                 óP   — t          j        d¦  «                             | ¦  «        S )NÚf)ÚstructÚStructÚpack)r    s    r   Ú	_ftobytesr$   @   s    € ÝŒ=˜ÑÔ×"Ò" 1Ñ%Ô%Ð%r   c                 óâ  — g }t          j        ¦   «         }|                     t          j                             d¦  «        ¦  «         |                     t          j                             d¦  «        ¦  «         | D �]]}t          |¦  «        }|                     |                     d¦  «        ¦  «         |                     t          |¦  «        ¦  «         | 	                    ||f¦  «         t          j        t          j        t          j                             |dd¦  «        ¦  «        t          j        t          j                             |dd¦  «        ¦  «        ¦  «        D ]r}t          |¦  «        }|                     |                     d¦  «        ¦  «         |                     t          |¦  «        ¦  «         | 	                    ||f¦  «         Œs�Œ_|                     ¦   «         |fS )z4Return a hash and the path settings that created it.zutf-8z*.dist-infozentry_points.txtz
*.egg-info)ÚhashlibÚsha256Úupdater
   Ú
executableÚencodeÚprefixr   r$   ÚappendÚ	itertoolsÚchainÚglobÚiglobr   r   r   Ú	hexdigest)r   ÚpathsÚhÚentryÚmtimeÚep_files         r   Ú_hash_settings_for_pathr7   D   s®  € à€EÝŒÑÔ€Að ‡H‚H�SŒ^×"Ò" 7Ñ+Ô+Ñ,Ô,Ð,Ø‡H‚H�SŒZ×Ò˜wÑ'Ô'Ñ(Ô(Ð(àð +ñ +ˆÝ˜5Ñ!Ô!ˆØ	�Š�—’˜gÑ&Ô&Ñ'Ô'Ð'Ø	�Š•˜5Ñ!Ô!Ñ"Ô"Ð"Ø�Š�e˜U�^Ñ$Ô$Ð$å ”Ý”
�2œ7Ÿ<š<¨Ø(5Ø(:ñ<ô <ñ =ô =õ ”
�2œ7Ÿ<š<¨Ø(4Ø(:ñ<ô <ñ =ô =ñ	
ô 
ð 	+ð 	+ˆGõ ˜wÑ'Ô'ˆEØ�HŠH�W—^’^ GÑ,Ô,Ñ-Ô-Ð-Ø�HŠH•Y˜uÑ%Ô%Ñ&Ô&Ð&Ø�LŠL˜' 5Ð)Ñ*Ô*Ð*Ð*ñ	+ð �KŠK‰MŒM˜5Ð!Ð!r   c                  ó   ‡— t          j        ¦   «         Št          ‰t          ¦  «        sˆfd„‰j        D ¦   «         Ši } ‰                     ¦   «         D ]b\  }}t          ¦   «         }g }|| |<   |D ]E}|j        |j        |j	        f}||v rŒ| 
                    |¦  «         |                     |¦  «         ŒFŒc| t          j        t          j        dœS )Nc                 ó>   •— i | ]}|‰                      |¬ ¦  «        “ŒS ))Úgroup)Úselect)Ú.0r:   Úreal_groupss     €r   ú
<dictcomp>z)_build_cacheable_data.<locals>.<dictcomp>j   s<   ø€ ð 
ð 
ð 
àð �;×%Ò%¨EÐ%Ñ2Ô2ð
ð 
ð 
r   )Úgroupszsys.executablez
sys.prefix)Úimportlib_metadataÚentry_pointsÚ
isinstanceÚdictr?   ÚitemsÚsetr	   Úvaluer:   Úaddr,   r
   r)   r+   )r?   r	   Ú
group_dataÚexistingÚmembersÚepÚitemr=   s          @r   Ú_build_cacheable_datarM   d   s  ø€ Ý$Ô1Ñ3Ô3€Kå�k¥4Ñ(Ô(ð 
ð
ð 
ð 
ð 
à$Ô+ð
ñ 
ô 
ˆð €FØ'×-Ò-Ñ/Ô/ð !ð !ÑˆˆjÝ‘5”5ˆØˆØˆˆt‰Øð 		!ð 		!ˆBð
 ”7˜BœH b¤hÐ.ˆDØ�xÐÐØØ�LŠL˜ÑÔÐØ�NŠN˜4Ñ Ô Ð Ð ð		!ð Ýœ.Ý”jðð ð r   c                   ó4   — e Zd Zdd„Zd„ Zdd„Zdd„Zdd„ZdS )ÚCacheNc                 ó0  — |€t          ¦   «         }|| _        i | _        d| _        t	          t
          j                             t
          j                             | j        d¦  «        ¦  «        t          j
        dd…         dk    g¦  «        r	d| _        d S d S )NFz.disabler   é   z/tmpT)r   Ú_dirÚ	_internalÚ_disable_cachingÚanyr   r   Úisfiler   r
   r)   )ÚselfÚ	cache_dirs     r   Ú__init__zCache.__init__ˆ   s�   € ØÐÝ&Ñ(Ô(ˆIØˆŒ	ØˆŒØ %ˆÔõ
 •”—’�rœwŸ|š|¨D¬I°zÑBÔBÑCÔCÝ”˜q ˜sÔ# vÒ-ð/ñ 0ô 0ð 	)à$(ˆDÔ!Ð!Ð!ð	)ð 	)r   c                 ó  — |€t           j        }t          |¦  «        }|| j        v r| j        |         S t	          |¦  «        \  }}t
          j                             | j        |¦  «        }	 t           	                    d|¦  «         t          |¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   n»# t          t          j        f$ r¢ t          ¦   «         }||d<   | j        s…	 t           	                    d|¦  «         t          j        | j        d¬¦  «         t          |d¦  «        5 }t          j        ||¦  «         d d d ¦  «         n# 1 swxY w Y   n# t          $ r Y nw xY wY nw xY w|| j        |<   |S )Nz
reading %sÚpath_valueszwriting to %sT)Úexist_okÚw)r
   r   ÚtuplerS   r7   r   r   rR   ÚlogÚdebugÚopenÚjsonÚloadr   ÚJSONDecodeErrorrM   rT   ÚmakedirsÚdump)rW   r   Úinternal_keyÚdigestr[   Úfilenamer    Údatas           r   Ú_get_data_for_pathzCache._get_data_for_path–   sþ  € Øˆ<Ý”8ˆDå˜T‘{”{ˆØ˜4œ>Ð)Ð)Ø”> ,Ô/Ð/å5°dÑ;Ô;Ñˆ�Ý”7—<’< ¤	¨6Ñ2Ô2ˆð	Ý�IŠI�l HÑ-Ô-Ð-Ý�h‘”ð $ 1Ý”y ‘|”|�ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øøå�Ô-Ð.ð 	ð 	ð 	Ý(Ñ*Ô*ˆDØ"-ˆD�ÑØÔ(ð ðÝ—I’I˜o¨xÑ8Ô8Ð8Ý”K ¤	°DÐ9Ñ9Ô9Ð9Ý˜h¨Ñ,Ô,ð +°Ýœ	 $¨Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øøåð ð ð à�Dðøøøøøð	øøøð (,ˆŒ�|Ñ$Øˆs   Á,*C ÂB7Â+C Â7B;Â;C Â>B;Â?C Ã0E;Ã4AE(Ä:EÅE(ÅE 	Å E(Å#E 	Å$E(Å'E;Å(
E5Å2E;Å4E5Å5E;Å:E;c                 óÔ   — g }|                       |¦  «        }|                     di ¦  «                             |g ¦  «        }|D ]#}|                     t          j        |Ž ¦  «         Œ$|S )Nr?   )rk   r   r,   r@   Ú
EntryPoint)rW   r:   r   Úresultrj   rH   Úvalss          r   Úget_group_allzCache.get_group_all´   sq   € ØˆØ×&Ò& tÑ,Ô,ˆØ—X’X˜h¨Ñ+Ô+×/Ò/°°rÑ:Ô:ˆ
Øð 	@ð 	@ˆDØ�MŠMÕ,Ô7¸Ð>Ñ?Ô?Ð?Ð?Øˆr   c                 ód   — i }|                       ||¬¦  «        D ]}|j        |vr
|||j        <   Œ|S )N©r   )rp   r	   )rW   r:   r   rn   rK   s        r   Úget_group_namedzCache.get_group_named¼   sG   € ØˆØ×$Ò$ U°Ð$Ñ6Ô6ð 	%ð 	%ˆBØŒw˜fÐ$Ð$Ø"$��r”w‘øØˆr   c                 óº   — |                       ||¬¦  «                             ¦   «         D ]\  }}||k    r|c S Œt          d                     ||¦  «        ¦  «        ‚)Nrr   z No entrypoint {!r} in group {!r})rs   rD   Ú
ValueErrorÚformat)rW   r:   r	   r   rK   s        r   Ú
get_singlezCache.get_singleÃ   su   € Ø×,Ò,¨U¸Ð,Ñ>Ô>×DÒDÑFÔFð 	ð 	‰HˆD�"Ø�tŠ|ˆ|Ø�	�	�	ð åÐ;×BÒBØ�4ñô ñ ô ð 	r   )N)Ú__name__Ú
__module__Ú__qualname__rY   rk   rp   rs   rw   © r   r   rO   rO   †   ss   € € € € € ð)ð )ð )ð )ðð ð ð<ð ð ð ðð ð ð ðð ð ð ð ð r   rO   )Ú__doc__r   r/   r&   Úimportlib.metadataÚmetadatar@   r-   rb   Úloggingr   Úos.pathr!   r
   Ú	getLoggerr_   r   r   r$   r7   rM   rO   Ú_crp   rs   rw   r{   r   r   ú<module>rƒ      s7  ðð :Ð 9à €€€Ø €€€Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
ð €gÔÐ*Ñ+Ô+€ð>ð >ð >ð.ð ð ð&ð &ð &ð"ð "ð "ð@ð ð ðDBð Bð Bð Bð Bñ Bô Bð BðJ €U�W„W€ØÔ €ØÔ$€ØŒ]€
€
€
r   