+
    Dfj!	                         R t ^ RIHtHt ^ RIHtHtHt ^ RIH	t	 ^ RI
HtHt ^ RIHt  ! R R]4      t ! R R	]4      t]! ]]4       ! R
 R4      4       tR R ltR R ltR# )zT
Plugin-based system for enumerating available reactors and installing one of
them.
)Iterablecast)	Attribute	Interfaceimplementer)IReactorCore)IPlugin
getPlugins)namedAnyc                   V   a  ] tR t^t o Rt]! R4      t]! R4      tV 3R lR ltRt	V t
R# )IReactorInstallerz:
Definition of a reactor which can probably be installed.
zE
    A brief string giving the user-facing name of this reactor.
    zK
    A longer string giving a user-facing description of this reactor.
    c                   < V ^8  d   QhRR/#    returnN )format__classdict__s   ">/usr/lib/python3/dist-packages/twisted/application/reactors.py__annotate__IReactorInstaller.__annotate__#   s      T     c                     R# )z
Install this reactor.
Nr   r   r   r   installIReactorInstaller.install#   s    r   r   N)__name__
__module____qualname____firstlineno____doc__r   	shortNamedescriptionr   __static_attributes____classdictcell__r   s   @r   r   r      s6      	I 	K r   r   c                       ] tR t^,tRtRtR# )NoSuchReactorzL
Raised when an attempt is made to install a reactor which cannot be found.
r   N)r   r   r   r   r   r"   r   r   r   r&   r&   ,   s    r   r&   c                   H   a  ] tR t^2t o RtV 3R lR ltV 3R lR ltRtV tR# )Reactorzp
@ivar moduleName: The fully-qualified Python name of the module of which
the install callable is an attribute.
c                ,   < V ^8  d   QhRS[ RS[ RS[ /# )r   r    
moduleNamer!   )str)r   r   s   "r   r   Reactor.__annotate__9   s"     ' '# '3 'S 'r   c                *    Wn         W n        W0n        R # N)r    r*   r!   )selfr    r*   r!   s   &&&&r   __init__Reactor.__init__9   s    "$&r   c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r,   >   s     , , ,r   c                L    \        V P                  4      P                  4        R # r.   )r
   r*   r   )r/   s   &r   r   Reactor.install>   s    !))+r   )r!   r*   r    N)	r   r   r   r   r   r0   r   r"   r#   r$   s   @r   r(   r(   2   s     
' '
, ,r   r(   c                :    V ^8  d   QhR\         \        ,          /# )r   r   )r   r   )r   s   "r   r   r   B   s     ) )"34 )r   c                      \        \        4      # )z5
Return an iterator of L{IReactorInstaller} plugins.
)r	   r   r   r   r   getReactorTypesr7   B   s     '((r   c                0    V ^8  d   QhR\         R\        /# )r   r    r   )r+   r   )r   s   "r   r   r   I   s     # #c #l #r   c                    \        4        F<  pVP                  V 8X  g   K  TP                  4        ^ RIHp \        \        V4      u # 	  \        V 4      h)z
Install the reactor with the given C{shortName} attribute.

@raise NoSuchReactor: If no reactor is found with a matching C{shortName}.

@raise Exception: Anything that the specified reactor can raise when installed.
)reactor)r7   r    r   twisted.internetr:   r   r   r&   )r    	installerr:   s   &  r   installReactorr=   I   sH     %&	)+0g.. ' 	
""r   N)r   typingr   r   zope.interfacer   r   r   twisted.internet.interfacesr   twisted.pluginr   r	   twisted.python.reflectr
   r   KeyErrorr&   r(   r7   r=   r   r   r   <module>rD      sa   
 " < < 4 . +	 4H  W'(, , ),)#r   