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__/python.cpython-310.pyc
o

�a��@sfdZddlmZddlmZddlmZmZddlm	Z	Gdd�dej
�Z
edd	�d
d�Zdd
�ZdS)z�
A Python "serializer". Doesn't do much serializing per se -- just converts to
and from basic Python data types (lists, dicts, strings, etc.). Useful as a basis for
other serializers.
�)�apps)�base)�DEFAULT_DB_ALIAS�models)�is_protected_typec@sdeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
Serializerz7
    Serialize a QuerySet to basic Python objects.
    TcCsd|_g|_dS�N)�_current�objects��self�r
�@/usr/lib/python3/dist-packages/django/core/serializers/python.py�start_serializations
zSerializer.start_serializationcCsdSrr
rr
r
r�end_serializationszSerializer.end_serializationcCs
i|_dSr)r	�r�objr
r
r�start_objects
zSerializer.start_objectcCs|j�|�|��d|_dSr)r
�append�get_dump_objectr	rr
r
r�
end_objects
zSerializer.end_objectcCs@dt|j�i}|jrt|d�s|�||jj�|d<|j|d<|S)N�model�natural_key�pk�fields)�str�_meta�use_natural_primary_keys�hasattr�_value_from_fieldrr	)rr�datar
r
rr"s

zSerializer.get_dump_objectcCs |�|�}t|�r|S|�|�Sr)�value_from_objectr�value_to_string)rr�field�valuer
r
rr)s
zSerializer._value_from_fieldcCs|�||�|j|j<dSr)rr	�name)rrr#r
r
r�handle_field0szSerializer.handle_fieldcCsP|jrt|jjd�rt||j�}|r|��}n	d}n|�||�}||j|j<dS)Nr)	�use_natural_foreign_keysr�remote_fieldr�getattrr%rrr	)rrr#�relatedr$r
r
r�handle_fk_field3s
zSerializer.handle_fk_fieldcsz|jjjjr;�jrt|jjd�rdd��n�fdd��t|di��|j	t||j	��
��}�fdd�|D��j|j	<dSdS)NrcSs|��Sr)r�r$r
r
r�	m2m_valueAsz.Serializer.handle_m2m_field.<locals>.m2m_valuecs��||jj�Sr)rrrr,rr
rr-Ds�_prefetched_objects_cachecsg|]}�|��qSr
r
)�.0r*)r-r
r�
<listcomp>Jsz/Serializer.handle_m2m_field.<locals>.<listcomp>)r(�throughr�auto_createdr'rrr)�getr%�iteratorr	)rrr#�m2m_iterr
)r-rr�handle_m2m_field>s
��zSerializer.handle_m2m_fieldcCs|jSr)r
rr
r
r�getvalueLszSerializer.getvalueN)�__name__�
__module__�__qualname__�__doc__�internal_use_onlyrrrrrrr&r+r6r7r
r
r
rr
srF)�using�ignorenonexistentcks��|�dd�}i}|D�]2}zt|d�}Wn
tjy#|r"Yq�wi}d|vrVz|jj�|�d��||jjj<Wnt	yU}	ztj�
|	|d|�d�d��d}	~	wwi}
i}||vrjdd�|j��D�||<||}|d��D]�\}
}|r|
|vrqt|j�
|
�}|jr�t|jtj�r�z
t�||||�}Wntjy�}	ztj�
|	j|d|�d�|	j��d}	~	ww|tjkr�|||<qt||
|j<qt|j�r	t|jtj��r	z
t�||||�}Wnt	y�}	ztj�
|	|d|�d�|��d}	~	ww|tjk�r|||<qt|||j<qtz
|�|�||j<Wqtt	�y.}	ztj�
|	|d|�d�|��d}	~	wwt�|||�}t�||
|�VqdS)	z�
    Deserialize simple Python objects back into Django ORM instances.

    It's expected that you pass the Python objects themselves (instead of a
    stream or a string) to the constructor
    �handle_forward_referencesFrrNcSsh|]}|j�qSr
)r%)r/�fr
r
r�	<setcomp>mszDeserializer.<locals>.<setcomp>r)�pop�
_get_modelr�DeserializationErrorrr�	to_pythonr3�attname�	Exception�WithData�
get_fields�items�	get_fieldr(�
isinstancer�
ManyToManyRel�deserialize_m2m_values�M2MDeserializationError�original_exc�DEFER_FIELDr%�ManyToOneRel�deserialize_fk_value�build_instance�DeserializedObject)�object_listr=r>�optionsr?�field_names_cache�d�Modelr �e�m2m_data�deferred_fields�field_names�
field_name�field_valuer#�valuesr$rr
r
r�DeserializerPsr�
�"�� ��

��
���rbc	Cs.zt�|�WSttfyt�d|��w)z6Look up a model from an "app_label.model_name" string.zInvalid model identifier: '%s')r�	get_model�LookupError�	TypeErrorrrD)�model_identifierr
r
rrC�s
�rCN)
r;�django.appsr�django.core.serializersr�	django.dbrr�django.utils.encodingrrrbrCr
r
r
r�<module>sCH