File: //opt/alt/python27/lib/python2.7/site-packages/raven/contrib/awslambda/__init__.pyc
�
��Yc           @@  s�   d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z d d l m	 Z	 d d l
 m Z e j d � Z
 d �  Z d	 e	 f d
 �  �  YZ d S(   s�   
raven.contrib.awslambda
~~~~~~~~~~~~~~~~~~~~
Raven wrapper for AWS Lambda handlers.
:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_importN(   t   FunctionType(   t   Client(   t
   HTTPTransports   sentry.errors.clientc           C@  s.   i d d 6d d 6d d 6d d 6d	 d
 6d d 6S(
   Nt   AWS_LAMBDA_FUNCTION_NAMEt   lambdat   AWS_LAMBDA_FUNCTION_VERSIONt   versiont   AWS_LAMBDA_FUNCTION_MEMORY_SIZEt   memory_sizet   AWS_LAMBDA_LOG_GROUP_NAMEt	   log_groupt   AWS_LAMBDA_LOG_STREAM_NAMEt
   log_streamt
   AWS_REGIONt   region(    (    (    (    sQ   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/awslambda/__init__.pyt   get_default_tags   s    t   LambdaClientc           B@  se   e  Z d  Z d �  Z d �  Z d �  Z d d d � Z e d �  � Z	 e d �  � Z
 e d �  � Z RS(	   s�  
    Raven decorator for AWS Lambda.
    By default, the lambda integration will capture unhandled exceptions and instrument logging.
    Usage:
    >>> from raven.contrib.awslambda import LambdaClient
    >>>
    >>>
    >>> client = LambdaClient()
    >>>
    >>> @client.capture_exceptions
    >>> def handler(event, context):
    >>>    ...
    >>>    raise Exception('I will be sent to sentry!')
    c         O@  s5   | j  d t � } t t |  � j d | | | � d  S(   Nt	   transport(   t   getR   t   superR   t   __init__(   t   selft   argst   kwargsR   (    (    sQ   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/awslambda/__init__.pyR   8   s    c         O@  s�   d | k r i  | d <} n
 | d } | j  d d  � } | j  d d  � } |  j | � } | rp | j | � n  | r� |  j | � } | r� | j | � n  |  j | | � | d <n  t t |  � j | | �  S(   Nt   datat   eventt   contextt   extra(	   R   t   Nonet   _get_user_interfacet   updatet   _get_http_interfacet   _get_extra_dataR   R   t   capture(   R   R   R   R   R   R   t	   user_infot	   http_info(    (    sQ   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/awslambda/__init__.pyR"