???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ó
¿öYc           @@  sÁ   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z d Z e j d ƒ Z d	 „  Z e ƒ  Z d
 e f d „  ƒ  YZ d S(   i    (   t   absolute_importN(   t   PY2t	   text_type(   t
   InvalidDsn(   t	   to_string(   t	   parse_qslt   urlparses(   Unsupported Sentry DSN scheme: {0} ({1})t   ravenc          C@  ss   d d l  m }  d d l m } d t j k rO d t j k rO t j d ƒ | Sd t j k ro t j d ƒ | S|  S(	   Ni    (   t   ThreadedHTTPTransport(   t   HTTPTransportt   CURRENT_VERSION_IDt   INSTANCE_IDsO   Detected environment to be Google App Engine. Using synchronous HTTP transport.t   LAMBDA_TASK_ROOTsH   Detected environment to be AWS Lambda. Using synchronous HTTP transport.(   t   raven.transport.threadedR   t   raven.transport.httpR	   t   ost   environt   loggert   info(   R   R	   (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   discover_default_transport   s    t   RemoteConfigc           B@  s\   e  Z d d d d d d d  „ Z d „  Z d „  Z d „  Z d „  Z e d d d „ ƒ Z	 RS(   c         C@  s}   | r( | j  d ƒ } d | | f } n d  } | |  _ | |  _ | |  _ | |  _ | p[ i  |  _ | |  _ | ps t |  _	 d  S(   Nt   /s   %s/api/%s/store/(
   t   rstript   Nonet   base_urlt   projectt
   public_keyt
   secret_keyt   optionst   store_endpointt   DEFAULT_TRANSPORTt   _transport_cls(   t   selfR   R   R   R   t	   transportR   R   (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   __init__(   s    					c         C@  s   t  |  j ƒ S(   N(   R   R   (   R    (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   __unicode__9   s    c         C@  s"   t  |  j |  j |  j |  j g ƒ S(   N(   t   allR   R   R   R   (   R    (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt	   is_active<   s    c         C@  s;   |  j  s d  St |  d ƒ s4 |  j |  j   |  _ n  |  j S(   Nt
   _transport(   R   t   hasattrR   R   R&   (   R    (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   get_transport?   s
    	c         C@  sR   t  |  j ƒ } | j } | j r5 | d | j 7} n  d |  j | | j |  j f S(   Ns   :%ss   //%s@%s%s/%s(   R   R   t   hostnamet   portR   t   pathR   (   R    t   urlt   netloc(    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   get_public_dsnG   s
    		c         C@  sÉ  t  r t | ƒ } n  t | j ƒ  ƒ } | j d k rF t j d ƒ n  | d  k rÂ | s} d d l m	 } m
 } | | ƒ } n  | j | j ƒ s­ t t j | j | ƒ ƒ ‚ n  | j | j ƒ } n  | j } | j rè | d | j 7} n  | j j d d ƒ } t | ƒ d k r| d }	 n d	 }	 | d
 }
 t | |
 | j | j g ƒ sct d | j ƒ  ƒ ‚ n  d | j j d d ƒ d
 | |	 f } |  d | d |
 d | j d | j d t t | j ƒ ƒ d | ƒ S(   Nt   httpt   httpssn   Transport selection via DSN is deprecated. You should explicitly pass the transport class to Client() instead.i    (   t   TransportRegistryt   default_transportss   :%sR   i   t    iÿÿÿÿs   Invalid Sentry DSN: %rs	   %s://%s%st   +R   R   R   R   R   R!   (   R/   R0   (   R   R   R   t   stript   schemet   warningst   warnR   t   raven.transportR1   R2   t   supported_schemeR   t   ERR_UNKNOWN_SCHEMEt   formatt   get_transport_clsR)   R*   R+   t   rsplitt   lenR$   t   usernamet   passwordt   geturlt   dictR   t   query(   t   clst   valueR!   t   transport_registryR,   R1   R2   R-   t	   path_bitsR+   R   R   (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   from_stringN   s<    		
&		N(
   t   __name__t
   __module__R   R"   R#   R%   R(   R.   t   classmethodRI   (    (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyR   '   s   					(   t
   __future__R    t   loggingR   R7   t   raven.utils.compatR   R   t   raven.exceptionsR   t   raven.utils.encodingR   t   raven.utils.urlparseR   R   R;   t	   getLoggerR   R   R   t   objectR   (    (    (    sB   /opt/alt/python27/lib/python2.7/site-packages/raven/conf/remote.pyt   <module>   s   		