B ¿öY. ã@s°dZddlmZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZdd lmZGd d„deƒZeee ee eeegZdS)z­ raven.transport.registry ~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. é)Úabsolute_import)ÚEventletHTTPTransport)ÚDuplicateScheme)Ú HTTPTransport)ÚGeventedHTTPTransport)ÚRequestsHTTPTransport)ÚThreadedHTTPTransport)ÚThreadedRequestsHTTPTransport)ÚTwistedHTTPTransport)ÚTornadoHTTPTransport)Úurlparsec@s>eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „ZdS)ÚTransportRegistryNcCs,i|_i|_|r(x|D]}| |¡qWdS)N)Ú_schemesÚ _transportsÚregister_transport)ÚselfZ transportsÚ transport©rúI/opt/alt/python37/lib/python3.7/site-packages/raven/transport/registry.pyÚ__init__s  zTransportRegistry.__init__cCsDt|dƒrt|jdƒs$td|jjƒ‚x|jD]}| ||¡q,WdS)NÚschemeÚ__iter__z$Transport %s must have a scheme list)ÚhasattrrÚAttributeErrorÚ __class__Ú__name__Úregister_scheme)rrrrrrr!s z$TransportRegistry.register_transportcCs(||jkrtƒ‚t |¡||j|<dS)zA It is possible to inject new schemes at runtime N)rrr r)rrÚclsrrrr(s  z!TransportRegistry.register_schemecCs ||jkS)N)r)rrrrrÚsupported_scheme3sz"TransportRegistry.supported_schemecKsJ| ¡}||jkr@t | d¡d¡}|j|j|f|Ž|j|<|j|S)Nú?r)Úgeturlrr Úsplitrr)rÚ parsed_urlÚoptionsZfull_urlrrrÚ get_transport6s  zTransportRegistry.get_transportcCs |j|S)N)r)rrrrrÚget_transport_cls>sz#TransportRegistry.get_transport_cls)N) rÚ __module__Ú __qualname__rrrrr$r%rrrrr s   r N)Ú__doc__Ú __future__rZraven.transport.eventletrZraven.transport.exceptionsrZraven.transport.httprZraven.transport.geventrZraven.transport.requestsrZraven.transport.threadedrZ!raven.transport.threaded_requestsr Zraven.transport.twistedr Zraven.transport.tornador Z raven.utilsr Úobjectr Zdefault_transportsrrrrÚs(           ,