
    -Ph                     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mZm	Z	 d dl
Z
ddlmZ 	 d dlZe
j        Zn# e$ r
 e
j        ZY nw xY w	 d dlZej        ZdZn# e$ r eZdZY nw xY wdZd	Z e	ej        j                  Ze	d
             Ze	d             Ze G d d                      Z G d d          ZdS )    )	dataclassN   )safe_makedirscached_function)__version__z.gz z.zipi  @c                    t           j                            |           }dt          |          |fz                      d          }t          j        |          }t          |d          5 }|                    d          }|r,|	                    |           |                    d          }|,d d d            n# 1 swxY w Y   |
                                S )Nz%d:%sUTF-8rbi  )ospathnormpathlenencodehashlibsha256openreadupdate	hexdigest)filenamer   prefixmfdatas         R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Build/Cache.py	file_hashr   "   s    7H%%DTD))11'::FvA	dD		 !Qvve}} 	!HHTNNN66%==D  	!! ! ! ! ! ! ! ! ! ! ! ! ! ! !
 ;;==s   +AB;;B?B?c                     dt           j        v rt           j        d         S d} t           j        dk    rOt          j        dk    r t           j                            d          } nt           j                            d          } | r/t           j                            |           rt          | d          S t           j                            t          dd	                    S )
z
    Return the base directory containing Cython's caches.

    Priority:

    1. CYTHON_CACHE_DIR
    2. (OS X): ~/Library/Caches/Cython
       (posix not OS X): XDG_CACHE_HOME/cython if XDG_CACHE_HOME defined
    3. ~/.cython

    CYTHON_CACHE_DIRNposixdarwinz~/Library/CachesXDG_CACHE_HOMEcython~z.cython)
r   environnamesysplatformr   
expandusergetisdir	join_path)parents    r   get_cython_cache_dirr.   /   s     RZ''z,--F	w'<8##W''(:;;FF Z^^$455F +"'--'' +*** 7iY77888    c                   @    e Zd ZU dZeed<   dZeed<   dZeed<   d Z	dS )FingerprintFlagsclanguageFpy_limited_api
np_pythranc                 D    t          | j        | j        | j        f          S N)strr3   r4   r5   )selfs    r   get_fingerprintz FingerprintFlags.get_fingerprintT   s    DM4#6HIIIr/   N)
__name__
__module____qualname__r3   r8   __annotations__r4   boolr5   r:    r/   r   r1   r1   N   sZ         Hc ND   JJ J J J Jr/   r1   c                   P    e Zd Zd
dZ e            fdZd Zd Zd Zd Z	dd	Z
dS )CacheNc                     |"t          t                      d          | _        n|| _        ||nt          | _        t
          j                            | j                  st          j        | j                   d S d S )Ncompiler)r,   r.   r   MAX_CACHE_SIZE
