o
    uvXjA  ã                	   @   s¾  d dl mZmZ d dlZd dlZd dlZd dlZejdkrAd dlZd dl	m
Z
 d dlZejZejZejZejZejZd dlmZ n&d dlm
Z
 d dlmZ d dlmZ d dlZeefZeefZeefZeefZedƒZejZejd	krxd dlZnd dlZzejZW n ee fyŽ   e!ZY nw ejdkr›d d
l"m#Z# nG dd„ de$ƒZ#eZ%g d¢Z&dd„ Z'dd„ Z(G dd„ dƒZ)dd„ Z*ejdk rÃe*nej+Z,G dd„ dƒZ-dd„ Z.ejdk rÚe.Z1dS e/j0Z1dS )é    )Úabsolute_importÚunicode_literalsN)é   )ÚConfigParser)Úfilterfalse)Úimap)ÚifilterfalseÚ )r   é   )ÚMetaPathFinderc                   @   s   e Zd ZejZdS )r   N)Ú__name__Ú
__module__Ú__qualname__ÚabcÚABCMetaÚ__metaclass__© r   r   úW/var/www/html/myproject/venv/lib/python3.10/site-packages/importlib_metadata/_compat.pyr   /   s    
r   )ÚinstallÚ
NullFinderr   ÚModuleNotFoundErrorÚpathlibr   ÚmapÚsuppressÚFileNotFoundErrorÚNotADirectoryErrorÚemail_message_from_stringc                 C   s   t j | ƒ ¡ tƒ  | S )zÒ
    Class decorator for installation on sys.meta_path.

    Adds the backport DistributionFinder to sys.meta_path and
    attempts to disable the finder functionality of the stdlib
    DistributionFinder.
    )ÚsysÚ	meta_pathÚappendÚdisable_stdlib_finder)Úclsr   r   r   r   ;   s   r   c                  C   s"   dd„ } t | tjƒD ]}|`q
dS )zÀ
    Give the backport primacy for discovering path-based distributions
    by monkey-patching the stdlib O_O.

    See #91 for more background for rationale on this sketchy
    behavior.
    c                 S   s   t | dd ƒdkot| dƒS )Nr   Ú_frozen_importlib_externalÚfind_distributions)ÚgetattrÚhasattr)Úfinderr   r   r   ÚmatchesP   s   þz&disable_stdlib_finder.<locals>.matchesN)Úfilterr   r   r#   )r'   r&   r   r   r   r    H   s   ÿr    c                   @   s    e Zd ZdZedd„ ƒZeZdS )r   zj
    A "Finder" (aka "MetaClassFinder") that never finds any modules,
    but may find distributions.
    c                  O   s   d S ©Nr   )ÚargsÚkwargsr   r   r   Ú	find_spec^   s   zNullFinder.find_specN)r   r   r   Ú__doc__Ústaticmethodr,   Úfind_moduler   r   r   r   r   Y   s
    
	r   c                 C   s   t  | ¡}t |¡S r)   )ÚioÚStringIOÚemailÚmessage_from_file)ÚtextÚ	io_bufferr   r   r   Úpy2_message_from_stringk   s   

r6   c                   @   s,   e Zd ZdZeedƒZdd„ ZereZ[dS )Ú	PyPy_reprzc
    Override repr for EntryPoint objects on PyPy to avoid __iter__ access.
    Ref #97, #102.
    Úpypy_version_infoc                    s0   ‡ fdd„}d  t|ˆ jƒ¡}djdi tƒ ¤ŽS )Nc                    s   t ˆ | ƒ}djdi tƒ ¤ŽS )Nz{name}={value!r}r   )r$   ÚformatÚlocals)ÚnameÚvalue©Úselfr   r   Ú
make_param�   s   
z-PyPy_repr.__compat_repr__.<locals>.make_paramz, zEntryPoint({params})r   )Újoinr   Ú_fieldsr9   r:   )r>   r?   Úparamsr   r=   r   Ú__compat_repr__€   s   zPyPy_repr.__compat_repr__N)	r   r   r   r-   r%   r   ÚaffectedrC   Ú__repr__r   r   r   r   r7   y   s    
r7   c                 c   s2   � t ƒ }|j}t|j| ƒD ]	}||ƒ |V  qdS )zHList unique elements, preserving order. Remember all elements ever seen.N)ÚsetÚaddr   Ú__contains__)ÚiterableÚseenÚseen_addÚelementr   r   r   Úunique_everseen�   s   €þrM   )r   é   )2Ú
__future__r   r   r0   r   r   r2   Úversion_infoÚbuiltinsÚconfigparserr   Ú
contextlibr   ÚIsADirectoryErrorr   ÚPermissionErrorr   Ú	itertoolsr   Úbackports.configparserr   r   Úcontextlib2ÚIOErrorÚOSErrorÚtypeÚstrr   r   Úpathlib2r   Ú	NameErrorÚAttributeErrorÚImportErrorÚimportlib.abcr   Úobjectr   Ú__all__r   r    r   r6   Úmessage_from_stringr   r7   rM   ÚdictÚfromkeysÚunique_orderedr   r   r   r   Ú<module>   sh    



ÿ

	ÿýÿÿ