+
    Vjdd                      a  0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIHtH	t	H
t
HtHt ^ RIHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtHt ^ RIHt ^ RI H!t!H"t" ^ RI#H$t$ ^ RI%H&t&H't' ^ RI(H)t) ^ RI*H+t+ ^ RI,H-t- ^ RI.H/t/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6H7t7H8t8H9t9 / t:R];R&   / t<R];R&   R R lt=R R lt>R R lt?R  R! lt@R" R# ltAR$ R% ltBR& R' ltCR( R) ltDR* R+ ltE]
! R,]R-R.7      tF ! R/ R0]&]F,          4      tG ! R1 R2]'4      tH ! R3 R4]H4      tI ! R5 R6]H4      tJ ! R7 R8]I4      tK]R9 R: l4       tL]RCR; R< ll4       tLRDR= R> lltL ! R? R@]P                  ]F,          4      tN ! RA RB]N]F,          4      tOR# )Ezv
The idea of MultilingualManager is taken from
django-linguo by Zach Mathew

https://github.com/zmathew/django-linguo
)annotationsN)reduce)AnyLiteralTypeVarcastoverload)	ContainerIteratorSequenceIterable)get_model_from_relation)FieldDoesNotExist)models)CursorWrapper)FieldModelF)Col)Concat
ConcatPair)Lookup)QuerySetValuesIterable)create_namedtuple_class)Node)_django_version)SelfAutoPopulate)TranslationField)auto_populate_mode)auto_populatebuild_localized_fieldnameget_languageresolution_orderz$dict[tuple[type[Model], str], Field]
_C2F_CACHEz)dict[type[Model], dict[str, type[Model]]]_F2TM_CACHEc                    V ^8  d   QhRRRR/# )   modeltype[Model]returnzlist[str] | None )formats   "M/var/www/idalgo/venv/lib/python3.14/site-packages/modeltranslation/manager.py__annotate__r/   *   s      [ =M     c                n    ^ RI HpHp  VP                  V 4      P	                  4       #   T d     R# i ; i)    )NotRegistered
translatorN)modeltranslation.translatorr3   r4   get_options_for_modelget_field_names)r)   r3   r4   s   &  r.   !get_translatable_fields_for_modelr8   *   s6    E//6FFHH s   ) 44c               $    V ^8  d   QhRRRRRR/# r(   r)   r*   
lookup_keystrr+   r,   )r-   s   "r.   r/   r/   3   s!      k s s r0   c                t    VP                  R ^4      pV^ ,          p\        V 4      pVe-   V^ ,          V9   d   \        V^ ,          \        4       4      V^ &   \	        V4      ^8  d/   \        V 4      pW59   d   WS,          p\        Wb^,          4      V^&   R P                  V4      #   \         d    Tu # i ; i)__)	splitr8   r"   r#   len!get_fields_to_translatable_modelsrewrite_lookup_keyjoinAttributeError)r)   r;   piecesoriginal_keytranslatable_fieldsfields_to_trans_models
transmodels   &&     r.   rB   rB   3   s    !!$*ay?F* ay//5fQiPq	v;?%Fu%M"53A
.z!9Eq	yy   s   B$B' 'B76B7c               $    V ^8  d   QhRRRRRR/# )r(   r)   r*   fieldsSequence[str]r+   ztuple[set[str], set[str]]r,   )r-   s   "r.   r/   r/   L   s"      ;  B[ r0   c                  a \        V4      p\        4       p^ RIHp VP                  V 4      pVP                  P                  4        Ft  w  opSV9   g   K  \        \        4       \        V S4      P                  4      pVP                  V3R lV 4       4      pVP                  S4       VP                  S4       Kv  	  W#3# )z
If translated field is encountered, add also all its fallback fields.
Returns tuple: (set_of_new_fields_to_use, set_of_translated_field_names)
r4   c              3  <   <"   T F  p\        SV4      x  K  	  R # 5iN)r"   ).0langkeys   & r.   	<genexpr>"append_fallback.<locals>.<genexpr>Y   s     )a[`SW*CC*N*N[`s   )setr5   r4   r6   
all_fieldsitemsr$   r#   getattrfallback_languagesunionremoveadd)	r)   rK   
fields_settransr4   opts_langsrS   s	   &&      @r.   append_fallbackrc   L   s    
 VJeE6++E2D//'')Q*$\^WUC5H5[5[\E#)))a[`)aaJc"IIcN * r0   c               $    V ^8  d   QhRRRRRR/# )r(   r)   r*   rK   zIterable[str]r+   set[str]r,   )r-   s   "r.   r/   r/   _   s!     	 	[ 	- 	H 	r0   c                    \        V4      p^ RIHp VP                  V 4      pVP                  P                  4        F%  w  rVWR9   g   K  VP                  R V 4       4      pK'  	  V# )zHIf translated field is encountered, add also all its translation fields.rN   c              3  8   "   T F  qP                   x  K  	  R # 5irP   )name)rQ   fs   & r.   rT   $append_translated.<locals>.<genexpr>g   s     )E*Q&&*s   )rV   r5   r4   r6   rW   rX   r[   )r)   rK   r^   r4   r`   rS   
