HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/django/core/serializers/__pycache__/base.cpython-310.pyc
o

3�a�-�@s�dZddlmZddlmZddlmZe�ZGdd�de	�Z
Gdd�de�ZGd	d
�d
e�Z
Gdd�de�ZGd
d�d�ZGdd�d�ZGdd�d�ZGdd�d�Zdd�Zdd�Zdd�ZdS)z;
Module for abstract serializer/unserializer base classes.
�)�StringIO)�ObjectDoesNotExist)�modelsc@�eZdZdZdS)�SerializerDoesNotExistz'The requested serializer was not found.N��__name__�
__module__�__qualname__�__doc__�rr�>/usr/lib/python3/dist-packages/django/core/serializers/base.pyr�rc@r)�SerializationErrorz,Something bad happened during serialization.Nrrrrr
rrrc@seZdZdZedd��ZdS)�DeserializationErrorz.Something bad happened during deserialization.cCs|d||||f�S)zs
        Factory method for creating a deserialization error which has a more
        explanatory message.
        z#%s: (%s:pk=%s) field_value was '%s'r)�cls�original_exc�model�fk�field_valuerrr
�WithDataszDeserializationError.WithDataN)rr	r
r�classmethodrrrrr
rsrc@seZdZdZdd�ZdS)�M2MDeserializationErrorzCSomething bad happened during deserialization of a ManyToManyField.cCs||_||_dS�N)r�pk)�selfrrrrr
�__init__$s
z M2MDeserializationError.__init__N)rr	r
rrrrrr
r"src@s eZdZdZdd�Zdd�ZdS)�ProgressBar�KcCs||_||_d|_dS)Nr)�output�total_count�	prev_done)rrr rrr
r,�
zProgressBar.__init__cCs�|jsdS|d|j}||jd}|j|krdS||_|jdkr$dnd}|j�|dd|d|j|d�||jkrF|j�d	�|j��dS)
N�d���
�[�.� �]�
)rr �progress_widthr!�write�flush)r�count�perc�done�crrrr
�update1s
*
zProgressBar.updateN)rr	r
r,rr3rrrr
r)src@steZdZdZdZeZeZddddddd�dd�Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�
Serializerz)
    Abstract serializer base class.
    FNr)�stream�fields�use_natural_foreign_keys�use_natural_primary_keys�progress_output�object_countcKst||_|dur	|n|��|_||_||_||_|�||�}	|��d|_t	|dd�D]�\}
}|�
|�|jj}|jrJ|jj
}
|
jrG|
jjrG|
nd}nd}|jjD]5}|jsY||ur�|jdurp|jdusi|j|jvro|�||�qP|jdus|jdd�|jvr�|�||�qP|jjD]}|jr�|jdus�|j|jvr�|�||�q�|�|�|	�|
�|jo�d|_q*|��|��S)z'
        Serialize a queryset.
        NTr$)�start���F)�options�stream_classr5�selected_fieldsr7r8�progress_class�start_serialization�first�	enumerate�start_object�_meta�concrete_modelr�remote_field�parent_link�local_fields�	serialize�attname�handle_field�handle_fk_field�local_many_to_many�handle_m2m_field�
end_objectr3�end_serialization�getvalue)r�querysetr5r6r7r8r9r:r=�progress_barr/�objrFr�	pk_parent�fieldrrr
rJKsD

���

zSerializer.serializecC�td��)zA
        Called when serializing of the queryset starts.
        zDsubclasses of Serializer must provide a start_serialization() method��NotImplementedError�rrrr
rAy�zSerializer.start_serializationcC�dS)z?
        Called when serializing of the queryset ends.
        Nrr[rrr
rQ�zSerializer.end_serializationcCrX)z>
        Called when serializing of an object starts.
        z=subclasses of Serializer must provide a start_object() methodrY�rrUrrr
rD�r\zSerializer.start_objectcCr])z<
        Called when serializing of an object ends.
        Nrr_rrr
rP�r^zSerializer.end_objectcCrX)zW
        Called to handle each individual (non-relational) field on an object.
        z=subclasses of Serializer must provide a handle_field() methodrY�rrUrWrrr
rL�r\zSerializer.handle_fieldcCrX)z6
        Called to handle a ForeignKey field.
        z@subclasses of Serializer must provide a handle_fk_field() methodrYr`rrr
rM�r\zSerializer.handle_fk_fieldcCrX)z5
        Called to handle a ManyToManyField.
        zAsubclasses of Serializer must provide a handle_m2m_field() methodrYr`rrr
