+
    Tj4                        R t ^ RIHtHt ^ RIHt ^ RIHtHtH	t	H
t
HtHtHt ^ RIHtHt ^ RIHt ^ RIHtHt . R"O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 R]]4      t ! R R]	4      t  ! R R]4      t! ! R R]]4      t" ! R  R]]4      t#R!# )#z>
Classes to represent the definitions of aggregate functions.
)
FieldErrorFullResultSet)NotSupportedError)CaseColPairsFuncOrderByListStarValueWhen)IntegerField	TextField)Coalesce)FixDurationInputMixinNumericOutputFieldMixin	AggregateAnyValueAvgCountMaxMinStdDev	StringAggSumVariancec                   P   a a ] tR t^%t o^tRtV 3R lt]R 4       tR t	Rt
VtV ;t# )AggregateFilterz FILTER (WHERE %(expressions)s)c                   < VP                   P                  '       g   \        R 4      h \        SV `  ! W3/ VB #   \
         d    Ru # i ; i)zDAggregate filter clauses are not supported on this database backend.)  )features supports_aggregate_filter_clauser   superas_sqlr   selfcompiler
connectionextra_context	__class__s   &&&,P/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/models/aggregates.pyr#   AggregateFilter.as_sql)   sR    ""CCC#V 	7>(H-HH 	M	s   ; A
Ac                (    V P                   ^ ,          # )    )source_expressionsr%   s   &r*   	conditionAggregateFilter.condition3   s    &&q))    c                Z    V P                   P                  R  V P                   4       4      # )c              3   8   "   T F  p\        V4      x  K  	  R # 5iN)str).0args   & r*   	<genexpr>*AggregateFilter.__str__.<locals>.<genexpr>8   s     #P8OCHH8Os   )
arg_joinerjoinr.   r/   s   &r*   __str__AggregateFilter.__str__7   s#    ###P8O8O#PPPr2   r   )__name__
__module____qualname____firstlineno__aritytemplater#   propertyr0   r=   __static_attributes____classdictcell____classcell__r)   __classdict__s   @@r*   r   r   %   s4     E0H * *Q Qr2   r   c                   6   a a ] tR t^;t oRtV 3R ltRtVtV ;t# )AggregateOrderByz ORDER BY %(expressions)sc                t   < VP                   P                  '       g   \        R 4      h\        SV `  ! W3/ VB # )zIThis database backend does not support specifying an order on aggregates.)r    "supports_aggregate_order_by_clauser   r"   r#   r$   s   &&&,r*   r#   AggregateOrderBy.as_sql>   s=    ""EEE# 
 w~hDmDDr2   r   )	r?   r@   rA   rB   rD   r#   rF   rG   rH   rI   s   @@r*   rL   rL   ;   s     *HE Er2   rL   c                      a a ] tR t^Ht oRtRtRtRtRtRt	Rt
RRRRRRRR/V 3R	 lltV 3R
 ltV 3R ltV 3R ltRV 3R llt]R 4       tR tV 3R ltV 3R ltRtVtV ;t# )r   ?%(function)s(%(distinct)s%(expressions)s%(order_by)s)%(filter)sTNFdistinctfilterdefaultorder_byc               8  < V'       d9   V P                   '       g'   \        R V P                  P                  ,          4      hV'       d9   V P                  '       g'   \        RV P                  P                  ,          4      hVe1   V P
                  e#   \        V P                  P                   R24      hWn        Vf   RM
