a
    5¤XhW  ã                   @   sX   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 G dd„ de
ƒZ	d	d
„ ZdS )z#
Serialize data to/from JSON Lines
é    N)ÚDeserializationError)ÚDjangoJSONEncoder)ÚDeserializer)Ú
Serializerc                       s<   e Zd ZdZdZdd„ Zdd„ Zdd„ Z‡ fd	d
„Z‡  Z	S )r   z!Convert a queryset to JSON Lines.Fc                 C   sf   d | _ | j ¡ | _| j dd ¡ | j dd ¡ | j dd ¡ d| jd< | j dt¡ | j dd¡ d S )	NÚstreamÚfieldsÚindent)ú,z: Ú
separatorsÚclsÚensure_asciiF)Ú_currentÚoptionsÚcopyÚjson_kwargsÚpopÚ
setdefaultr   ©Úself© r   úb/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/django/core/serializers/jsonl.pyÚ_init_options   s    
zSerializer._init_optionsc                 C   s   |   ¡  d S ©N)r   r   r   r   r   Ústart_serialization   s    zSerializer.start_serializationc                 C   s4   t j|  |¡| jfi | j¤Ž | j d¡ d | _d S )NÚ
)ÚjsonÚdumpZget_dump_objectr   r   Úwriter   )r   Úobjr   r   r   Ú
end_object   s    zSerializer.end_objectc                    s   t t| ƒ ¡ S r   )ÚsuperÚPythonSerializerÚgetvaluer   ©Ú	__class__r   r   r"   %   s    zSerializer.getvalue)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Zinternal_use_onlyr   r   r   r"   Ú__classcell__r   r   r#   r   r      s   
r   c                 k   s¨   t | tƒr|  ¡ } t | ttfƒr*|  d¡} | D ]t}| ¡ s<q.z"tt |¡gfi |¤ŽE dH  W q. t	t
fyv   ‚ Y q. ty  } zt
ƒ |‚W Y d}~q.d}~0 0 q.dS )z,Deserialize a stream or string of JSON data.r   N)Ú
isinstanceÚbytesÚdecodeÚstrÚsplitÚstripÚPythonDeserializerr   ÚloadsÚGeneratorExitr   Ú	Exception)Zstream_or_stringr   ÚlineÚexcr   r   r   r   *   s    

"r   )r(   r   Zdjango.core.serializers.baser   Zdjango.core.serializers.jsonr   Zdjango.core.serializers.pythonr   r0   r   r!   r   r   r   r   Ú<module>   s   