Mini Shell
a
�DOg>I � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ g d�ZG dd � d e�ZG d
d� de
�dd
��ZG dd� dej�ZG dd� d�ZG dd� d�ZG dd� de�Z G dd� d�Z!G dd� d�Z"G dd� de �Z#G dd� de�Z$dd� Z%d d!� Z&d"d#� Z'd$d%� Z(d&d'� Z)d(d)� Z*d*d+� Z+dS ),� N)�ConfigParser)�suppress)�
import_module)�MetaPathFinder)�starmap)
�Distribution�DistributionFinder�PackageNotFoundError�distribution�
distributions�entry_points�files�metadata�requires�versionc @ s e Zd ZdZdS )r zThe package was not found.N)�__name__�
__module__�__qualname__�__doc__� r r �*/usr/lib64/python3.9/importlib/metadata.pyr % s r c @ sn e Zd ZdZe�d�Zdd� Zedd� �Z edd� �Z
ed d
� �Zedd� �Z
ed
d� �Zdd� Zdd� ZdS )�
EntryPointa� An entry point as defined by Python packaging conventions.
See `the packaging docs on entry points
<https://packaging.python.org/specifications/entry-points/>`_
for more information.
>>> ep = EntryPoint(
... name=None, group=None, value='package.module:attr [extra1, extra2]')
>>> ep.module
'package.module'
>>> ep.attr
'attr'
>>> ep.extras
['extra1', 'extra2']
zH(?P<module>[\w.]+)\s*(:\s*(?P<attr>[\w.]+)\s*)?((?P<extras>\[.*\])\s*)?$c C sD | j �| j�}t|�d��}td|�d�p,d�d��}t�t ||�S )z�Load the entry point from its definition. If only a module
is indicated by the value, return that module. Otherwise,
return the named object.
�moduleN�attr� �.)
�pattern�match�valuer �group�filter�split� functools�reduce�getattr)�selfr r �attrsr r r �loadP s zEntryPoint.loadc C s | j �| j�}|�d�S )Nr �r r r r �r% r r r r r Z s zEntryPoint.modulec C s | j �| j�}|�d�S )Nr r( r) r r r r _ s zEntryPoint.attrc C s$ | j �| j�}t�d|�d�p d�S )Nz\w+�extrasr )r r r �re�findallr r) r r r r* d s zEntryPoint.extrasc s � �fdd��� � D �S )Nc s, g | ]$}�� |�D ]\}}� |||��qqS r ��items)�.0r �namer ��cls�configr r �
<listcomp>k s �z+EntryPoint._from_config.<locals>.<listcomp>)�sectionsr1 r r1 r �_from_configi s �zEntryPoint._from_configc C sL t dd�}t|_z|�|� W n" ty@ |�t�|�� Y n0 t� |�S )N�=)Z
delimiters)
r �strZoptionxformZread_string�AttributeErrorZreadfp�io�StringIOr r6 )r2 �textr3 r r r �
_from_textq s
zEntryPoint._from_textc C s t | j| f�S )zO
Supply iter so one may construct dicts of EntryPoints easily.
)�iterr0 �r% r r r �__iter__} s zEntryPoint.__iter__c C s | j | j| j| jffS �N)� __class__r0 r r r? r r r �
__reduce__� s �zEntryPoint.__reduce__N)r r r r r+ �compiler r'