rO�r\zSerializer.handle_m2m_fieldcCs tt|jdd��r|j��SdS)zn
        Return the fully serialized queryset (or None if the output stream is
        not seekable).
        rRN)�callable�getattrr5rRr[rrr
rR�s
�zSerializer.getvalue)rr	r
r�internal_use_onlyrr@rr>rJrArQrDrPrLrMrOrRrrrr
r4@s �.r4c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�Deserializerz+
    Abstract base deserializer class.
    cKs(||_t|t�rt|�|_dS||_dS)zA
        Init this serializer given a stream or a string
        N)r=�
isinstance�strrr5)r�stream_or_stringr=rrr
r�s

zDeserializer.__init__cCs|Srrr[rrr
�__iter__�szDeserializer.__iter__cCrX)z9Iteration interface -- return the next item in the streamz;subclasses of Deserializer must provide a __next__() methodrYr[rrr
�__next__�szDeserializer.__next__N)rr	r
rrrhrirrrr
rd�s

rdc@s6eZdZdZddd�Zdd�Zd
dd	�Zdd
d�ZdS)�DeserializedObjectae
    A deserialized model.

    Basically a container for holding the pre-saved deserialized data along
    with the many-to-many data saved with the object.

    Call ``save()`` to save the object (with the many-to-many data) to the
    database; call ``save(save_m2m=False)`` to save just the object fields
    (and not touch the many-to-many stuff.)
    NcCs||_||_||_dSr)�object�m2m_data�deferred_fields)rrUrlrmrrr
r�r"zDeserializedObject.__init__cCsd|jj|jjj|jjfS)Nz<%s: %s(pk=%s)>)�	__class__rrkrE�labelrr[rrr
�__repr__�s
�zDeserializedObject.__repr__TcKsVtjj|jf|dd�|��|jr&|r&|j��D]
\}}t|j|��|�qd|_dS)NT)�using�raw)r�Model�	save_baserkrl�itemsrb�set)r�save_m2mrq�kwargs�
accessor_name�object_listrrr
�save�s


zDeserializedObject.savec	Csi|_|j��D]q\}}|jj}|jd|j}t|jt	j
�rIz
t|||dd�}WntyA}zt
�|j||jj|j��d}~ww||j|j<qt|jt	j�ryz
t|||dd�}Wntyp}z
t
�|||jj|��d}~wwt|j|j|�q|��dS)Nr(F)�handle_forward_references)rlrmrurkrE�	app_label�
model_namererGr�
ManyToManyRel�deserialize_m2m_valuesrrrrr�name�ManyToOneRel�deserialize_fk_value�	Exception�setattrrKr{)	rrqrWr�optsro�values�e�valuerrr
�save_deferred_fields�s,�����z'DeserializedObject.save_deferred_fields)NN)TNr)rr	r
rrrpr{r�rrrr
rj�s


rjcCs�|jj}|�|jjj�}|durCt|d�rCt|d�rC|di|����}z|jj�|�|�j	|�j�||jjj<Wn
|j
yBYnw|di|��S)z�
    Build a model instance.

    If the model instance doesn't have a primary key and the model supports
    natural keys, try to retrieve it from the database.
    N�get_by_natural_key�natural_keyr)rE�default_manager�getrrK�hasattrr��	to_python�
db_managerr��DoesNotExist)rs�data�dbr�rr�rrr
�build_instance�s���r�c	
s�|jj�t�jd�r��fdd�}n�fdd�}zt|�}Wnty/}zt||��d}~wwzg}|D]	}|�||��q5|WStya}zt	|t
�rX|rXtWYd}~St||��d}~ww)Nr�cs6t|d�rt|t�s�j���j|�jS�jj�|�S)Nrh)	r�rerf�_default_managerr�r�rrEr�)r��rrqrr
�m2m_convertsz+deserialize_m2m_values.<locals>.m2m_convertcs�jj�|�Sr)rErr�)�v)rrr
r�s)rGrr�r��iter�	TypeErrorr�appendr�rer�DEFER_FIELD)	rWrrqr|r��pks_iterr�r�rrr�r
r�s*
��
��r�c	Cs�|durdS|jj}|j}|jj}t|d�rHt|d�rHt|t�sHz
|�|�j|�}Wnt	y8|r7t
YS�wt||�}|jj
jrF|j
}|S|j�|��|�S)Nr�rh)rGrr��
field_namer�rerfr�r�rr�rbrEr�	get_fieldr�)	rWrrqr|rr�r�rUr�rrr
r�-s,
���

r�N)r�ior�django.core.exceptionsr�	django.dbrrkr��KeyErrorrr�rrrrr4rdrjr�r�r�rrrr
�<module>s l9