£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    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 G d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 | _|r(x|D ]}| | qW d S )N)_schemes_transportsregister_transport)selfZ
transports	transport r   I/opt/alt/python37/lib/python3.7/site-packages/raven/transport/registry.py__init__   s
    
zTransportRegistry.__init__c             C   sD   t |drt |jds$td|jjx|jD ]}| || q,W d 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   s(   || j krt t| || 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   sJ   |  }|| jkr@t|dd }| j|j |f|| j|< | j| S )N?r   )geturlr   r   splitr   r   )r   
parsed_urloptionsZfull_urlr   r   r   get_transport6   s
    
zTransportRegistry.get_transportc             C   s
   | j | S )N)r   )r   r   r   r   r   get_transport_cls>   s    z#TransportRegistry.get_transport_cls)N)	r   
__module____qualname__r   r   r   r   r$   r%   r   r   r   r   r      s   
	r   N)__doc__
__future__r   Zraven.transport.eventletr   Zraven.transport.exceptionsr   Zraven.transport.httpr   Zraven.transport.geventr   Zraven.transport.requestsr   Zraven.transport.threadedr   Z!raven.transport.threaded_requestsr	   Zraven.transport.twistedr
   Zraven.transport.tornador   Zraven.utilsr   objectr   Zdefault_transportsr   r   r   r   <module>   s(   ,