HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/root/lib/python3/dist-packages/__pycache__/entrypoints.cpython-38.pyc
U

ǁ^��@s&dZddlmZddlZddlmZddlZddlZddlm	Z
ddlZddlZddl
Z
ddlZddlZe�dej�Ze�dej�ZdZGdd	�d	e�ZGd
d�de�ZGdd
�d
ej�ZGdd�de�ZGdd�de�Zddd�Zddd�Zddd�Zd dd�Z e!dk�r"ddl"Z"e"�"e d��dS)!z7Discover and load entry points from installed packages.�)�contextmanagerN)�
import_modulezY
(?P<modulename>\w+(\.\w+)*)
(:(?P<objectname>\w+(\.\w+)*))?
\s*
(\[(?P<extras>.+)\])?
$
zC
(?P<dist_version>[^/\\]+)\.(dist|egg)-info
[/\\]entry_points.txt$
z0.3c@s0eZdZdZdd�Zdd�Zeedd���ZdS)	�
BadEntryPointz0Raised when an entry point can't be parsed.
    cCs
||_dS�N��epstr)�selfr�r	�-/usr/lib/python3/dist-packages/entrypoints.py�__init__$szBadEntryPoint.__init__cCs
d|jS)Nz#Couldn't parse entry point spec: %rr�rr	r	r
�__str__'szBadEntryPoint.__str__c
cs@z
dVWn0tk
r:}zt�t|��W5d}~XYnXdSr)r�warnings�warn�str)�er	r	r
�err_to_warnings*s
zBadEntryPoint.err_to_warningsN)	�__name__�
__module__�__qualname__�__doc__rr
�staticmethodrrr	r	r	r
r!src@s eZdZdZdd�Zdd�ZdS)�NoSuchEntryPointzCRaised by :func:`get_single` when no matching entry point is found.cCs||_||_dSr)�group�name)rrrr	r	r
r4szNoSuchEntryPoint.__init__cCsd�|j|j�S)Nz'No {!r} entry point found in group {!r})�formatrrrr	r	r
r
8szNoSuchEntryPoint.__str__N)rrrrrr
r	r	r	r
r2src@seZdZee�ZdS)�CaseSensitiveConfigParserN)rrrrrZoptionxformr	r	r	r
r<src@s4eZdZd
dd�Zdd�Zdd�Zeddd	��ZdS)�
EntryPointNcCs"||_||_||_||_||_dSr)r�module_name�object_name�extras�distro)rrrrr r!r	r	r
rAs
zEntryPoint.__init__cCsd|j|j|j|jfS)NzEntryPoint(%r, %r, %r, %r))rrrr!rr	r	r
�__repr__Hs�zEntryPoint.__repr__cCs4t|j�}|}|jr0|j�d�D]}t||�}q |S)z:Load the object to which this entry point refers.
        �.)rrr�split�getattr)r�mod�obj�attrr	r	r
�loadLs
zEntryPoint.loadcCsRt�|�}|rF|�ddd�\}}}|dk	r6t�d|�}||||||�St|��dS)a�Parse an entry point from the syntax in entry_points.txt

        :param str epstr: The entry point string (not including 'name =')
        :param str name: The name of this entry point
        :param Distribution distro: The distribution in which the entry point was found
        :rtype: EntryPoint
        :raises BadEntryPoint: if *epstr* can't be parsed as an entry point.
        Z
modulenameZ
objectnamer Nz,\s*)�entry_point_pattern�matchr�rer$r)�clsrrr!�mr&r'r r	r	r
�from_stringVs

zEntryPoint.from_string)NN)N)rrrrr"r)�classmethodr/r	r	r	r
r@s


rc@seZdZdd�Zdd�ZdS)�DistributioncCs||_||_dSr�r�version)rrr3r	r	r
rjszDistribution.__init__cCsd|j|jfS)NzDistribution(%r, %r)r2rr	r	r
r"nszDistribution.__repr__N)rrrrr"r	r	r	r
r1isr1�firstccs�|dkrtj}t�}|D�]�}|�d��d��rNt�|�}d|krzt|�d�dd��}|dkrl|j	|krlq|�
|j	�nd}t�|�r�t�|dd�}t�
|�r�tdd	�}|�|g�||fVn�t�|��r2t�|�}z|�d
�}	Wntk
r�YqYnXtdd	�}|�|	��(}
t�|
�}|j|t�|dd�d�W5QRX||fVn�t�|��r2t�|���}|��D]�}	t�|	j�}
|
�s��qn|
�d�}d|k�r�t|�dd
��}|dk�r�|j	|k�rƐqn|�
|j	�nd}tdd	�}|�|	��(}
t�|
�}|j|t�||	j�d�W5QRX||fV�qnW5QRXt�t �!t�|dd��t �!t�|dd���D]�}t�"t�t�#|���d}d|k�r�t|�dd
��}|dk�r�|j	|k�r��q^|�
|j	�nd}tdd	�}|�|g�||fV�q^qdS)Nz/\z.egg�-�r4zEGG-INFOzentry_points.txt)�=)Z
delimiterszEGG-INFO/entry_points.txt)�sourceZdist_version�z*.dist-infoz
*.egg-infor)$�sys�path�set�rstrip�endswith�osp�basenamer1r$r�add�isdir�join�isfiler�read�zipfileZ
is_zipfileZZipFileZgetinfo�KeyError�open�io�
TextIOWrapperZ	read_fileZinfolist�file_in_zip_patternr+�filenamer�	itertools�chain�globZiglob�splitext�dirname)r;Zrepeated_distroZdistro_names_seenZfolderZegg_namer!Zep_path�cp�z�info�fZfuZzfr.Zdistro_name_versionr	r	r
�iter_files_distrosrs�

�






�


�

"�

�
rVcCspt|d�D]V\}}||kr
|||kr
|||}t��� t�|||�W5QR�SQRXq
t||��dS)z�Find a single entry point.

    Returns an :class:`EntryPoint` object, or raises :exc:`NoSuchEntryPoint`
    if no match is found.
    �r;N)rVrrrr/r)rrr;�configr!rr	r	r
�
get_single�s
&rYcCs.i}t||d�D]}|j|kr|||j<q|S)zwFind a group of entry points with unique names.

    Returns a dictionary of names to :class:`EntryPoint` objects.
    rW)�
get_group_allr)rr;�resultZepr	r	r
�get_group_named�s

r\cCsbg}t|d�D]N\}}||kr||��D]0\}}t���|�t�|||��W5QRXq*q|S)zZFind all entry points in a group.

    Returns a list of :class:`EntryPoint` objects.
    rW)rV�itemsrr�appendrr/)rr;r[rXr!rrr	r	r
rZ�s
"rZ�__main__Zconsole_scripts)Nr4)N)N)N)#r�
contextlibrrO�	importlibrrIrM�os.pathr;r?r,r:rrF�configparser�compile�VERBOSEr*rK�__version__�	Exceptionrr�ConfigParserr�objectrr1rVrYr\rZrZpprintr	r	r	r
�<module>s<��
)	
X