£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    Y{
                 @   sz   d Z ddlmZ ddlZddlmZ ddlmZ dZe	dZ
G dd	 d	eZG d
d deZe ZejZefddZdS )z
raven.utils.serializer.manager
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_importN)closing)	text_type)register	transformzsentry.errors.serializerc               @   s,   e Zd ZeZdd Zedd Zdd ZdS )SerializationManagerc             C   s   g | _ i | _d S )N)_SerializationManager__registryZ"_SerializationManager__serializers)self r
   O/opt/alt/python37/lib/python3.7/site-packages/raven/utils/serializer/manager.py__init__   s    zSerializationManager.__init__c             c   s   x| j D ]
}|V  qW d S )N)r   )r	   
serializerr
   r
   r   serializers   s    z SerializationManager.serializersc             C   s   || j kr| j | |S )N)r   append)r	   r   r
   r
   r   r       s    
zSerializationManager.registerN)__name__
__module____qualname__loggerr   propertyr   r   r
   r
   r
   r   r      s   r   c               @   s(   e Zd ZeZdd Zdd Zdd ZdS )
Serializerc             C   s8   || _ t | _g | _x|jD ]}| j||  qW d S )N)managersetcontextr   r   )r	   r   r   r
   r
   r   r   )   s
    zSerializer.__init__c             C   s   | ` | `d S )N)r   r   )r	   r
   r
   r   close0   s    zSerializer.closec             K   s   |dkrdS t |}|| jkr"dS | j| zx\| jD ]R}||r8y|j|f|S  tk
r } zt| t	t
|S d}~X Y q8X q8W yt|S  tk
r } zt| t	t
|S d}~X Y nX W d| j| X dS )zn
        Primary function which handles recursively transforming
        values via their serializers
        Nz<...>)idr   addr   Zcan	serialize	Exceptionr   	exceptionr   typereprremove)r	   valuekwargsobjidr   er
   r
   r   r   4   s(    



zSerializer.transformN)r   r   r   r   r   r   r   r
   r
   r
   r   r   &   s   r   c          	   K   s&   t t|}|j| f|S Q R X d S )N)r   r   r   )r"   r   r#   r   r
   r
   r   r   \   s    r   )__doc__
__future__r   logging
contextlibr   Zraven.utils.compatr   __all__	getLoggerr   objectr   r   r   r   r   r
   r
   r
   r   <module>   s   
2