File: //usr/lib/python3/dist-packages/twisted/__pycache__/plugin.cpython-38.pyc
U
��W[� � @ s
d Z ddlmZmZ ddlZddlZddlmZmZ dd� Z e � Z
ddlmZ ddl
mZ dd lmZ dd
lmZ ddlmZ G dd
� d
e�ZG dd� de�ZG dd� de�Zdd� Zz
ejZW n ek
r� ddd�ZY nX dd� Zddd�ZeZdd� Z ddgZ!dS )zL
Plugin system for Twisted.
@author: Jp Calderone
@author: Glyph Lefkowitz
� )�absolute_import�divisionN)� Interface�
providedByc C s4 zddl } | W S tk
r. ddl}| Y S X dS )z5
Determine which 'pickle' API module to use.
r N)�cPickle�ImportError�pickle)r r � r �0/usr/lib/python3/dist-packages/twisted/plugin.py�_determinePickleModule s r )�getAdapterFactory)�namedAny)�log)� getModule)� iteritemsc @ s e Zd ZdZdS )�IPluginz�
Interface that must be implemented by all plugins.
Only objects which implement this interface will be considered for return
by C{getPlugins}. To be useful, plugins should also implement some other
application-specific interface.
N)�__name__�
__module__�__qualname__�__doc__r r r r
r ) s r c @ s2 e Zd Zdd� Zdd� Zdd� Zd
dd �ZeZdS )�CachedPluginc C s* || _ || _|| _|| _| j j�| � d S �N)�dropin�name�description�provided�plugins�append)�selfr r r r r r r
�__init__5 s
zCachedPlugin.__init__c C s&