+
    Tj                         R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht  ! R R]P                  4      t ! R R	]P                  4      tR
# )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)CompositePrimaryKey)is_protected_typec                   d   a  ] tR t^t o RtRtR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )
Serializerz/
Serialize a QuerySet to basic Python objects.
Tc                "    R V n         . V n        R # N_currentobjectsselfs   &S/var/www/idalgo/venv/lib/python3.14/site-packages/django/core/serializers/python.pystart_serializationSerializer.start_serialization   s        c                    R # r    r   s   &r   end_serializationSerializer.end_serialization   s    r   c                    / V n         R # r   )r   r   objs   &&r   start_objectSerializer.start_object   s	    r   c                h    V P                   P                  V P                  V4      4       R V n        R # r   )r   appendget_dump_objectr   r   s   &&r   
end_objectSerializer.end_object   s&    D0056r   c                    R \        VP                  4      /pV P                  '       d   \        VR4      '       g)   V P	                  WP                  P
                  4      VR&   V P                  VR&   V# )modelnatural_keypkfields)str_metause_natural_primary_keyshasattr_value_from_fieldr&   r   )r   r   datas   && r   r    Serializer.get_dump_object#   sZ    SYY(,,,GC4O4O//YY\\BDJXr   c                    \        V\        4      '       d!   V Uu. uF  q0P                  W4      NK  	  up# VP                  V4      p\	        V4      '       d   V# VP                  V4      # u upi r   )
isinstancer   r,   value_from_objectr   value_to_string)r   r   fieldfvalues   &&&  r   r,   Serializer._value_from_field*   sf    e011<ABEq**32EBB'', *%00uPe6K6KC6PP Cs   A,c                V    V P                  W4      V P                  VP                  &   R # r   )r,   r   name)r   r   r3   s   &&&r   handle_fieldSerializer.handle_field3   s    $($:$:3$Fejj!r   c                *   V P                   '       dX   \        VP                  P                  R 4      '       d2   \	        WP
                  4      pV'       d   VP                  4       pMRpMV P                  W4      pW@P                  VP
                  &   R# )r%   N)	use_natural_foreign_keysr+   remote_fieldr$   getattrr8   r%   r,   r   )r   r   r3   relatedr5   s   &&&  r   handle_fk_fieldSerializer.handle_fk_field6   sq    (((W$$m.
 .
 c::.G++-**36E$)ejj!r   c                  a  VP                   P                  P                  P                  '       d   S P                  '       d.   \        VP                   P                  R 4      '       d   R pR pM	V 3R lpR p\        VR/ 4      P                  VP                  V! W4      4      pV Uu. uF
  qc! V4      NK  	  upS P                  VP                  &   R# R# u upi )r%   c                 "    V P                  4       # r   )r%   )r5   s   &r   	m2m_value.Serializer.handle_m2m_field.<locals>.m2m_valueI   s     ,,..r   c                 |    \        WP                  4      p\        VR R4      '       d   RMRpVP                  V4      # )prefetch_cache_nameN  )r>   r8   iterator)r   r3   attr
chunk_sizes   &&  r   queryset_iterator6Serializer.handle_m2m_field.<locals>.queryset_iteratorL   s;    "3

3D '.CT J JPT   ==44r   c                 N   < SP                  W P                  P                  4      # r   )r,   r)   r&   )r5   r   s   &r   rD   rE   U   s    11%HHr   c                     \        WP                  4      P                  R 4      P                  R4      pVP                  '       d   RMR pVP                  VR7      # )Nr&   rH   )rK   )r>   r8   select_relatedonly_prefetch_related_lookupsrI   )r   r3   	query_setrK   s   &&  r   rL   rM   X   sN     'ZZ 8 G G M R RSW XI)2)L)L)LRVJ$---DDr   _prefetched_objects_cacheN)r=   throughr)   auto_createdr<   r+   r$   r>   getr8   r   )r   r   r3   rD   rL   m2m_iterr?   s   f&&    r   handle_m2m_fieldSerializer.handle_m2m_fieldC   s    %%++888,,,""((-2 2/5IE
 s$?DHH

