o
    bb                     @   s   d dl Z d dlZde jv Zdd Zdd Zdd Zd	d
 Zdd ZG dd dZ	G dd dZ
e
jD ]Zee
de e
j q2e
 Zdd ZG dd dZdd Zdd ZdS )    NZ__pypy__c                  C   s6   dt jvrd S trt jdk rd S dd l} | d d S )N	distutils)      r   a  Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils.)sysmodulesis_pypyversion_infowarningswarn)r	    r   o/home/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/_distutils_hack/__init__.pywarn_distutils_present	   s   
r   c                  C   sF   dt jvrd S dd l} | d dd t jD }|D ]}t j|= qd S )Nr   r   z"Setuptools is replacing distutils.c                 S   s"   g | ]}|d ks| dr|qS )r   z
distutils.)
startswith).0namer   r   r   
<listcomp>"   s    z#clear_distutils.<locals>.<listcomp>)r   r   r	   r
   )r	   Zmodsr   r   r   r   clear_distutils   s   


r   c                  C   s   	 t jdd} | dkS )NSETUPTOOLS_USE_DISTUTILSlocal)osenvironget)Zwhichr   r   r   enabled+   s   r   c                  C   sL   dd l } t  t  | d W d    n1 sw   Y  | d}d S )Nr   r   zdistutils.core)	importlibr   shimimport_module)r   Zcorer   r   r   ensure_local_distutils3   s   r   c                   C   s   	 t  rt  t  d S d S N)r   r   r   r   r   r   r   do_overrideD   s
   
r   c                   @      e Zd Zdd Zdd ZdS )
_TrivialRec                 G   s
   || _ d S r   )	_patterns)selfpatternsr   r   r   __init__Q      
z_TrivialRe.__init__c                    s   t  fdd| jD S )Nc                 3   s    | ]}| v V  qd S r   r   )r   Zpatstringr   r   	<genexpr>U   s    z#_TrivialRe.match.<locals>.<genexpr>)allr!   )r"   r'   r   r&   r   matchT   s   z_TrivialRe.matchN)__name__
__module____qualname__r$   r*   r   r   r   r   r    P       r    c                   @   sn   e Zd ZdddZdd Zedd Zdd	 Zed
d Z	edd Z
dd Zejdk r2g dZdS dgZdS )DistutilsMetaFinderNc                 C   s>   |d ur| dsd S djdi t }t| |dd }| S )Nztest.zspec_for_{fullname}c                   S      d S r   r   r   r   r   r   <lambda>`       z/DistutilsMetaFinder.find_spec.<locals>.<lambda>r   )r   formatlocalsgetattr)r"   fullnamepathtargetZmethod_namemethodr   r   r   	find_specY   s
   zDistutilsMetaFinder.find_specc                    sv   |   rd S dd l}dd l}dd l}z|d W n
 ty#   Y d S w G  fddd|jj}|jj	d|  j
dS )Nr   zsetuptools._distutilsc                       s    e Zd Z fddZdd ZdS )z?DistutilsMetaFinder.spec_for_distutils.<locals>.DistutilsLoaderc                    s
   d _  S )Nr   )r+   )r"   specmodr   r   create_moduley   s   zMDistutilsMetaFinder.spec_for_distutils.<locals>.DistutilsLoader.create_modulec                 S   r0   r   r   )r"   moduler   r   r   exec_module}   s   zKDistutilsMetaFinder.spec_for_distutils.<locals>.DistutilsLoader.exec_moduleN)r+   r,   r-   r>   r@   r   r<   r   r   DistutilsLoaderx   s    rA   r   )origin)
is_cpythonr   Zimportlib.abcZimportlib.utilr   	ExceptionabcZLoaderZutilspec_from_loader__file__)r"   r   rA   r   r<   r   spec_for_distutilsc   s   	
z&DistutilsMetaFinder.spec_for_distutilsc                   C   s   	 t jdS )Nzpybuilddir.txt)r   r7   isfiler   r   r   r   rC      s   zDistutilsMetaFinder.is_cpythonc                 C   s"   	 |   rd S t  dd | _d S )Nc                   S   r0   r   r   r   r   r   r   r1      r2   z2DistutilsMetaFinder.spec_for_pip.<locals>.<lambda>)pip_imported_during_buildr   rH   r"   r   r   r   spec_for_pip   s
   z DistutilsMetaFinder.spec_for_pipc                    s&   	 dd l }t fdd|d D S )Nr   c                 3   s    | ]
\}}  |V  qd S r   )frame_file_is_setup)r   framelineclsr   r   r(      s    
z@DistutilsMetaFinder.pip_imported_during_build.<locals>.<genexpr>)	tracebackanyZ
walk_stack)rQ   rR   r   rP   r   rJ      s
   z-DistutilsMetaFinder.pip_imported_during_buildc                 C   s   	 | j dddS )NrG    zsetup.py)	f_globalsr   endswith)rN   r   r   r   rM      s   z'DistutilsMetaFinder.frame_file_is_setupc                 C   s   	 t   dd | _d S )Nc                   S   r0   r   r   r   r   r   r   r1      r2   z>DistutilsMetaFinder.spec_for_sensitive_tests.<locals>.<lambda>)r   rH   rK   r   r   r   spec_for_sensitive_tests   s   z,DistutilsMetaFinder.spec_for_sensitive_tests)r   
   )test.test_distutilsztest.test_peg_generatorztest.test_importlibrY   r   )r+   r,   r-   r:   rH   staticmethodrC   rL   classmethodrJ   rM   rW   r   r   sensitive_testsr   r   r   r   r/   X   s"    

!




r/   Z	spec_for_c                   C   s   t tjv p
t  d S  d S r   )DISTUTILS_FINDERr   	meta_pathinsert_shimr   r   r   r   add_shim   s   r`   c                   @   r   )r   c                 C   
   t   d S r   )r_   rK   r   r   r   	__enter__   r%   zshim.__enter__c                 C   ra   r   )remove_shim)r"   excvaluetbr   r   r   __exit__   r%   zshim.__exit__N)r+   r,   r-   rb   rg   r   r   r   r   r      r.   r   c                   C   s   t jdt d S )Nr   )r   r^   insertr]   r   r   r   r   r_      s   r_   c                   C   s(   z	t jt W d S  ty   Y d S w r   )r   r^   remover]   
ValueErrorr   r   r   r   rc      s
   rc   )r   r   builtin_module_namesr   r   r   r   r   r   r    r/   r\   r   setattrrW   r]   r`   r   r_   rc   r   r   r   r   <module>   s*   

g