+
    Tje1                         R t ^ RIHt ^ RIHt ^ RIHt ]! 4       t ! R R]	4      t
 ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R4      t ! R R4      t ! R R4      t ! R R4      tR tR tR tR# )z;
Module for abstract serializer/unserializer base classes.
)StringIO)ObjectDoesNotExist)modelsc                       ] tR t^tRtRtR# )SerializerDoesNotExistz'The requested serializer was not found. N__name__
__module____qualname____firstlineno____doc____static_attributes__r       Q/var/www/idalgo/venv/lib/python3.14/site-packages/django/core/serializers/base.pyr   r      s    1r   r   c                       ] tR t^tRtRtR# )SerializationErrorz,Something bad happened during serialization.r   Nr   r   r   r   r   r      s    6r   r   c                   4   a  ] tR t^t o Rt]R 4       tRtV tR# )DeserializationErrorz.Something bad happened during deserialization.c           
     2    V ! V: RV: RV: RV: R24      # )z[
Factory method for creating a deserialization error which has a more
explanatory message.
z: (z:pk=z) field_value was ''r   )clsoriginal_excmodelfkfield_values   &&&&&r   WithDataDeserializationError.WithData   s     UB5
 	
r   r   N)	r	   r
   r   r   r   classmethodr   r   __classdictcell____classdict__s   @r   r   r      s     8
 
r   r   c                   *   a  ] tR t^(t o RtR tRtV tR# )M2MDeserializationErrorzCSomething bad happened during deserialization of a ManyToManyField.c                    Wn         W n        R # Nr   pk)selfr   r'   s   &&&r   __init__ M2MDeserializationError.__init__+   s    (r   r&   N)r	   r
   r   r   r   r)   r   r   r    s   @r   r#   r#   (   s     M r   r#   c                   0   a  ] tR t^0t o ^KtR tR tRtV tR# )ProgressBarc                ,    Wn         W n        ^ V n        R# )    N)outputtotal_count	prev_done)r(   r/   r0   s   &&&r   r)   ProgressBar.__init__3   s    &r   c                &   V P                   '       g   R # V^d,          V P                  ,          pW P                  ,          ^d,          pV P                  V8  d   R # W0n        V P                  ^8X  d   RMRpV P                   P	                  VR,           RV,          ,           RV P                  V,
          ,          ,           R,           4       W0P                  8X  d   V P                   P	                  R4       V P                   P                  4        R # )N [. ]
)r/   r0   progress_widthr1   writeflush)r(   countpercdonecrs   &&   r   updateProgressBar.update8   s    {{{s{d...)))S0>>T!##q(RdHsTz!C4+>+>+E$FFL	
 &&&KKd#r   )r/   r1   r0   N)	r	   r
   r   r   r;   r)   rB   r   r   r    s   @r   r,   r,   0   s     N
 r   r,   c                      a  ] tR t^It o RtRt]t]t	RRRRRRRRRRR	^ /R
 lt
R tR tR tR tR tR tR tR tRtV tR# )
Serializerz!
Abstract serializer base class.
FstreamNfieldsuse_natural_foreign_keysuse_natural_primary_keysprogress_outputobject_countc                  Wn         Ve   TMV P                  4       V n        W0n        W@n        WPn        V P                  Wg4      p	V P                  4        RV n        \        V^R7       EF  w  rV P                  V4       VP                  P                  pV P
                  '       dJ   VP                  P                  pVP                  '       d   VP                  P                  '       d   TMRpMRpVP                  P                    F  pVP"                  '       g   WJ g   K  VP                  f?   V P                  e   VP$                  V P                  9   d   V P'                  W4       Kf  Kh  V P                  e!   VP$                  RR V P                  9   g   K  V P)                  W4       K  	  VP                  P*                   FS  pVP"                  '       g   K  V P                  e   VP$                  V P                  9   g   KB  V P-                  W4       KU  	  V P/                  V4       V	P1                  V
4       V P                  ;'       d    RV n        EK  	  V P3                  4        V P5                  4       # )z
Serialize a queryset.
NT)startF)optionsstream_classrF   selected_fieldsrH   rI   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_objectrB   end_serializationgetvalue)r(   querysetrF   rG   rH   rI   rJ   rK   rO   progress_barr>   objrX   r'   	pk_parentfields   &&$$$$$$,       r   r\   Serializer.serializeT   s     & 2f8I8I8K%(@%(@%**?I  "
#HA66JEc" !YY55N ,,,#)),,///boo.I.I.IBt  !	'--::???e&8))1 008$}}0D0DD --c9  E
 !008$}}Sb1T5I5II 00< ; (--@@???,,4 ==D,@,@@--c9 A OOC &--DJO 7P 	 }}r   c                    \        R4      h)z1
