£Á°è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 y0ddl	m
Z
mZmZmZmZ ddlmZ dZW n ek
r|   d	ZY nX G d
d deeZdS )z
raven.transport.twisted
~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_import)BytesIO)AsyncTransport)HTTPTransport)AgentFileBodyProducerHTTPConnectionPoolResponseNeverReceivedreadBody)HeadersTFc                   s,   e Zd ZddgZ fddZdd Z  ZS )TwistedHTTPTransportztwisted+httpztwisted+httpsc                s@   t stdtt| j|| ddlm} t|t|d| _	d S )Nz*TwistedHTTPTransport requires twisted.web.r   )reactor)pool)
has_twistedImportErrorsuperr   __init__Ztwisted.internetr   r   r   _agent)selfargskwargsr   )	__class__ H/opt/alt/python37/lib/python3.7/site-packages/raven/transport/twisted.pyr      s
    zTwistedHTTPTransport.__init__c       	   	      s`   | j jd|tt|ttdd | D d} fdd} fdd}||| d S )	Ns   POSTc             s   s   | ]\}}||gfV  qd S )Nr   ).0kvr   r   r   	<genexpr>-   s    z2TwistedHTTPTransport.async_send.<locals>.<genexpr>)ZbodyProducerheadersc                s4   |  t}|r& dd | jjD  n
 | j d S )Nc             S   s   g | ]
}|j qS r   )value)r   fr   r   r   
<listcomp>4   s    zGTwistedHTTPTransport.async_send.<locals>.on_failure.<locals>.<listcomp>)checkr	   r   Zreasons)Zfailureex)
failure_cbr   r   
on_failure0   s    
z3TwistedHTTPTransport.async_send.<locals>.on_failurec                s2    j dkr  n fdd}t |S dS )z
            Success only means that the request succeeded, *not* that the
            actual submission was successful.
               c                s    t jj|  d S )N)	Exceptioncodephrase)body)r$   responser   r   on_error_body@   s    zJTwistedHTTPTransport.async_send.<locals>.on_success.<locals>.on_error_bodyN)r(   r
   addCallback)r+   r,   )r$   
success_cb)r+   r   
on_success8   s
    
z3TwistedHTTPTransport.async_send.<locals>.on_success)	r   Zrequestr   r   r   dictitemsr-   Z
addErrback)	r   urldatar   r.   r$   dr%   r/   r   )r$   r.   r   
async_send)   s    
zTwistedHTTPTransport.async_send)__name__
__module____qualname__schemer   r5   __classcell__r   r   )r   r   r      s   r   N)__doc__
__future__r   Zraven.utils.compatr   Zraven.transport.baser   Zraven.transport.httpr   Ztwisted.web.clientr   r   r   r	   r
   Ztwisted.web.http_headersr   r   r   r   r   r   r   r   <module>   s   
