<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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(   ,