\        V4      V n        W0n	        \        P                  V P                  P                   R2V4      V n        \        SV `8  ! V/ VB  R# )z%s does not allow distinct.z%s does not allow order_by.Nz does not allow default.z	.order_by)allow_distinct	TypeErrorr)   r?   allow_order_byempty_result_set_valuerR   r   rS   rT   rL   
from_paramrU   r"   __init__)r%   rR   rS   rT   rU   expressionsextrar)   s   &$$$$*,r*   r\   Aggregate.__init__Q   s     D///9DNN<S<SSTTD///9DNN<S<SSTT4#>#>#Jt~~6677OPQQ $nd/&2I(33~~&&'y18
 	+//r2   c                \   < \         SV `  4        Uu. uF  qP                  NK  	  up# u upi r5   )r"   get_source_expressions_output_field_or_none)r%   er)   s   & r*   get_source_fieldsAggregate.get_source_fieldsi   s+     271O1QR1QA''1QRRRs   )c                X   < \         SV `  4       p. VOV P                  NV P                  N# r5   )r"   ra   rS   rU   )r%   r.   r)   s   & r*   ra    Aggregate.get_source_expressionsn   s/    "W;=@#@T[[@$--@@r2   c                @   < VEv qn         V n        \        SV `  V4      # r5   )rS   rU   r"   set_source_expressions)r%   exprsr)   s   &&r*   ri    Aggregate.set_source_expressionsr   s!    -2*T]w-e44r2   c           
     x  < \         SV `  WW44      pV'       d[   VP                  4        FE  pVP                  V,          P                  '       g   K(  \        R VP                   RV RV R24      h	  MV P                  '       g   \         \        V`#  4       p\        V4       Fy  w  rV
P                  '       g   K  V P                  4       V	,          p\        VR4      '       d   VP                  M
\        V4      p\        R VP                  : RV: RV: R24      h	  VP                  ;pf   V# \        VR4      '       d3   VP                  WW44      pVP                  f   VP                  Vn        M\!        WP                  4      pRVn        \#        WmVP                  R7      pVP                  Vn        V# )zCannot compute z('z'): 'z' is an aggregatenameNresolve_expression)output_field)r"   rn   get_refsannotations
is_summaryr   rm   r   ra   	enumeratecontains_aggregatehasattrreprrT   rb   ro   r
   r   )r%   queryallow_joinsreuse	summarizefor_savecrefr]   indexexprbefore_resolvedrm   rT   coalescer)   s   &&&&&&         r*   rn   Aggregate.resolve_expressionv   s    G&u5Lzz|$$S)444$)!&&C5cUBST  $
   	1DFK(5***&*&A&A&CE&JO #?F;; (,,!/2 
 %664/   6 yy G)H701100UVG,,4'('>'>$G%<%<=G	AQ5L5LMllr2   c                    V P                  4        Uu. uF
  qf   K  VNK  	  pp\        V4      ^8X  dL   \        V^ ,          R4      '       d3   V^ ,          P                  : RV P                  P	                  4       : 2# \        R4      hu upi )Nrm   __z$Complex expressions require an alias)ra   lenru   rm   lowerrX   )r%   r   r]   s   &  r*   default_aliasAggregate.default_alias   s|     "88:
