§
    Ètºf!	  ã                   óô   — d Z ddlmZmZ ddlmZmZmZ ddlm	Z	 ddl
mZmZ ddlmZ  G d„ de¦  «        Z G d	„ d
e¦  «        Z eee¦  «         G d„ d¦  «        ¦   «         Zdee         fd„Zdede	fd„ZdS )zT
Plugin-based system for enumerating available reactors and installing one of
them.
é    )ÚIterableÚcast)Ú	AttributeÚ	InterfaceÚimplementer)ÚIReactorCore)ÚIPluginÚ
getPlugins)ÚnamedAnyc                   óF   — e Zd ZdZ ed¦  «        Z ed¦  «        Zdd„ZdS )ÚIReactorInstallerzB
    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.
    ÚreturnNc                  ó   — dS )z'
        Install this reactor.
        N© r   ó    ú[/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/application/reactors.pyÚinstallzIReactorInstaller.install#   s   € € € r   ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	shortNameÚdescriptionr   r   r   r   r   r      sb   € € € € € ðð ð �	ð	ñô €Ið �)ð	ñô €Kðð ð ð ð ð r   r   c                   ó   — e Zd ZdZdS )ÚNoSuchReactorzT
    Raised when an attempt is made to install a reactor which cannot be found.
    N)r   r   r   r   r   r   r   r   r   ,   s   € € € € € ðð ð ð r   r   c                   ó.   — e Zd ZdZdededefd„Zd	d„ZdS )
ÚReactorz|
    @ivar moduleName: The fully-qualified Python name of the module of which
    the install callable is an attribute.
    r   Ú
moduleNamer   c                 ó0   — || _         || _        || _        d S ©N)r   r   r   )Úselfr   r   r   s       r   Ú__init__zReactor.__init__9   s   € Ø"ˆŒØ$ˆŒØ&ˆÔÐÐr   r   Nc                 óR   — t          | j        ¦  «                             ¦   «          d S r!   )r   r   r   )r"   s    r   r   zReactor.install>   s$   € Ý�”Ñ!Ô!×)Ò)Ñ+Ô+Ð+Ð+Ð+r   r   )r   r   r   r   Ústrr#   r   r   r   r   r   r   2   s[   € € € € € ðð ð
' #ð '°3ð 'ÀSð 'ð 'ð 'ð 'ð
,ð ,ð ,ð ,ð ,ð ,r   r   r   c                  ó*   — t          t          ¦  «        S )z=
    Return an iterator of L{IReactorInstaller} plugins.
    )r
   r   r   r   r   ÚgetReactorTypesr'   B   s   € õ Õ'Ñ(Ô(Ð(r   r   c                 óº   — t          ¦   «         D ]>}|j        | k    r1|                     ¦   «          ddlm} t          t          |¦  «        c S Œ?t          | ¦  «        ‚)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.
    r   )Úreactor)r'   r   r   Útwisted.internetr)   r   r   r   )r   Ú	installerr)   s      r   ÚinstallReactorr,   I   sv   € õ %Ñ&Ô&ð /ð /ˆ	ØÔ )Ò+Ð+Ø×ÒÑÔÐØ0Ð0Ð0Ð0Ð0Ð0å� gÑ.Ô.Ð.Ð.Ð.ð	 ,õ
 ˜	Ñ
"Ô
"Ð"r   N)r   Útypingr   r   Úzope.interfacer   r   r   Útwisted.internet.interfacesr   Útwisted.pluginr	   r
   Útwisted.python.reflectr   r   ÚKeyErrorr   r   r'   r%   r,   r   r   r   ú<module>r3      sf  ðð
ð ð "Ð !Ð !Ð !Ð !Ð !Ð !Ð !à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ˜	ñ ô ð ð4ð ð ð ð �Hñ ô ð ð €ˆWÐ'Ñ(Ô(ð,ð ,ð ,ð ,ð ,ñ ,ô ,ñ )Ô(ð,ð)˜Ð"3Ô4ð )ð )ð )ð )ð#˜cð # lð #ð #ð #ð #ð #ð #r   