translateds   &&     r.   append_translatedrl   _   s[    VJ6++E2D??002#)))E*)EEJ 3 r0   c               $    V ^8  d   QhRRRRRR/# )r(   r)   r*   r;   r<   r+   re   r,   )r-   s   "r.   r/   r/   k   s!      [ c h r0   c                   VP                  R^4      p\        W^ ,          34      p\        V4      ^8  d   \        V 4      pV^ ,          V9   dX   WB^ ,          ,          p\	        WR^,          4      p\
        P                  ! W64       Uu0 uF  pRP                  V4      kK  	  ppV# V Uu0 uF  pRP                  W^,          4      kK  	  ppV# u upi u upi )zTTransform spanned__lookup__key into all possible translation versions, on all levelsr>   z{}__{})	r?   rl   r@   rA   append_lookup_key	itertoolsproductrC   r-   )	r)   r;   rE   rK   rH   rI   restprri   s	   &&       r.   ro   ro   k   s    dA&Fuayl3F
6{Q!B5!I!9../q	:J$Z;D.7.?.?.MN.Mdiim.MFN M >DDVhooa3VFDM ODs   C*!Cc               $    V ^8  d   QhRRRRRR/# )r(   r)   r*   rK   rL   r+   re   r,   )r-   s   "r.   r/   r/   }   s!     	0 	0k 	0= 	0X 	0r0   c                    . pV F   p \        W4      pVP                  V4       K"  	  \        \        P
                  V\	        4       4      #   \         d    T3p LHi ; irP   )ro   rD   appendr   rV   r[   )r)   rK   
new_fieldsfield	new_fields   &&   r.   append_lookup_keysrz   }   s_    J	!(9%(GI 	)$  #))Z//	  	!I	!s   AAAc               $    V ^8  d   QhRRRRRR/# r:   r,   )r-   s   "r.   r/   r/      s!      K S S r0   c                     VP                  R 4      '       d   R \        WR,          4      ,           # \        W4      #   \         d    Tu # i ; i)-:   NN)
startswithrB   rD   )r)   r;   s   &&r.   rewrite_order_lookup_keyr      sM      %%+Eb>BBB%e88 s   = = 
= AAc                    V ^8  d   QhRRRR/# )r(   r)   r*   r+   zdict[str, type[Model]]r,   )r-   s   "r.   r/   r/      s      [ =S r0   c                t   V \         9   d   \         V ,          # . pV P                  P                  4        Fb  pVP                  '       g   K  VP                  '       g   K+  \        V4      p\        V4      f   KE  VP                  VP                  V34       Kd  	  \        V4      \         V &   \         V ,          # rP   )
r&   _meta
get_fieldsis_relationrelated_modelr   r8   rv   rh   dict)r)   resultsri   r   s   &   r.   rA   rA      s    5!!-/G[[##%===Q___
 4A6M0?K67 & gKur0   c               $    V ^8  d   QhRRRRRR/# )r(   r)   r*   colr<   r+   r   r,   )r-   s   "r.   r/   r/      s!     7 7; 7S 7U 7r0   c                v    \        \        V P                  P                  V4      4      pVP                  V8X  d   V#  \        P                  W3R 4      pV'       d   V# V P                  P                   F"  pVP                  V8X  g   K  V\        W3&   Vu # 	  Q RV,          4       h  \
         d     Lxi ; i)NzNo field found for column %s)	r   r   r   	get_fieldcolumnr   r%   getrK   )r)   r   rx   s   && r.   get_field_by_colum_namer      s    UEKK11#67<<3L  NNE<.E##<<3',J|$L $ 703665  s   ;B* *B87B8_TT)bound	covariantc                  J  a  ] tR t^tR V 3R lltR R ltR tR R ltR V 3R	 lltRIR R llt	RJR R llt
