a
    üÓEb²  ã                   @   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
ƒ 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   úX/home/ja/django-apps/lartica_env/lib/python3.9/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|= q4d 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 )z?
    Allow selection of distutils by environment variable.
    ÚSETUPTOOLS_USE_DISTUTILSÚlocal)ÚosÚenvironÚget)Zwhichr   r   r   Úenabled'   s    r   c                  C   sn   dd l } tƒ  tƒ � |  d¡ W d   ƒ n1 s40    Y  |  d¡}d|jv s\J |jƒ‚dtjvsjJ ‚d S )Nr   r   zdistutils.coreZ
_distutilszsetuptools._distutils.log)Ú	importlibr   ÚshimÚimport_moduleÚ__file__r   r   )r   Zcorer   r   r   Úensure_local_distutils/   s    (
r   c                   C   s   t ƒ rtƒ  tƒ  dS )z²
    Ensure that the local copy of distutils is preferred over stdlib.

    See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401
    for more motivation.
    N)r   r   r   r   r   r   r   Údo_override?   s    r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
_TrivialRec                 G   s
   || _ d S ©N)Ú	_patterns)ÚselfZpatternsr   r   r   Ú__init__L   s    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>P   ó    z#_TrivialRe.match.<locals>.<genexpr>)Úallr!   )r"   r%   r   r$   r   ÚmatchO   s    z_TrivialRe.matchN)Ú__name__Ú
__module__Ú__qualname__r#   r)   r   r   r   r   r   K   s   r   c                   @   sJ   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S )ÚDistutilsMetaFinderNc                 C   s4   |d urd S dj f i tƒ ¤Ž}t| |dd„ ƒ}|ƒ S )Nzspec_for_{fullname}c                   S   s   d S r    r   r   r   r   r   Ú<lambda>Y   r'   z/DistutilsMetaFinder.find_spec.<locals>.<lambda>)ÚformatÚlocalsÚgetattr)r"   ÚfullnameÚpathÚtargetZmethod_nameÚmethodr   r   r   Ú	find_specT   s
    zDistutilsMetaFinder.find_specc                    sv   |   ¡ rd S dd l}dd l}dd l}z| d¡‰ W n tyF   Y d S 0 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_modules   s    zMDistutilsMetaFinder.spec_for_distutils.<locals>.DistutilsLoader.create_modulec                 S   s   d S r    r   )r"   Úmoduler   r   r   Úexec_modulew   s    zKDistutilsMetaFinder.spec_for_distutils.<locals>.DistutilsLoader.exec_moduleN)r*   r+   r,   r:   r<   r   r8   r   r   ÚDistutilsLoaderq   s   r=   r   )Úorigin)Ú
is_cpythonr   Úimportlib.abcÚimportlib.utilr   Ú	ExceptionÚabcZLoaderZutilÚspec_from_loaderr   )r"   r   r=   r   r8   r   Úspec_for_distutils\   s    		
ÿz&DistutilsMetaFinder.spec_for_distutilsc                   C   s   t j d¡S )zj
        Suppress supplying distutils for CPython (build and tests).
        Ref #2965 and #3007.
        zpybuilddir.txt)r   r3   Úisfiler   r   r   r   r?   ~   s    zDistutilsMetaFinder.is_cpythonc                 C   s    |   ¡ rdS tƒ  dd„ | _dS )zj
        Ensure stdlib distutils when running under pip.
        See pypa/pip#8761 for rationale.
        Nc                   S   s   d S r    r   r   r   r   r   r.   Ž   r'   z2DistutilsMetaFinder.spec_for_pip.<locals>.<lambda>)Úpip_imported_during_buildr   rE   ©r"   r   r   r   Úspec_for_pip†   s    z DistutilsMetaFinder.spec_for_pipc                    s$   ddl }t‡ fdd„| d¡D ƒƒS )zO
        Detect if pip is being imported in a build script. Ref #2355.
        r   Nc                 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)rN   rO   r   rM   r   rG   �   s    þz-DistutilsMetaFinder.pip_imported_during_buildc                 C   s   | j  dd¡ d¡S )zN
        Return True if the indicated frame suggests a setup.py file.
        r   Ú zsetup.py)Ú	f_globalsr   Úendswith)rK   r   r   r   rJ   ›   s    z'DistutilsMetaFinder.frame_file_is_setup)N)r*   r+   r,   r6   rE   Ústaticmethodr?   rI   ÚclassmethodrG   rJ   r   r   r   r   r-   S   s   
"



r-   c                   C   s   t tjv ptƒ  d S r    )ÚDISTUTILS_FINDERr   Ú	meta_pathÚinsert_shimr   r   r   r   Úadd_shim§   s    rY   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r   c                 C   s
   t ƒ  d S r    )rX   rH   r   r   r   Ú	__enter__¬   s    zshim.__enter__c                 C   s
   t ƒ  d S r    )Úremove_shim)r"   ÚexcÚvalueÚtbr   r   r   Ú__exit__¯   s    zshim.__exit__N)r*   r+   r,   rZ   r_   r   r   r   r   r   «   s   r   c                   C   s   t j dt¡ d S )Nr   )r   rW   ÚinsertrV   r   r   r   r   rX   ³   s    rX   c                   C   s(   zt j t¡ W n ty"   Y n0 d S r    )r   rW   ÚremoverV   Ú
ValueErrorr   r   r   r   r[   ·   s    r[   )r   r   Úbuiltin_module_namesr   r   r   r   r   r   r   r-   rV   rY   r   rX   r[   r   r   r   r   Ú<module>   s   
Q