o
    <gW                     @   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   P/var/www/html/venv/lib/python3.10/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dump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__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 ]1}| sqztt|gfi |E dH  W q t	t
fy:     tyI } zt
 |d}~ww dS )z,Deserialize a stream or string of JSON data.r   N)
isinstancebytesdecodestrsplitstripPythonDeserializerr   loadsGeneratorExitr   	Exception)stream_or_stringr   lineexcr   r   r   r   *   s"   

"r   )r)   r   django.core.serializers.baser   django.core.serializers.jsonr   django.core.serializers.pythonr   r2   r   r"   r   r   r   r   <module>   s    