R R ltR V 3R lltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! V 3R" lltR# R$ ltR% V 3R& lltR' V 3R( lltR) V 3R* lltR
]n        RKR+ V 3R, lllt]R- R. l4       tR/ V 3R0 lltR1 V 3R2 lltR3 V 3R4 lltR5 V 3R6 llt R7 V 3R8 llt!R9 V 3R: llt"R; V 3R< llt#R=R>R?R>/R@ V 3RA lllt$RB V 3RC llt%RD RE lt&RF V 3RG llt'RHt(V ;t)# )LMultilingualQuerySetc               $    V ^8  d   QhRRRRRR/# )r(   argsr   kwargsr+   Noner,   )r-   s   "r.   r/   !MultilingualQuerySet.__annotate__   s!      c S T r0   c                	H   < \         SV `  ! V/ VB  V P                  4        R # rP   )super__init__
_post_initselfr   r   	__class__s   &*,r.   r   MultilingualQuerySet.__init__   s    $)&)r0   c                   V ^8  d   QhRR/# r(   r+   r   r,   )r-   s   "r.   r/   r      s     
3 
3D 
3r0   c                	   R V n         RV n        V P                  '       d   V P                  P                  '       d   V P                  P
                  '       g   V P                  P                  P                  '       dk   . pV P                  P                  P                   F(  pVP                  \        V P                  V4      4       K*  	  V P                  P                  ! V!   R# R# R# R# R# )TN)_rewrite	_populater)   querydefault_orderingorder_byr   orderingrv   r   add_ordering)r   r   rS   s   &  r.   r   MultilingualQuerySet._post_init   s    :::$**555tzz?R?R?Rzz((( ::++44COO$<TZZ$MN 5

''2 ) @S5:r0   c                	h    \         V P                  P                  ^ ,          3V P                  4       3# )r2   )multilingual_queryset_factoryr   	__bases____getstate__r   s   &r.   
__reduce__MultilingualQuerySet.__reduce__   s*    ,t~~/G/G/J.LdN_N_Naaar0   c                   V ^8  d   QhRR/# )r(   r+   r   r,   )r-   s   "r.   r/   r      s       r0   c                	"    V P                  4       # rP   _MultilingualQuerySet__cloner   s   &r.   _cloneMultilingualQuerySet._clone   s    ||~r0   c                    V ^8  d   QhRRRR/# )r(   r   r   r+   r   r,   )r-   s   "r.   r/   r      s        r0   c                	  < VP                  R V P                  4       VP                  RV P                  4       \        V R4      '       d   VP                  RV P                  4       \        V R4      '       d   VP                  RV P
                  4       \        SV `  4       pVP                  P                  V4       V# )r   r   translation_fieldsoriginal_fields)

