<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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