Called when serializing of the queryset starts.
zDsubclasses of Serializer must provide a start_serialization() methodNotImplementedErrorr(   s   &r   rS   Serializer.start_serialization   s     "R
 	
r   c                    R# )z/
Called when serializing of the queryset ends.
Nr   rn   s   &r   rc   Serializer.end_serialization        	r   c                    \        R4      h)z.
Called when serializing of an object starts.
z=subclasses of Serializer must provide a start_object() methodrl   r(   rg   s   &&r   rV   Serializer.start_object        "K
 	
r   c                    R# )z,
Called when serializing of an object ends.
Nr   rt   s   &&r   rb   Serializer.end_object   rr   r   c                    \        R4      h)zG
Called to handle each individual (non-relational) field on an object.
z=subclasses of Serializer must provide a handle_field() methodrl   r(   rg   ri   s   &&&r   r^   Serializer.handle_field   rv   r   c                    \        R4      h)z&
Called to handle a ForeignKey field.
z@subclasses of Serializer must provide a handle_fk_field() methodrl   rz   s   &&&r   r_   Serializer.handle_fk_field   s     "N
 	
r   c                    \        R4      h)z%
Called to handle a ManyToManyField.
zAsubclasses of Serializer must provide a handle_m2m_field() methodrl   rz   s   &&&r   ra   Serializer.handle_m2m_field   s     "O
 	
r   c                    \        \        V P                  RR4      4      '       d   V P                  P                  4       # R# )zV
Return the fully serialized queryset (or None if the output stream is
not seekable).
rd   N)callablegetattrrF   rd   rn   s   &r   rd   Serializer.getvalue   s4    
 GDKKT:;;;;'')) <r   )rT   rO   rQ   rF   rH   rI   )r	   r
   r   r   r   internal_use_onlyr,   rR   r   rP   r\   rS   rc   rV   rb   r^   r_   ra   rd   r   r   r    s   @r   rE   rE   I   s       NLB 	B
 B "'B "'B B BH




* *r   rE   c                   6   a  ] tR t^t o RtR tR tR tRtV t	R# )Deserializerz#
Abstract base deserializer class.
c                n    W n         \        V\        4      '       d   \        V4      V n        R# Wn        R# )z1
Init this serializer given a stream or a string
N)rO   
isinstancestrr   rF   )r(   stream_or_stringrO   s   &&,r   r)   Deserializer.__init__   s)     &,,"#34DK*Kr   c                    V # r%   r   rn   s   &r   __iter__Deserializer.__iter__   s    r   c                    \        R4      h)z9Iteration interface -- return the next item in the streamz;subclasses of Deserializer must provide a __next__() methodrl   rn   s   &r   __next__Deserializer.__next__   s    !I
 	
r   )rO   rF   N)
r	   r
   r   r   r   r)   r   r   r   r   r    s   @r   r   r      s     +
 
r   r   c                   H   a  ] tR t^t o RtRR ltR tR	R ltR
R ltRt	V t
R# )DeserializedObjectaI  
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.)
Nc                *    Wn         W n        W0n        R # r%   )objectm2m_datadeferred_fields)r(   rg   r   r   s   &&&&r   r)   DeserializedObject.__init__   s     .r   c                    R V P                   P                  : RV P                  P                  P                  : RV P                  P
                  : R2# )<z: z(pk=z)>)	__class__r	   r   rW   labelr'   rn   s   &r   __repr__DeserializedObject.__repr__   s7    NN##KK##KKNN
 	
r   c                6   \         P                  P                  ! V P                  3R VRR/VB  V P                  '       dQ   V'       dI   V P                  P                  4        F*  w  rE\        V P                  V4      P                  V4       K,  	  RV n        R# )usingrawTN)r   Model	save_baser   r   itemsr   set)r(   save_m2mr   kwargsaccessor_nameobject_lists   &&&,  r   saveDeserializedObject.save  sq     	t{{L%LTLVL===X.2mm.A.A.C*]377D /D
 r   c                l   / V n         V P                  P                  4        F  w  r#V P                  P                  pVP
                  R ,           VP                  ,           p\        VP                  \        P                  4      '       d*    \        W#VRR7      pY`P                   TP"                  &   K  \        VP                  \        P$                  4      '       g   K   \'        W#VRR7      p\+        T P                  TP,                  T4       K  	  V P/                  4        R#   \         dE   p\        P                  TP                  YPP                  P                   TP                   4      hRp?ii ; i  \(         d1   p\        P                  YuT P                  P                   T4      hRp?ii ; i)r7   F)handle_forward_referencesN)r   r   r   r   rW   	app_label