setdefaultr   r   hasattrr   r   r   r   __dict__update)r   r   clonedr   s   &, r.   __cloneMultilingualQuerySet.__clone   s     	*dmm4+t~~64-..2D4K4KL4*++/1E1EF!v&r0   Tc                    V ^8  d   QhRRRR/# )r(   modeboolr+   r   r,   )r-   s   "r.   r/   r      s     + +D +D +r0   c                	&    V P                  VR 7      # ))r   r   r   r   s   &&r.   rewriteMultilingualQuerySet.rewrite   s    ||T|**r0   c                    V ^8  d   QhRRRR/# )r(   r   r   r+   r   r,   )r-   s   "r.   r/   r      s     , ,\ ,d ,r0   c                &    V P                  VR7      # )zF
Overrides the translation fields population mode for this query set.
)r   r   r   s   &&r.   populateMultilingualQuerySet.populate   s     ||d|++r0   c                   V ^8  d   QhRR/# r   r,   )r-   s   "r.   r/   r      s     ' 'T 'r0   c                    V P                  V P                  P                  4       V P                  4        V P	                  4        R# )zt
Rewrite fields in already applied filters/ordering.
Useful when converting any QuerySet into MultilingualQuerySet.
N)_rewrite_wherer   where_rewrite_order_rewrite_select_relatedr   s   &r.   _rewrite_applied_operations0MultilingualQuerySet._rewrite_applied_operations   s4    
 	DJJ,,-$$&r0   c               $    V ^8  d   QhRRRRRR/# )r(   rK   r   r   r+   r   r,   )r-   s   "r.   r/   r      s!     ; ;c ;S ;T ;r0   c                	   < V P                   '       g   \        SV `  ! V/ VB # . pV F?  pVf   VP                  R 4       K  VP                  \	        V P
                  V4      4       KA  	  \        SV `  ! V/ VB # rP   )r   r   select_relatedrv   rB   r)   )r   rK   r   new_argsrS   r   s   &*,  r.   r   #MultilingualQuerySet.select_related   sr    }}}7)6<V<<
 &(C{% 24::s CD	 
 w%x:6::r0   c                    V ^8  d   QhRRRR/# )r(   r   r   r+   r   r,   )r-   s   "r.   r/   r     s     ' ' ' 'r0   c                   \        V\        4      '       d   \        V P                  VP                  P
                  4      pVP                  P
                  V8w  dN   V P                  P                  P                  V4      pVP                  VP                  J d   W1n        W1n        R# R# \        VR4      '       d   V P                  VP                  4       R# \        VR4      '       d   V P                  VP                  4       R# R# )z#Django >= 1.7 column name rewritingr   lhsN)
isinstancer   rB   r)   targetrh   r   r   sourcer   _rewrite_colr   r   )r   r   new_namery   s   &&  r.   r   !MultilingualQuerySet._rewrite_col  s    c3)$**cjjooFHzz(* JJ,,66x@	::+!*J&
	 +
 S%  cgg&S%  cgg& !r0   c                    V ^8  d   QhRRRR/# )r(   qzLookup | Noder+   r   r,   )r-   s   "r.   r/   r     s     + + +$ +r0   c                    \        V\        4      '       d   V P                  VP                  4       \        V\        4      '       d'   VP
                   F  pV P                  V4       K  	  R# R# )z(
Rewrite field names inside WHERE tree.
N)r   r   r   r   r   childrenr   )r   r   childs   && r.   r   #MultilingualQuerySet._rewrite_where  sQ     a  aee$a##E* $ r0   c                   V ^8  d   QhRR/# r   r,   )r-   s   "r.   r/   r     s     
 
 
r0   c                	    V P                   P                   Uu. uF  p\        V P                  V4      NK  	  upV P                   n        R # u upi rP   )r   r   r   r)   )r   
field_names   & r.   r   #MultilingualQuerySet._rewrite_order  sB     #jj11
1
 %TZZ<1


 
s   Ac                   V ^8  d   QhRR/# r   r,   )r-   s   "r.   r/   r   !  s     , , ,r0   c                	   \        V P                  P                  \        4      '       dZ   / pV P                  P                  P	                  4        F  w  r#W1\        V P                  V4      &   K  	  WP                  n        R # R # rP   )r   r   r   r   rX   r   r)   )r   newr   values   &   r.   r   ,MultilingualQuerySet._rewrite_select_related!  sb    djj//66C%)ZZ%>%>%D%D%F!
HM,TZZDE &G(+JJ%	 7r0   c                    V ^8  d   QhRRRR/# )r(   r   zNode | tuple[str, Any]r+   r   r,   )r-   s   "r.   r/   r   )  s      2 s r0   c                &   \        V\        4      '       d7   \        V4      ^8X  d'   \        V P                  V^ ,          4      V^,          3# \        V\
        4      '       d/   \        \        V P                  VP                  4      4      Vn	        V# )z"Rewrite field names inside Q call.)
r   tupler@   rB   r)   r   listmap
_rewrite_qr   r   r   s   &&r.   r   MultilingualQuerySet._rewrite_q)  sd    aCFaK%djj!A$71==ac$//1::>?AJr0   c                    V ^8  d   QhRRRR/# )r(   r   zmodels.F | Noder+   r,   )r-   s   "r.   r/   r   2  s      O  r0   c                   \        V\        P                  4      '       d(   \        V P                  VP
                  4      Vn        V# \        V\        4      '       d/   \        \        V P                  VP                  4      4      Vn
        \        VR4      '       d!   V P                  VP                  4      Vn        \        VR4      '       d!   V P                  VP                  4      Vn        V# )z$
Rewrite field names inside F call.
r   rhs)r   r   r   rB   r)   rh   r   r   r   
_rewrite_fr   r   r   r   r   s   &&r.   r   MultilingualQuerySet._rewrite_f2  s     a""'

AFF;AFHac$//1::>?AJ1eOOAEE*AE1eOOAEE*AEr0   c               $    V ^8  d   QhRRRRRR/# )r(   r   r   r   r+   ztuple[Any, Any]r,   )r-   s   "r.   r/   r   B  s!      s C O r0   c                	
   V P                   '       g   W3# \        \        V P                  V4      4      p\	        VP                  4       4       F0  w  r4\        V P                  V4      pW# V P                  V4      W%&   K2  	  W3# rP   )	r   r   r   r   r   rX   rB   r)   r   )r   r   r   rS   valnew_keys   &&&   r.   _rewrite_filter_or_exclude/MultilingualQuerySet._rewrite_filter_or_excludeB  sn    }}}<S$/0V\\^,HC(S9G"ooc2FO - |r0   c               (    V ^8  d   QhRRRRRRRR/# )r(   negater   r   r   r   r+   r   r,   )r-   s   "r.   r/   r   L  s.     @ @ @S @# @$ @r0   c                	J   < V P                  W#4      w  r#\        SV `	  WV4      # rP   )r  r   _filter_or_exclude)r   r	  r   r   r   s   &&&&r.   r  'MultilingualQuerySet._filter_or_excludeL  s'    66tDw)&??r0   c                   V ^8  d   QhRR/# )r(   r+   z	list[str]r,   )r-   s   "r.   r/   r   P  s     R Ri Rr0   c                	@   \        V P                  P                  R 4      '       d!   V P                  P                  P                  MV P                  P                  P                  pV Uu. uF'  p\        V\        4      '       d   K  VP                  NK)  	  up# u upi )concrete_fields)r   r)   r   r  rK   r   r   attname)r   r   ri   s   &  r.   _get_original_fields)MultilingualQuerySet._get_original_fieldsP  ss     tzz''):;; JJ,,!!(( 	
 $*Q6aA?O1P			6QQQs   +BBc                    V ^8  d   QhRRRR/# r(   field_namesr   r+   r   r,   )r-   s   "r.   r/   r   X       
