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 yB d d l m
Z
m Z m Z m
Z
m Z d d l m Z d Z Wn e k
r� d Z Yn XGd
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 � S)�TwistedHTTPTransportztwisted+httpz
twisted+httpsc sZ t s t d � � t t | � j | | � d d l m } t | d t | � �| _ d S)Nz*TwistedHTTPTransport requires twisted.web.r )�reactor�pool)
�has_twisted�ImportError�superr �__init__Ztwisted.internetr
r r �_agent)�self�args�kwargsr
)� __class__� �H/opt/alt/python35/lib/python3.5/site-packages/raven/transport/twisted.pyr s
zTwistedHTTPTransport.__init__c
s� | j j d | d t t | � � d t t d d � | j � D� � � �} � f d d � } � � f d d � } | j | � j | � d S)
Ns POSTZbodyProducer�headersc s s$ | ] \ } } | | g f Vq d S)Nr )�.0�k�vr r r � <genexpr>- s z2TwistedHTTPTransport.async_send.<locals>.<genexpr>c sF | j t � } | r5 � d d � | j j D� � n
� | j � d S)Nc S s g | ] } | j � q Sr )�value)r �fr r r �
<listcomp>4 s zGTwistedHTTPTransport.async_send.<locals>.on_failure.<locals>.<listcomp>)�checkr r Zreasons)Zfailure�ex)�
failure_cbr r �
on_failure0 s z3TwistedHTTPTransport.async_send.<locals>.on_failurec sE � j d k r � � n( � � f d d � } t � � j | � Sd 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 �requestr r r �dict�itemsr- Z
addErrback) r �url�datar r. r$ �dr% r/ r )r$ r. r �
async_send) s ( zTwistedHTTPTransport.async_send)�__name__�
__module__�__qualname__�schemer r6 r r )r r r s r N)�__doc__�
__future__r Zraven.utils.compatr Zraven.transport.baser Zraven.transport.httpr Ztwisted.web.clientr r r r r
Ztwisted.web.http_headersr r r r r r r r �<module> s (