model_namer   rY   r   ManyToManyReldeserialize_m2m_valuesr#   r   r   r   r'   nameManyToOneReldeserialize_fk_value	Exceptionsetattrr]   r   )	r(   r   ri   r   optsr   valuesevalues	   &&       r   save_deferred_fields'DeserializedObject.save_deferred_fields  sK   "&"6"6"<"<">E;;$$DNNS(4??:E%,,f.B.BCC3EUF -3ejj)E..0C0CDD0EUE U]]E:- #?. 			 / .77{{~~qtt  ! .77$++..+ s0   D&!E8&E51?E00E58F3+F..F3)r   r   r   )NN)TNr%   )r	   r
   r   r   r   r)   r   r   r   r   r   r    s   @r   r   r      s#     	/

 r   r   c                D   V P                   P                  pVP                  V P                   P                  P                  4      pVf   \        VR4      '       d   \        V R4      '       d   V ! R/ VB pW%P                  n        VP                  4       p V P                   P                  P                  VP                  V4      P                  ! V!  P                  4      WP                   P                  P                  &   V ! R/ VB #   T P                   d     Li ; i)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.
get_by_natural_keynatural_keyr   )rW   default_managergetr'   r]   hasattr_statedbr   	to_python
db_managerr   DoesNotExist)r   datar   r   r'   rg   r   s   &&&    r   build_instancer   /  s     kk11O	%++..((	)B

O%9::E=))mdm

oo'	+0;;>>+C+C**2.AA;ORR,D''(
 =4= !! 		s   A,D DDc                   aa	 V P                   P                  o	\        S	P                  R 4      '       d	   V	V3R lpMV	3R lp \	        V4      p . pT F  pTP                  T! T4      4       K  	  T#   \
         d   p\        Ya4      hRp?ii ; i  \         d;   p\        T\        4      '       d   T'       d   \        u Rp?# \        TX4      hRp?ii ; i)r   c                   < \        V R 4      '       dJ   \        V \        4      '       g4   SP                  P	                  S4      P
                  ! V !  P                  # SP                  P                  P                  V 4      # )r   )	r   r   r   _default_managerr   r   r'   rW   r   )r   r   r   s   &r   m2m_convert+deserialize_m2m_values.<locals>.m2m_convertM  sh    uj))*UC2H2H**55e<''().0R {{~~//66r   c                 N   < SP                   P                  P                  V 4      # r%   )rW   r'   r   )vr   s   &r   r   r   Y  s    ;;>>++A..r   N)rY   r   r   r   iter	TypeErrorr#   appendr   r   r   DEFER_FIELD)
ri   r   r   r   r   pks_iterr   r   r'   r   s
   &&f&     @r   r   r   I  s    $$Eu%%';<<	7	/6$	1BMM+b/*   6%a556  1a+,,1J)!R00	1sB   A4 #B 4B?B

BCC;C CCCc                 D   Vf   R # V P                   P                  pVP                  pV P                   P                  p\	        VR4      '       d   \	        VR4      '       dv   \        V\        4      '       g`    VP                  V4      P                  ! V!  p\        Yv4      pTP                  P                  P                   '       d   TP                  pT# VP                  P                  V4      P                  V4      #   \         d    T'       d	   \        u # h i ; i)Nr   r   )rY   r   r   
field_namer   r   r   r   r   r   r   r   rW   r'   	get_fieldr   )	ri   r   r   r   r   r   r   rg   r   s	   &&&&     r   r   r   l  s    $$E,,O##..J!566K,,;,,	!,,U3FFTC ( ;;>>&&&HHE;;  ,66{CC " 	(""		s   :D DDDN)r   ior   django.core.exceptionsr   	django.dbr   r   r   KeyErrorr   r   r   r   r#   r,   rE   r   r   r   r   r   r   r   r   <module>r      s     5 h	X 		 	
9 
i  2I* I*X
 
2> >B4 1FDr   