+ 
+S 
+T 
+r0   c                   < V P                   '       g   \        SV `  ! V!  # . pV F(  pVP                  \	        V P
                  V4      4       K*  	  \        SV `  ! V!  # )zm
Change translatable field names in an ``order_by`` argument
to translation fields for the current language.
)r   r   r   rv   r   r)   r   r  r   rS   r   s   &*  r.   r   MultilingualQuerySet.order_byX  U    
 }}}7#[11COO4TZZEF w**r0   c                    V ^8  d   QhRRRR/# r  r,   )r-   s   "r.   r/   r   d  r  r0   c                   < V P                   '       g   \        SV `  ! V!  # . pV F(  pVP                  \	        V P
                  V4      4       K*  	  \        SV `  ! V!  # )zm
Change translatable field names in an ``distinct`` argument
to translation fields for the current language.
)r   r   distinctrv   r   r)   r  s   &*  r.   r  MultilingualQuerySet.distinctd  r  r0   c                    V ^8  d   QhRRRR/# )r(   r   r   r+   intr,   )r-   s   "r.   r/   r   p  s     ( (s (s (r0   c                	  < V P                   '       g   \        SV `  ! R/ VB # \        VP	                  4       4       F0  w  r#\        V P                  V4      pW V P                  V4      W&   K2  	  \        SV `  ! R/ VB # )Nr,   )r   r   r   r   rX   rB   r)   r   )r   r   rS   r  r  r   s   &,   r.   r   MultilingualQuerySet.updatep  sn    }}}7>+F++V\\^,HC(S9G"ooc2FO - w~'''r0   c                    V ^8  d   QhRRRR/# )r(   valuesz+list[tuple[Field, type[Model] | None, Any]]r+   r   r,   )r-   s   "r.   r/   r   {  s     9 9A9	9r0   c                  < V UUu0 uF  vr4VP                   kK  	  ppp. pV Ft  w  r7p\        V P                  VP                   4      p	W9  g   K.  \        \        V P                  P
                  P                  V	4      4      p
VP                  WV34       Kv  	  W,          p\        R8  d   \        SV `)  V4      # \        SV `)  W4      # u uppi )z
This method is called in .save() method to update an existing record.
Here we force to update translation fields as well if the original
field only is passed in `save()` in argument `update_fields`.
)   r2   )rh   rB   r)   r   r   r   r   rv   r   r   _update)r   r$  returning_fieldsrx   ra   field_names_to_updatetranslation_valuesr)   r   translation_field_nametranslatable_fieldr   s   &&&        r.   r'  MultilingualQuerySet._update{  s     >D DV	V DJL#)E%%7

EJJ%O"%B%)%1A1A1K1KLb1c%d""))+=e*LM	 $* 	$V#7?6**wv88 !Es   Cc                   V ^8  d   QhRR/# )r(   r+   r   r,   )r-   s   "r.   r/   r     s       r0   c                	J    V P                   f   \        4       # V P                   # rP   )r   r    r   s   &r.   _populate_mode#MultilingualQuerySet._populate_mode  s!     >>!%''~~r0   c                    V ^8  d   QhRRRR/# )r(   r   r   r+   r   r,   )r-   s   "r.   r/   r     s     , ,s ,r ,r0   c                   < \        V P                  4      ;_uu_ 4        \        SV `  ! R/ VB uuRRR4       #   + '       g   i     R# ; i)@
Allows to override population mode with a ``populate`` method.
Nr,   )r!   r0  r   create)r   r   r   s   &,r.   r5  MultilingualQuerySet.create  s4     4..//7>+F+ 0///	   :A	c               $    V ^8  d   QhRRRRRR/# )r(   r   r   r   r+   ztuple[_T, bool]r,   )r-   s   "r.   r/   r     s!     : :3 :# :/ :r0   c                   < \        V P                  4      ;_uu_ 4        \        SV `  ! V/ VB uuRRR4       #   + '       g   i     R# ; i)r4  N)r!   r0  r   get_or_creater   s   &*,r.   r:  "MultilingualQuerySet.get_or_create  s7     4..//7($9&9 0///r7  c                    V ^8  d   QhRRRR/# r(   rK   r   r+   r   r,   )r-   s   "r.   r/   r     s     & &S &T &r0   c                	L   < \        V P                  V4      p\        SV `  ! V!  # rP   )rz   r)   r   deferr   rK   r   s   &*r.   r?  MultilingualQuerySet.defer  s"    #DJJ7w}f%%r0   c                    V ^8  d   QhRRRR/# r=  r,   )r-   s   "r.   r/   r     s     % %C %D %r0   c                	L   < \        V P                  V4      p\        SV `  ! V!  # rP   )rz   r)   r   onlyr@  s   &*r.   rD  MultilingualQuerySet.only  s"    #DJJ7w|V$$r0   c               $    V ^8  d   QhRRRRRR/# r(   rK   r<   expressionsr   r+   r   r,   )r-   s   "r.   r/   r     s!     6 6# 6c 6d 6r0   c                	$   < \         SV `  ! V/ VB # rP   )r   r$  )r   rK   rH  r   s   &*,r.   
raw_valuesMultilingualQuerySet.raw_values  s    w~v555r0   c               $    V ^8  d   QhRRRRRR/# )r(   originalr<   r   r   r+   r   r,   )r-   s   "r.   r/   r     s!     
 
 
 
 
r0   c                	  < VP                  R R4      pVP                  RR4      '       g   \        SV `  ! V/ VB # \        V P                  V4      w  rEV'       d.   \        V P                  P                  P                  4       4      M	\        4       pVP                  V4       \        SV `  ! \        V4      / VB p\        V4      Vn        WWn        V# )selects_allFprepare)popr   _valuesrc   r)   rV   r   annotation_selectkeysr   r   r   r   r   )	r   rM  r   rO  rw   r   annotation_keyscloner   s	   &*,     r.   rR  MultilingualQuerySet._values  s    jj6zz)U++7?H777)8X)N&
FQ#djj::??ABWZW\/*j!1<V< %h#5 r0   c               $    V ^8  d   QhRRRRRR/# rG  r,   )r-   s   "r.   r/   r     s!     
 
c 
# 
$ 
r0   c                	   < V P                   '       g   \        SV `  ! V/ VB # V'       * pV'       g   V P                  4       pV\	        V4      ,          pV P
                  ! VR RRV/VB p\        Vn        V# )rP  TrO  )r   r   r$  r  r   rR  FallbackValuesIterable_iterable_class)r   rK   rH  rO  rV  r   s   &*,  r.   r$  MultilingualQuerySet.values  sq    }}}7>69[99 j..0F%$$f[d[[{[ 6r0   flatFnamedc               (    V ^8  d   QhRRRRRRRR/# )r(   rK   r<   r]  r   r^  r+   r   r,   )r-   s   "r.   r/   r     s)     ' '3 'd '4 'TX 'r0   c               	.  < V P                   '       g   \        SV `  ! VR VRV/ # V'       d   V'       d   \        R4      hV'       d   \	        V4      ^8  d   \        R4      hV'       * pV'       g   V P                  4       pV Uu0 uF  p\        VR4      '       d   K  VkK  	  pp. p/ p^p	V F  p
