Your IP : 216.73.216.213
��Y.
� @ s� d Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m
Z
d d l m Z d d l
m Z d d l m Z d d
l m Z d d l m Z d d l m Z Gd
d � d e � Z e e e
e e e e e g Z d S)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[ e Z d Z d d d � Z d d � Z d d � Z d d � Z d
d � Z d d
� Z d S)�TransportRegistryNc C s: i | _ i | _ | r6 x | D] } | j | � q Wd S)N)�_schemes�_transports�register_transport)�selfZ
transports� transport� r �I/opt/alt/python35/lib/python3.5/site-packages/raven/transport/registry.py�__init__ s
zTransportRegistry.__init__c C s` t | d � s# t | j d � r8 t d | j j � � x! | j D] } | j | | � qB Wd S)N�scheme�__iter__z$Transport %s must have a scheme list)�hasattrr �AttributeError� __class__�__name__�register_scheme)r r r r r r r ! s #z$TransportRegistry.register_transportc C s6 | | j k r t � � t j | � | | j | <d S)zA
It is possible to inject new schemes at runtime
N)r r r r )r r �clsr r r r ( s
z!TransportRegistry.register_schemec C s
| | j k S)N)r )r r r r r �supported_scheme3 s z"TransportRegistry.supported_schemec K sb | j � } | | j k rW t j | j d � d � } | j | j | | � | j | <| j | S)N�?r )�geturlr r �splitr r )r �
parsed_url�optionsZfull_urlr r r �
get_transport6 s
zTransportRegistry.get_transportc C s | j | S)N)r )r r r r r �get_transport_cls>