B ¿öY- ã @ s* d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm Z m Z mZ d dlm Z g Zi Ze d¡Zdd„ ZG d d „ d eƒZG dd„ deƒZd,dd„Zdd„ Zd-dd„Zdd„ Zd.dd„Zdd„ Ze dd„ ƒZd/dd„Zdd„ Zd d!„ Zi Z d"d#„ Z!e!d$ƒd%d&„ ƒZ"e!d'ƒd(d)„ ƒZ#d*d+„ Z$d dl%Z&dS )0é )Úabsolute_importN)ÚFunctionType)Ú iteritemsÚget_codeÚ text_typeÚstring_types)ÚonceÚravenc C sP | d |d koN| d |d koN| d |d koN| d |d koN| d |d kS )NÚtypeÚlevelÚmessageÚcategoryÚdata© )ÚaÚbr r úB/opt/alt/python37/lib/python3.7/site-packages/raven/breadcrumbs.pyÚevent_payload_considered_equal s r c @ s0 e Zd Zddd„Zddd„Zdd„ Zd d „ ZdS ) ÚBreadcrumbBufferéd c C s g | _ || _d S )N)ÚbufferÚlimit)Úselfr r r r Ú__init__ s zBreadcrumbBuffer.__init__Nc C sZ |s|s|st dƒ‚|d kr$t ¡ }| j |p0d|||||dœ|f¡ | jd | j …= d S )Nz6You must pass either `message`, `data`, or `processor`Údefault)r Ú timestampr r r r )Ú ValueErrorÚtimer Úappendr )r r r r r r r Ú processorr r r Úrecord# s zBreadcrumbBuffer.recordc C s | j d d …= d S )N)r )r r r r Úclear4 s zBreadcrumbBuffer.clearc C sŽ g }x„t | jƒD ]v\}\}}|d k rby||ƒ W n" tk rR t d¡ d }Y nX |d f| j|<