\        V
R4      '       dl   \        V
RV
P                  P                  P                  4       4      p V\        V	4      ,           pV	^,          p	W9  g   K$   YT&   TP                  T4       K  VP                  V
4       K  	  V P                  ! VRRRV/VB pV'       d   \        Vn        V# V'       d   \        Vn        V# \         Vn        V# u upi )	r]  r^  z*'flat' and 'named' can't be used together.zH'flat' is not valid when values_list is called with more than one field.resolve_expressiondefault_aliasTrP  rO  )r   r   values_list	TypeErrorr@   r  r   rY   r   __name__lowerr<   rv   rR  FallbackNamedValuesListIterableFallbackFlatValuesListIterableFallbackValuesListIterabler[  )r   r]  r^  rK   rO  ri   r  _fieldsrH  counterrx   field_id_prefixfield_idrV  r   s   &$$*          r.   rc   MultilingualQuerySet.values_list  s   }}}7&GTGGGEHIICK!OZ  !j..0F"(Q&Q;O0Pqq&QEu233")%%//BZBZB`B`Bb"c.W=HqLG2(-H%x(u%  g\t\\P[\  , 	   0 	  , 	 3 Rs   F Fc               (    V ^8  d   QhRRRRRRRR/# )r(   r   r<   r   r   r   r+   r   r,   )r-   s   "r.   r/   r      s(     7 7 7C 73 74 7r0   c                	   < V P                   '       g   \        SV `  ! V.VO5/ VB # \        V P                  V4      p\        SV `  ! V.VO5/ VB # rP   )r   r   datesrB   r)   )r   r   r   r   r  r   s   &&*, r.   rq  MultilingualQuerySet.dates   sN    }}}7==d=f==$TZZ<w}W6t6v66r0   c                   V ^8  d   QhRR/# )r(   concatzConcat | ConcatPairr,   )r-   s   "r.   r/   r     s     	 	&9 	r0   c                	   . pVP                    Fh  p\        V\        \        34      '       d   V P	                  V4      p\        V\
        4      '       d   V P                  V4      pVP                  V4       Kj  	  VP                  V4       V# rP   )	source_expressionsr   r   r   _rewrite_concatr   r   rv   set_source_expressions)r   rt  new_source_expressionsexps   &&  r.   rw  $MultilingualQuerySet._rewrite_concat  sy    !#,,C#