:TDD: 	 
 {q W[^V%D%D*1~22DIIOO4EFF>??
s
   BBc                    . # r5   r   r/   s   &r*   get_group_by_colsAggregate.get_group_by_cols   s    	r2   c                >  < V P                   '       dQ   VP                  P                  '       g5   \        \        SV `  4       4      ^8  d   \        V P                   R24      hV P                   '       d   RMRpRp. pRp. pV P                  ;p	e   VP                  V	4      w  rVV P                  e    VP                  V P                  4      w  rxVP#                  VVVR7       \        SV `@  ! W3/ VB w  rV. VOVOVO53#   \         d    T P                  4       p
RT
n
        T
P                  4       p\        T P                  P                  T^ ,          R7      pT
P                  \        T4      .TR,          ,           4       T
P                   ! Y3/ TB u # i ; i)   zN does not support distinct with multiple expressions on this database backend.z	DISTINCT r   N)then:r   NNrR   rS   rU   )rR   r    -supports_aggregate_distinct_multiple_argumentr   r"   ra   r   rm   rU   compilerS   copyr   r0   ri   r   r#   update)r%   r&   r'   r(   distinct_sqlorder_by_sqlorder_by_params
filter_sqlfilter_paramsrU   r   r.   r0   sqlparamsr)   s   &&&,           r*   r#   Aggregate.as_sql   s   MMM''UUUEG2459#99+ ) * 
 '+mmm{
%H2,4,<,<X,F)L;;"
J,4,<,<T[[,I)
 	!! 	 	

 gnXK]K?f?????! % J yy{"%)%@%@%B" !6!6=OPQ=RS	++T)_,=@RSU@V,VW{{8I=IIJs   4D BFFc                   < \         SV `  4       pV P                  '       d   V P                  VR &   V P                  '       d   V P                  VR&   V P                  '       d   V P                  VR&   V# r   )r"   _get_repr_optionsrR   rS   rU   )r%   optionsr)   s   & r*   r   Aggregate._get_repr_options   sZ    '+-==="&--GJ;;; $GH==="&--GJr2   )rT   rR   rS   rU   )NTNFF)r?   r@   rA   rB   rD   rt   rm   window_compatiblerW   rY   rZ   r\   rd   ra   ri   rn   rE   r   r   r#   r   rF   rG   rH   rI   s   @@r*   r   r   H   s     PHDNN!0 0 	0
 0 00S
A5'R @ @'@R r2   c                   B   a a ] tR t^t oRtR t^tRtV 3R ltRt	Vt
V ;t# )r   	ANY_VALUEFc                t   < VP                   P                  '       g   \        R 4      h\        SV `  ! W3/ VB # )z4ANY_VALUE is not supported on this database backend.)r    supports_any_valuer   r"   r#   r$   s   &&&,r*   r#   AnyValue.as_sql   s;    ""555#F  w~hDmDDr2   r   )r?   r@   rA   rB   functionrm   rC   r   r#   rF   rG   rH   rI   s   @@r*   r   r      s&     HDEE Er2   c                   &    ] tR t^tRtR tRt^tRtR# )r   AVGTr   N	r?   r@   rA   rB   r   rm   rW   rC   rF   r   r2   r*   r   r          HDNEr2   c                   h   a a ] tR t^t oRtR t]! 4       tRt^ t	^t
RtRV 3R lltV 3R ltRtVtV ;t# )r   COUNTTc                   < VR 8X  d   \        4       p\        V\         4      '       d   Ve   \        R4      h\        SV `  ! V3RV/VB  R# )*Nz8Star cannot be used with filter. Please specify a field.rS   )r	   
isinstance
ValueErrorr"   r\   )r%   
expressionrS   r^   r)   s   &&&,r*   r\   Count.__init__   sG    Jj$''F,>WXX<F<e<r2   c                  < \         SV `  ! V/ VB pVP                  4       p\        V^ ,          ;p\        4      '       dI   V P
                  '       d   \        R4      hVP                  4       ^ ,          V^ &   VP                  V4       V# )r-   z6COUNT(DISTINCT) doesn't support composite primary keys)	r"   rn   ra   r   r   rR   r   get_colsri   )r%   argskwargsresultr.   r   r)   s   &*,   r*   rn   Count.resolve_expression  s    +T<V<#::< 033dX>>}}} L  %)MMOA$6q!))*<=r2   r   r5   )r?   r@   rA   rB   r   rm   r   ro   rW   rZ   rC   allows_composite_expressionsr\   rn   rF   rG   rH   rI   s   @@r*   r   r      s;     HD>LNE#' = r2   c                   "    ] tR tRtRtR t^tRtR# )r   i  MAXr   Nr?   r@   rA   rB   r   rm   rC   rF   r   r2   r*   r   r         HDEr2   c                   "    ] tR tRtRtR t^tRtR# )r   i  MINr   Nr   r   r2   r*   r   r     r   r2   c                   J   a a ] tR tRt oR t^tRV 3R lltV 3R ltRtVt	V ;t
# )r   i!  c                L   < V'       d   R MRV n         \        SV `  ! V3/ VB  R# )STDDEV_SAMP
STDDEV_POPNr   r"   r\   r%   r   sampler^   r)   s   &&&,r*   r\   StdDev.__init__%  s     )/\-u-r2   c                F   < / \         SV `  4       CR V P                  R8H  /C# )r   r   r"   r   r   r%   r)   s   &r*   r   StdDev._get_repr_options)  s&    X%'+-Xx-9WXXr2   r   Fr?   r@   rA   rB   rm   rC   r\   r   rF   rG   rH   rI   s   @@r*   r   r   !  s      DE.Y Yr2   c                   @   a a ] tR tRt o^tRtV 3R ltR tRtVt	V ;t
# )StringAggDelimiteri-  z%(expressions)sc                2   < Wn         \        SV `	  V4       R # r5   )valuer"   r\   )r%   r   r)   s   &&r*   r\   StringAggDelimiter.__init__1  s    
r2   c                2    R pV P                   ! VV3RV/VB # )z SEPARATOR %(expressions)srD   )r#   r%   r&   r'   r(   rD   s   &&&, r*   as_mysqlStringAggDelimiter.as_mysql5  s2    /{{
 
 	
 	