!#-H LT(T87);8(TDMM%**%; 9: )Us   +Cc                    V P                   # r   )r   r   s   &r   getvalueSerializer.getvaluec   s    ||r   r   N)__name__
__module____qualname____firstlineno____doc__internal_use_onlyr   r   r   r!   r    r,   r9   r@   rY   r\   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      sM      QG*U@ r   r	   c                   p   a a ] tR t^gt oRtR]RR/V 3R lltR tR tR t	R	 t
R
 t]R 4       tRtVtV ;t# )Deserializerz
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
usingignorenonexistentFc                  < \         SV `  ! V3/ VB  VP                  R R4      V n        W n        W0n        / V n        RV n        R# )handle_forward_referencesFN)super__init__poprl   ri   rj   field_names_cache	_iterator)r   object_listri   rj   options	__class__s   &&$$,r   rn   Deserializer.__init__o   sF     	00)05PRW)X&
!2!#r   c              #  j   "   V P                    F  pV P                  V4       R j  xL
  K  	  R #  L
5ir   )stream_handle_objectr   s   & r   __iter__Deserializer.__iter__y   s*     ;;C**3/// /s   $313c                h    V P                   f   \        V 4      V n         \        V P                   4      # r   )rq   iternextr   s   &r   __next__Deserializer.__next__}   s&    >>!!$ZDNDNN##r   c           	   #    "   / p/ p/ p V P                  VR ,          4      pRT9   dV    TP                  P
                  P                  TP                  R4      4      Y%P                  P
                  P                  &   YPP                  9  dA   TP                  P                  4        Uu0 uF  qwP                  kK  	  upT P                  T&   T P                  T,          pTR,          P                  4        EFM  w  rT P                  '       d	   Y9  d   K   TP                  P                  T	4      pTP                   '       dh   \#        TP                   \$        P&                  4      '       d>    T P)                  Y4      pT\        P*                  8X  d   YT&   K  YTP                  &   K  TP                   '       dj   \#        TP                   \$        P0                  4      '       d@    T P3                  Y4      pT\        P*                  8X  d   YT&   EK  YTP                  &   EK/   TP                  T
4      Y+P                  &   EKP  	  \        P4                  ! YRT P6                  4      p\        P8                  ! YT4      x  R#   \        P                   d    T P                  '       d    R# h i ; i  \         d=   p\        P                  P                  YaR ,          TP                  R4      R4      hRp?ii ; iu upi   \        P,                   dR   p\        P                  P                  TP.                  TR ,          TP                  R4      TP
                  4      hRp?ii ; i  \         d=   p\        P                  P                  YaR ,          TP                  R4      T
4      hRp?ii ; i  \         d=   p\        P                  P                  YaR ,          TP                  R4      T
4      hRp?ii ; i5i)r$   Nr&   r'   )_get_model_from_noder   DeserializationErrorrj   r)   r&   	to_pythonrW   attname	ExceptionWithDatarp   
get_fieldsr8   items	get_fieldr=   r0   r   ManyToManyRel_handle_m2m_field_nodeDEFER_FIELDM2MDeserializationErrororiginal_excManyToOneRel_handle_fk_field_nodebuild_instanceri   DeserializedObject)r   r   r-   m2m_datadeferred_fieldsModeler4   field_names
field_namefield_valuer3   valuesr5   model_instances   &&             r   rx   Deserializer._handle_object   s=    	--c'l;E
 3;/4{{~~/G/GPT/V[[^^++, ...=B[[=S=S=U,V=UVV=U,VD""5),,U3 (+8}':':'<#J%%%**GKK))*5E !!!j""F$8$8' '	!88LF!1!111<./5, ###
""F$7$7) )	 66uJE 0 001<..3U]]+',{'CD$Q (=\ ,,U$**E%%nPPA (( 	%%%	  //887|SWWT]D  -W* 33 33<<GcggdmQTT  ! 33<<w<  ! 33<<w< s   PJ PAJ5 >,P*K?>BP*P0*LPL*P>*P)*M-PM-$P(N7AP&J2-P0J22P5K< 7K77K<<PM*AM%%M**P-N487N//N44P7O>7O99O>>Pc                Z    \         P                  ! WV P                  V P                  4      # r   )r   deserialize_m2m_valuesri   rl   r   r3   r   s   &&&r   r   #Deserializer._handle_m2m_field_node   s&    **

D,J,J
 	
r   c                Z    \         P                  ! WV P                  V P                  4      # r   )r   deserialize_fk_valueri   rl   r   s   &&&r   r   "Deserializer._handle_fk_field_node   s&    ((

D,J,J
 	
r   c                     \         P                  ! V 4      #   \        \        3 d    \        P
                  ! RT  24      hi ; i)z6Look up a model from an "app_label.model_name" string.zInvalid model identifier: )r   	get_modelLookupError	TypeErrorr   r   )model_identifiers   &r   r   !Deserializer._get_model_from_node   sJ    	>>"233Y' 	++,-=,>? 	s	    +A)rq   rp   rl   rj   ri   )r^   r_   r`   ra   rb   r   rn   ry   r~   rx   r   r   staticmethodr   rd   re   __classcell__)rt   rf   s   @@r   rh   rh   g   sT     $4HM0$
HQT



   r   rh   N)rb   django.appsr   django.core.serializersr   	django.dbr   r   django.db.modelsr   django.utils.encodingr   r	   rh   r   r   r   <module>r      sB     ( . 0 3V Vrw4$$ wr   