File: //opt/alt/python27/lib/python2.7/site-packages/raven/transport/http.pyo
�
��Yc           @@  s�   d  Z  d d l m Z d d l m Z m Z d d l m Z d d l m	 Z	 m
 Z
 d d l m Z d d l
 m Z d e f d	 �  �  YZ d
 S(   s�   
raven.transport.http
~~~~~~~~~~~~~~~~~~~~
: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   string_typest   urllib2(   t   defaults(   t   APIErrort   RateLimited(   t	   Transport(   t   urlopent
   HTTPTransportc           B@  s5   e  Z d  d g Z e j e e j d � Z d �  Z RS(   s	   sync+https
   sync+httpsc         C@  sa   t  | t � r t | � } n  t  | t � rB t t | � � } n  | |  _ | |  _ | |  _ d  S(   N(   t
   isinstanceR   t   intt   boolt   timeoutt
   verify_sslt   ca_certs(   t   selfR   R
   R   (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/http.pyt   __init__   s    		c   
      C@  s�   t  j | d | �} y4 t d | d | d |  j d |  j d |  j � } Wn� t  j k
 r� } | j j d � } | j	 �  } | d k r� y t
 | j j d	 � � }	 Wn t t f k
 r� d
 }	 n Xt
 | |	 � � q� | r� t | | � � q� �  n X| S(   sH   
        Sends a request to a remote webserver using HTTP POST.
        t   headerst   urlt   dataR   R
   R   s   x-sentry-errori�  s   retry-afteri    (   R   t   RequestR   R   R
   R   t	   HTTPErrorR   t   gett   getcodeR
   t
   ValueErrort	   TypeErrorR   R   (
   R   R   R   R   t   reqt   responset   exct   msgt   codet   retry_after(    (    sE   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/http.pyt   send   s*    		
(	   t   __name__t
   __module__t   schemeR   t   TIMEOUTt   Truet	   CA_BUNDLER   R    (    (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/http.pyR      s   	
N(   t   __doc__t
   __future__R    t   raven.utils.compatR   R   t
   raven.confR   t   raven.exceptionsR   R   t   raven.transport.baseR   t   raven.utils.httpR   R   (    (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/http.pyt   <module>   s