344**3/#q!!ooc*"))#. - 	%%&<=r0   c               $    V ^8  d   QhRRRRRR/# )r(   r   r   r   r+   r   r,   )r-   s   "r.   r/   r     s!     1 1c 1S 1T 1r0   c                	h  < V P                   '       g   \        SV `  ! V/ VB # \        VP	                  4       4       Fc  w  r4\        V\        P                  4      '       d   V P                  V4      W#&   \        V\        4      '       g   KP  V P                  V4      W#&   Ke  	  \        SV `  ! V/ VB # rP   )r   r   annotater   rX   r   r   r   r   r   rw  )r   r   r   rS   r  r   s   &*,  r.   r~  MultilingualQuerySet.annotate  s    }}}7#T4V44V\\^,HC#vxx(("ooc2#v&&"2237	 -
 w000r0   )r   r   T)allrP   )*re  
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r  r   alters_datar'  propertyr0  r5  r:  r?  rD  rJ  rR  r$  rc  rq  rw  r~  __static_attributes____classcell__r   s   @r.   r   r      s3    
3b +,'; ; '+
, @ @R
+ 
+
+ 
+( ( F9 98  , ,: :& &
% %
6 6
 

 
'U '% ' 'T7 7	1 1r0   r   c                  N   a  ] tR tRt$ R]R&    ! R R4      tR V 3R lltRtV ;t# )	rZ  i  zMultilingualQuerySet[Model]querysetc                      ] tR tRtRtR# )FallbackValuesIterable.Xi  r,   Nre  r  r  r  r  r,   r0   r.   Xr    s    r0   r  c                   V ^8  d   QhRR/# )r(   r+   zIterator[dict[str, Any]]r,   )r-   s   "r.   r/   #FallbackValuesIterable.__annotate__#  s     . .2 .r0   c              #  	  <a"   V P                  4       pV P                  P                  oS\        ;QJ d5    . V3R  lV P                  P                  P
                   4       F  NK  	  5M.! V3R  lV P                  P                  P
                   4       4      ,          o\        SV `  4        F  pVP                  P                  V4       V P                  P                   F5  p\        V P                  P                  V4      P                  VR4      W#&   K7  	  S Uu/ uF  qDW$,          bK  	  upx  K  	  R# u upi 5i)c              3  8   <"   T F  qS9  g   K  Vx  K  	  R # 5irP   r,   )rQ   ri   rK   s   & r.   rT   2FallbackValuesIterable.__iter__.<locals>.<genexpr>'  s     \#HaU[O#Hs   
N)r  r  r   r   r   rS  r   __iter__r   r   r   rY   r)   __get__)r   instancerowrS   krK   r   s   &    @r.   r  FallbackValuesIterable.__iter__#  s     668..%%\4==#6#6#H#H\%%\4==#6#6#H#H\\\7#%C$$S)}}77"4==#6#6<DDXtT 8 '--fcf9f-- &
 .s   DE D;0E r,   )	re  r  r  r  __annotations__r  r  r  r  r  s   @r.   rZ  rZ    s    )) . .r0   rZ  c                  .   a  ] tR tRtR V 3R lltRtV ;t# )ri  i1  c                   V ^8  d   QhRR/# r(   r+   zIterator[tuple[Any, ...]]r,   )r-   s   "r.   r/   'FallbackValuesListIterable.__annotate__2  s     & &3 &r0   c              #  	p   <"   \         SV `  4        F  p\        VP                  4       4      x  K   	  R # 5irP   )r   r  r   r$  r   r  r   s   & r.   r  #FallbackValuesListIterable.__iter__2  s)     7#%C

%% &s   36r,   re  r  r  r  r  r  r  r  s   @r.   ri  ri  1  s    & &r0   ri  c                  .   a  ] tR tRtR V 3R lltRtV ;t# )rg  i7  c                   V ^8  d   QhRR/# r  r,   )r-   s   "r.   r/   ,FallbackNamedValuesListIterable.__annotate__8  s     + +3 +r0   c              #  	   <"   \         SV `  4        FE  pVP                  4       VP                  4       r2\	        V!  p\
        P                  pV! WC4      x  KG  	  R # 5irP   )r   r  rT  r$  r   r   __new__)r   r  namesr$  tuple_classr   r   s   &     r.   r  (FallbackNamedValuesListIterable.__iter__8  sI     7#%CHHJ