cache_sizer   existsmakedirs)r9   r   rF   s      r   __init__zCache.__init__Y   sr    <!"6"8"8*EEDIIDI(2(>**Nw~~di(( 	#K	"""""	# 	#r/   c                    	 t          j        t          j        d                    }|                    t          |                              d                     t          |          D ]^}t          j        	                    |          d         dvr5|                    t          |                              d                     _|                    |
                                                    d                     |                    |
                                                    d                     |                                S # t          $ r Y dS w xY w)a;  
        Return a fingerprint of a cython file that is about to be cythonized.

        Fingerprints are looked up in future compilations. If the fingerprint
        is found, the cythonization can be skipped. The fingerprint must
        incorporate everything that has an influence on the generated code.
        r
      )z.cz.cppz.hN)r   r   r   r   r   r   sortedr   r   splitextr:   r   OSError)r9   r   dependenciescompilation_optionsflagsr   xs          r   transitive_fingerprintzCache.transitive_fingerprintb   s3   	{1'::;;AHHYx((//88999L)) ; ;7##A&&q)1EEEHHYq\\0099::: HHU**,,33G<<===HH(88::AA'JJKKK;;==  	 	 	44	s   EE 
E! E!c                 v    t          | j        t          j                            |          d|          |z   S )N-)r,   r   r   basename)r9   cfilefingerprintexts       r   fingerprint_filezCache.fingerprint_file}   s9    diBG,<,<U,C,C,C,C[[!QRRUXX	
r/   c                 j   t           j                            | j                  st          | j                   |                     ||t
                    }t           j                            |          r|S |                     ||t                    }t           j                            |          r|S d S r7   )r   r   rG   r   rZ   gzip_extzip_ext)r9   c_filerX   gz_fingerprint_filezip_fingerprint_files        r   lookup_cachezCache.lookup_cache   s     w~~di(( 	%$)$$$"33FKRR7>>-.. 	'&&#44V['RR7>>.// 	(''tr/   c           	         t           j                            |          d         }|t          k    r}t          j        |d            t          |d          5 }t          |d          5 }t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S |t          k    rt          j        |d            t           j        
                    |          }t          j        |          5 }|                                D ]&}|                    |t          ||                     '	 d d d            d S # 1 swxY w Y   d S t!          d|           )NrK   r   wbz"Unsupported cache file extension: )r   r   rM   r\   utime	gzip_openr   shutilcopyfileobjr]   dirnamezipfileZipFilenamelistextractr,   
ValueError)	r9   r^   cachedrY   gr   rh   zartifacts	            r   load_from_cachezCache.load_from_cache   s*   gv&&q)(??HVT"""64(( -A&$'' -1&q!,,,- - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - G^^HVT"""goof--G(( FA !

 F FHIIh	'8(D(DEEEEFF F F F F F F F F F F F F F F F F F G#GGHHHsH   B!'B	=B!	B	B!B	B!!B%(B%<EEEc                    |                                 }t          |          dk    r|                     ||t                    }t	          |d          5 }t          |dz   d          5 }t          j        ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   n|                     ||t                    }t          j
        |dz   dt                    5 }|D ]5}	|                    |	t          j                            |	                     6	 d d d            n# 1 swxY w Y   t          j        |dz   |           d S )NrK   r   z.tmprc   w)get_generated_source_filesr   rZ   r\   r   re   rf   rg   r]   ri   rj   zipfile_compression_modewriter   r   rV   rename)
r9   r^   rX   compilation_result	artifactsrZ   r   ro   ziprq   s
             r   store_to_cachezCache.store_to_cache   s   &AACC	y>>Q#44V[(SSfd## -q/&8$?? -1&q!,,,- - - - - - - - - - - - - - -- - - - - - - - - - - - - - -  $44V['RR 6)30H  D ) D DHIIh(8(8(B(BCCCCDD D D D D D D D D D D D D D D
 		"V+-=>>>>>sH   B!(B
>B!
B	B!B	B!!B%(B%'9D--D14D1333333?c                    	 t          j        dddt          j                            | j                  gt           j                  }|j        }|j        dk    rIdt          |	                                
                                d                   z  }|| j        k     rd S n# t          t          f$ r Y nw xY wd}g }t          j        | j                  D ]W}t          | j        |          }t          j        |          }||j        z  }|                    |j        |j        |f           X|| j        k    rMt)          t+          |                    D ]2\  }	}
}t          j        |           ||
z  }|| j        |z  k     r d S 1d S d S )Nduz-sz-k)stdoutr   i   )
subprocessrunr   r   abspathPIPEr   
returncodeintstripsplitrF   rN   rm   listdirr,   statst_sizeappendst_atimereversedrL   unlink)r9   ratiocompleted_processr   
total_sizeallfiler   stimesizes              r   cleanup_cachezCache.cleanup_cache   s   
	 *tT27??49#=#=>z! ! ! '-F +q00!C(<(<(>(>q(A$B$BB
//F$ 	 	 	D	
Jty)) 	6 	6DTY--DA!)#JJJ
AIt45555''$,VC[[$9$9   dD	$d"
% 777EE 8	 (' s   BB$ $B87B8r7   )r}   )r;   r<   r=   rI   r1   rS   rZ   ra   rr   r|   r   r@   r/   r   rB   rB   X   s        # # # # BRAQASAS   6
 
 

  I I I ? ? ?      r/   rB   )dataclassesr   r'   r   r   rf   r   Utilsr   r   ri   r   r   zlibZIP_DEFLATEDrv   ImportError
ZIP_STOREDgzipr   re   r\   r]   rE   r   joinr,   r   r.   r1   rB   r@   r/   r   <module>r      s   ! ! ! ! ! ! 



 				       2 2 2 2 2 2 2 2       2KKK&3 2 2 2&12KKK	IHH   IHHH "OBGL))	 	 	 	 9 9 9< J J J J J J J Jo o o o o o o o o os!   : A	A	A 	A'&A'