File: //opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyo
�
��Yc           @@  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 d
 e f d �  �  YZ e e e
 e e e e e g Z d S(   s�   
raven.transport.registry
~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_import(   t   EventletHTTPTransport(   t   DuplicateScheme(   t
   HTTPTransport(   t   GeventedHTTPTransport(   t   RequestsHTTPTransport(   t   ThreadedHTTPTransport(   t   ThreadedRequestsHTTPTransport(   t   TwistedHTTPTransport(   t   TornadoHTTPTransport(   t   urlparset   TransportRegistryc           B@  sA   e  Z d d  � Z d �  Z d �  Z d �  Z d �  Z d �  Z RS(   c         C@  s=   i  |  _  i  |  _ | r9 x | D] } |  j | � q Wn  d  S(   N(   t   _schemest   _transportst   register_transport(   t   selft
   transportst	   transport(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyt   __init__   s
    		
c         C@  sc   t  | d � s# t  | j d � r; t d | j j � � n  x! | j D] } |  j | | � qE Wd  S(   Nt   schemet   __iter__s$   Transport %s must have a scheme list(   t   hasattrR   t   AttributeErrort	   __class__t   __name__t   register_scheme(   R   R   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyR   !   s    #c         C@  s9   | |  j  k r t �  � n  t j | � | |  j  | <d S(   sA   
        It is possible to inject new schemes at runtime
        N(   R   R   R
   R   (   R   R   t   cls(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyR   (   s    
c         C@  s
   | |  j  k S(   N(   R   (   R   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyt   supported_scheme3   s    c         K@  se   | j  �  } | |  j k rZ t j | j d � d � } |  j | j | | � |  j | <n  |  j | S(   Nt   ?i    (   t   geturlR
   R
   t   splitR   R   (   R   t
   parsed_urlt   optionst   full_url(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyt
   get_transport6   s
    #c         C@  s   |  j  | S(   N(   R   (   R   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/registry.pyt   get_transport_cls>