
    8'h                        d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 	 d dlm
Z
 dZd d	lmZmZ d d
lmZmZ d Z ee       ee       G d de                    Z ee       ee       G d de                    Z ee       ee
       G d de                    Z ee       ee	       G d de                    Z e       Z e       Zy# e$ r dZd dlmZ
 Y w xY w)    )absolute_import)implementer)IPlugin)!IStreamServerEndpointStringParserIStreamServerEndpointIStreamClientEndpoint),IStreamClientEndpointStringParserWithReactorTF)!IStreamClientEndpointStringParser)serverFromStringclientFromString)WrappingWebSocketServerFactoryWrappingWebSocketClientFactoryc                    i }d| vrt        d      | d   |d<   d| v rQ| d   j                         j                         }|dk(  rd|d<   n%|dk(  rd|d<   nt        d	j                  |            d
| v r3	 t	        | d
         }|dk  rt        dj                  |            ||d<   d| v r&| d   j                         j                         }||d<   d| v rS| d   j                         j                         }|dk(  rd|d<   |S |dk(  rd|d<   |S t        dj                  |            |S #  t        dj                  | d
               xY w)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values      ^/var/www/html/trade_iq/venv/lib/python3.12/site-packages/twisted/plugins/autobahn_endpoints.py_parseOptionsr"   2   s   DG%%enU&,,.446F?(,D$%g(-D$%AHHOPPW	\
+,E 19?FFuMNN#( &,,.446#]' &&(..0F? DM K g!DM K ;BB5IJJK+	\>EEgjFYZ[[s   4D) )Ec                       e Zd ZdZd Zy)AutobahnServerParserautobahnc                 J    t        |      }t        ||      }t        |||      S N)r"   r   AutobahnServerEndpoint)selfreactordescriptionr   r   endpoints         r!   parseStreamServerz&AutobahnServerParser.parseStreamServerd   s)    , W%#G[9%gx>>    N)__name__
__module____qualname__prefixr-    r.   r!   r$   r$   ^   s     F?r.   r$   c                       e Zd Zd Zd Zy)r(   c                 .    || _         || _        || _        y r'   _reactor	_endpoint_optionsr)   r*   r,   r   s       r!   __init__zAutobahnServerEndpoint.__init__       !r.   c                 x    | j                   j                  t        |fd| j                  i| j                        S Nr*   )r8   listenr   r7   r9   r)   protocolFactorys     r!   r?   zAutobahnServerEndpoint.listen   s5    ~~$$%CO%|]a]j]j%|nrn{n{%|}}r.   N)r/   r0   r1   r;   r?   r3   r.   r!   r(   r(      s     
~r.   r(   c                       e Zd ZdZd Zy)AutobahnClientParserr%   c                     t         r$|d   }t        |      dk7  rt        d      |d   }n$ddlm} t        |      dk7  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,   s          r!   parseStreamClientz&AutobahnClientParser.parseStreamClient   sv    1gG4yA~"#bccq'K04yA~"#bccq'KW%#G[9%gx>>r.   N)r/   r0   r1   r2   rM   r3   r.   r!   rC   rC      s     F?r.   rC   c                       e Zd Zd Zd Zy)rK   c                 .    || _         || _        || _        y r'   r6   r:   s       r!   r;   zAutobahnClientEndpoint.__init__   r<   r.   c                 x    | j                   j                  t        |fd| j                  i| j                        S r>   )r8   connectr   r7   r9   r@   s     r!   rQ   zAutobahnClientEndpoint.connect   s5    ~~%%&D_&}^b^k^k&}oso|o|&}~~r.   N)r/   r0   r1   r;   rQ   r3   r.   r!   rK   rK      s     
r.   rK   N)
__future__r   zope.interfacer   twisted.pluginr   twisted.internet.interfacesr   r   r   r	   rG   ImportErrorr
   twisted.internet.endpointsr   r   autobahn.twisted.websocketr   r   r"   objectr$   r(   rC   rK   autobahnServerParserautobahnClientParserr3   r.   r!   <module>r\      s(  6 ' & " 5X J#)X W./?6 ? 0 ?> W"#~V ~ $ ~ W9:?6 ? ; ?& W"#V  $  ,- +- W  555s   C CC