o
    @Bi                     @   s(  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 z
d dlm
Z
 dZW n ey7   dZd dlmZ
 Y nw d d	lmZmZ d d
lmZmZ dd ZeeeeG dd deZeeeeG dd deZeeee
G dd deZeeee	G dd deZe Ze ZdS )    )absolute_import)implementer)IPlugin)!IStreamServerEndpointStringParserIStreamServerEndpointIStreamClientEndpoint),IStreamClientEndpointStringParserWithReactorTF)!IStreamClientEndpointStringParser)serverFromStringclientFromString)WrappingWebSocketServerFactoryWrappingWebSocketClientFactoryc                 C   s,  i }d| vr
t d| d |d< d| v r5| d   }|dkr%d|d< n|dkr.d|d< nt d	|d
| v r]zt| d
 }W n   t d| d
 |dk rYt d|||d< d| v rm| d   }||d< d| v r| d   }|dkrd|d< |S |dkrd|d< |S t d||S )Nurlz
URL neededcompressiontrueTenableCompressionfalseFz#invalid value '{0}' for compressionautofragz invalid value '{0}' for autofragr   z!negative value '{0}' for autofragautoFragmentSizesubprotocoldebugzinvalid value '{0}' for debug)	Exceptionlowerstripformatint)optionsoptsvalue r   b/var/www/html/Trade-python/venv/lib/python3.10/site-packages/twisted/plugins/autobahn_endpoints.py_parseOptions2   s@   

r!   c                   @      e Zd ZdZdd ZdS )AutobahnServerParserautobahnc                 K   s   t |}t||}t|||S N)r!   r
   AutobahnServerEndpoint)selfreactordescriptionr   r   endpointr   r   r    parseStreamServerd   s   
z&AutobahnServerParser.parseStreamServerN)__name__
__module____qualname__prefixr+   r   r   r   r    r#   ^   s    r#   c                   @      e Zd Zdd Zdd ZdS )r&   c                 C      || _ || _|| _d S r%   _reactor	_endpoint_optionsr'   r(   r*   r   r   r   r    __init__      
zAutobahnServerEndpoint.__init__c                 C       | j t|fd| ji| jS Nr(   )r4   listenr   r3   r5   r'   protocolFactoryr   r   r    r;          zAutobahnServerEndpoint.listenN)r,   r-   r.   r7   r;   r   r   r   r    r&          r&   c                   @   r"   )AutobahnClientParserr$   c                 O   sp   t r|d }t|dkrtd|d }nddlm} t|dkr%td|d }t|}t||}t|||S )Nr      z=autobahn: client plugin takes exactly one positional argument   )r(   )_HAS_REACTOR_ARGlenRuntimeErrortwisted.internetr(   r!   r   AutobahnClientEndpoint)r'   argsr   r(   r)   r   r*   r   r   r    parseStreamClient   s   

z&AutobahnClientParser.parseStreamClientN)r,   r-   r.   r/   rI   r   r   r   r    r@      s    r@   c                   @   r0   )rG   c                 C   r1   r%   r2   r6   r   r   r    r7      r8   zAutobahnClientEndpoint.__init__c                 C   r9   r:   )r4   connectr   r3   r5   r<   r   r   r    rJ      r>   zAutobahnClientEndpoint.connectN)r,   r-   r.   r7   rJ   r   r   r   r    rG      r?   rG   N)
__future__r   zope.interfacer   twisted.pluginr   twisted.internet.interfacesr   r   r   r   rC   ImportErrorr	   twisted.internet.endpointsr
   r   autobahn.twisted.websocketr   r   r!   objectr#   r&   r@   rG   autobahnServerParserautobahnClientParserr   r   r   r    <module>   s8   ,