r2   )r   )r?   r@   rA   rB   rC   rD   r\   r   rF   rG   rH   rI   s   @@r*   r   r   -  s     E H 
 
r2   r   c                   f   a a ] tR tRt oRtRtR tRtRt]	! 4       t
V 3R ltR tR tR tR	tVtV ;t# )
r   i@  rQ   
STRING_AGGTc                ^   < \        V4      V n        \        SV `  ! WP                  3/ VB  R # r5   )r   	delimiterr"   r\   )r%   r   r   r^   r)   s   &&&,r*   r\   StringAgg.__init__H  s%    +I6^^=u=r2   c                `    V P                   '       d   R pMRpV P                  ! VV3RRRV/VB # )zO%(function)s(%(distinct)s%(expressions)s) WITHIN GROUP (%(order_by)s)%(filter)sz3%(function)s(%(distinct)s%(expressions)s)%(filter)sr   LISTAGGrD   )rU   r#   r   s   &&&, r*   	as_oracleStringAgg.as_oracleL  sR    === 
 MH{{
 
 	

 
 	
r2   c                   R VR&   RpWCR&   V P                  4       p. pVP                  '       d6   VP                  VP                  4      w  rvVP                  RR Vn        WsR&   VP                  ! W3/ VB w  rV. V	OVO53# )GROUP_CONCATr   zB%(function)s(%(distinct)s%(expressions)s%(order_by)s%(delimiter)s)rD   Nr   )r   r   r   r.   r#   )
r%   r&   r'   r(   rD   r|   delimiter_paramsdelimiter_sqlr   r   s
   &&&,      r*   r   StringAgg.as_mysql]  s    $2j!W$,j!IIK
 ;;;.6.>.>q{{.K+M#$#7#7#<A )6+&hhxE}E0f0/000r2   c                ~    VP                  4       R8  d   V P                  ! VV3RR/VB # V P                  ! W3/ VB # )   r   r   )r   ,   )get_database_versionr#   )r%   r&   r'   r(   s   &&&,r*   	as_sqliteStringAgg.as_sqlites  sT    **,w6;; (  	  {{8A=AAr2   )r   )r?   r@   rA   rB   rD   r   rm   rW   rY   r   ro   r\   r   r   r   rF   rG   rH   rI   s   @@r*   r   r   @  s@     PHHDNN;L>
"1,	B 	Br2   c                   &    ] tR tRtRtR tRt^tRtR# )r   i  SUMTr   Nr   r   r2   r*   r   r     r   r2   c                   J   a a ] tR tRt oR t^tRV 3R lltV 3R ltRtVt	V ;t
# )r   i  c                L   < V'       d   R MRV n         \        SV `  ! V3/ VB  R# )VAR_SAMPVAR_POPNr   r   s   &&&,r*   r\   Variance.__init__  s     &,
)-u-r2   c                F   < / \         SV `  4       CR V P                  R8H  /C# )r   r   r   r   s   &r*   r   Variance._get_repr_options  s&    U%'+-Ux*9TUUr2   r   r   r   rI   s   @@r*   r   r     s      DE.V Vr2   N)
r   r   r   r   r   r   r   r   r   r   )$__doc__django.core.exceptionsr   r   	django.dbr   django.db.models.expressionsr   r   r   r   r	   r
   r   django.db.models.fieldsr   r   django.db.models.functionsr   !django.db.models.functions.mixinsr   r   __all__r   rL   r   r   r   r   r   r   r   r   r   r   r   r   r2   r*   <module>r      s    = '   < /
Qd Q,
E{ 
ET TnEy E
!8) I B) ) 	Y$i 	Y
 
&<B	 <B~
 	V&	 	Vr2   