6159K--Ck**	 &s   AAr,   r  r  s   @r.   rg  rg  7  s    + +r0   rg  c                  .   a  ] tR tRtR V 3R lltRtV ;t# )rh  i@  c                   V ^8  d   QhRR/# )r(   r+   zIterator[Any]r,   )r-   s   "r.   r/   +FallbackFlatValuesListIterable.__annotate__A  s      - r0   c              #  	P   <"   \         SV `  4        F  pV^ ,          x  K  	  R# 5i)r2   N)r   r  r  s   & r.   r  'FallbackFlatValuesListIterable.__iter__A  s!     7#%Ca&L &s   #&r,   r  r  s   @r.   rh  rh  @  s     r0   rh  c               $    V ^8  d   QhRRRRRR/# )r(   old_cls	type[Any]instantiatezLiteral[False]r+   ztype[MultilingualQuerySet]r,   )r-   s   "r.   r/   r/   G  s$     % %%%3%%r0   c                    R # rP   r,   r  r  s   &&r.   r   r   F  s     "%r0   c               $    V ^8  d   QhRRRRRR/# )r(   r  r  r  zLiteral[True]r+   r   r,   )r-   s   "r.   r/   r/   M  s$      %2r0   c                    R # rP   r,   r  s   &&r.   r   r   L  s     r0   c               $    V ^8  d   QhRRRRRR/# )r(   r  r  r  r   r+   z1type[MultilingualQuerySet] | MultilingualQuerySetr,   )r-   s   "r.   r/   r/   R  s$     3 33%)363r0   c                    V \         P                  P                  8X  d   \        pM( ! R  RV \        4      pRV P                  ,          Vn        V'       d   V! 4       # T# )c                      ] tR tRtRtR# )/multilingual_queryset_factory.<locals>.NewClassiY  r,   Nr  r,   r0   r.   NewClassr  Y  s    r0   r  zMultilingual%s)r   r   r   r   re  )r  r  r  s   && r.   r   r   R  sN     &,,''''	w 4 	 -w/?/??$8:2(2r0   c                  >   a  ] tR tRtRtR V 3R lltR R ltRtV ;t# )MultilingualQuerysetManageri`  z{
This class gets hooked in MRO just before plain Manager, so that every call to
get_queryset returns MultilingualQuerySet.
c                   V ^8  d   QhRR/# r(   r+   MultilingualQuerySet[_T]r,   )r-   s   "r.   r/   (MultilingualQuerysetManager.__annotate__f  s     ( (6 (r0   c                	B   < \         SV `  4       pV P                  V4      # rP   )r   get_queryset_patch_querysetr   qsr   s   & r.   r  (MultilingualQuerysetManager.get_querysetf  s!    W!###B''r0   c                    V ^8  d   QhRRRR/# )r(   r  zQuerySet[_T]r+   r  r,   )r-   s   "r.   r/   r  j  s      , 3K r0   c                	    \        VP                  R R7      Vn        \        \        \        ,          V4      pVP                  4        VP                  4        V# )F)r  )r   r   r   r   r   r   r   )r   r  s   &&r.   r  +MultilingualQuerysetManager._patch_querysetj  s@    4R\\uU&r*B/

&&(	r0   r,   )	re  r  r  r  __doc__r  r  r  r  r  s   @r.   r  r  `  s    
( ( r0   r  c                  R   a  ] tR tRtR R ltR R ltR R ltR V 3R	 lltR
tV ;t	# )MultilingualManagerir  c                    V ^8  d   QhRRRR/# r(   r   r   r   r,   )r-   s   "r.   r/    MultilingualManager.__annotate__s  s     < <S <C <r0   c                	B    V P                  4       P                  ! V/ VB # rP   )r  r   r   r   r   s   &*,r.   r   MultilingualManager.rewrites  s!      "**D;F;;r0   c                    V ^8  d   QhRRRR/# r  r,   )r-   s   "r.   r/   r  v  s     = =c =S =r0   c                	B    V P                  4       P                  ! V/ VB # rP   )r  r   r  s   &*,r.   r   MultilingualManager.populatev  s!      "++T<V<<r0   c                    V ^8  d   QhRRRR/# r  r,   )r-   s   "r.   r/   r  y  s     ? ? ?s ?r0   c                	B    V P                  4       P                  ! V/ VB # rP   )r  rJ  r  s   &*,r.   rJ  MultilingualManager.raw_valuesy  s!      "--t>v>>r0   c                   V ^8  d   QhRR/# r  r,   )r-   s   "r.   r/   r  |  s     
( 
(6 
(r0   c                r   < \         SV `  4       p\        V\        4      '       d   V# V P	                  V4      # )z
This method is repeated because some managers that don't use super() or alter queryset class
may return queryset that is not subclass of MultilingualQuerySet.
)r   r  r   r   r  r  s   & r.   r   MultilingualManager.get_queryset|  s8    
 W!#b.// I##B''r0   r,   )
re  r  r  r  r   r   rJ  r  r  r  r  s   @r.   r  r  r  s    <=?
( 
(r0   r  ).r  )P__conditional_annotations__r  
__future__r   rp   	functoolsr   typingr   r   r   r   r   collections.abcr	   r
   r   r   django.contrib.admin.utilsr   django.core.exceptionsr   	django.dbr   django.db.backends.utilsr   django.db.modelsr   r   r   django.db.models.expressionsr   django.db.models.functionsr   r   django.db.models.lookupsr   django.db.models.queryr   r   django.db.models.utilsr   django.utils.treer   modeltranslation._compatr   modeltranslation._typingr   r   modeltranslation.fieldsr   modeltranslation.thread_contextr    modeltranslation.utilsr!   r"   r#   r$   r%   r  r&   r8   rB   rc   rl   ro   rz   r   rA   r   r   r   rZ  ri  rg  rh  r   Managerr  r  )r  s   @r.   <module>r     sK   #   8 8 C C > 4  2 , , , 9 + ; : " 4 7 4 >  46
0 59;6 ;2&	$	0$7& T$/^18B< ^1B.^ .*&!7 &+&< +%?  
% 
%
 
 

3&.."4 $(5b9 (r0   