§
    ¤”jÛ  ã                   óP  — d Z ddlmZmZ ddlmZmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZmZ g d¢Z G d„ d	e¦  «        Z G d
„ deee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        ZdS )z>
Classes to represent the definitions of aggregate functions.
é    )Ú
FieldErrorÚFullResultSet)ÚCaseÚFuncÚStarÚValueÚWhen)ÚIntegerField)ÚCoalesce)ÚFixDurationInputMixinÚNumericOutputFieldMixin)Ú	AggregateÚAvgÚCountÚMaxÚMinÚStdDevÚSumÚVariancec                   ó    ‡ — e Zd ZdZdZdZdZdZdZdZ	ddddœˆ fd„
Z
ˆ fd„Zˆ fd	„Zˆ fd
„Z	 dˆ fd„	Zed„ ¦   «         Zd„ Zˆ fd„Zˆ fd„Zˆ xZS )r   z)%(function)s(%(distinct)s%(expressions)s)TNz%s FILTER (WHERE %%(filter)s)F)ÚdistinctÚfilterÚdefaultc                óø   •— |r#| j         st          d| j        j        z  ¦  «        ‚|�#| j        �t          | j        j        › d�¦  «        ‚|| _        || _        || _         t          ¦   «         j	        |i |¤Ž d S )Nz%s does not allow distinct.z does not allow default.)
Úallow_distinctÚ	TypeErrorÚ	__class__Ú__name__Úempty_result_set_valuer   r   r   ÚsuperÚ__init__)Úselfr   r   r   ÚexpressionsÚextrar   s         €új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/models/aggregates.pyr!   zAggregate.__init__#   s“   ø€ ð ð 	U˜DÔ/ð 	UÝÐ9¸D¼NÔ<SÑSÑTÔTÐTØÐ 4Ô#>Ð#JÝ˜tœ~Ô6ÐPÐPÐPÑQÔQÐQØ ˆŒØˆŒØˆŒØ�‰ŒÔ˜+Ð/¨Ð/Ð/Ð/Ð/Ð/ó    c                 óX   •— d„ t          ¦   «                              ¦   «         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S © )Ú_output_field_or_none)Ú.0Úes     r%   ú
<listcomp>z/Aggregate.get_source_fields.<locals>.<listcomp>1   s   € ÐRÐRÐR¨A�Ô'ÐRÐRÐRr&   )r    Úget_source_expressions©r"   r   s    €r%   Úget_source_fieldszAggregate.get_source_fields/   s'   ø€ àRÐRµ±´×1OÒ1OÑ1QÔ1QÐRÑRÔRÐRr&   c                 ól   •— t          ¦   «                              ¦   «         }| j        r|| j        gz   S |S ©N)r    r.   r   )r"   Úsource_expressionsr   s     €r%   r.   z Aggregate.get_source_expressions3   s8   ø€ Ý"™WœW×;Ò;Ñ=Ô=ÐØŒ;ð 	6Ø%¨¬¨Ñ5Ð5Ø!Ð!r&   c                 ó†   •— | j         o|                     ¦   «         | _         t          ¦   «                              |¦  «        S r2   )r   Úpopr    Úset_source_expressions)r"   Úexprsr   s     €r%   r6   z Aggregate.set_source_expressions9   s1   ø€ Ø”kÐ1 e§i¢i¡k¤kˆŒÝ‰wŒw×-Ò-¨eÑ4Ô4Ð4r&   c           
      ó’  •— t          ¦   «                              ||||¦  «        }|j        o|j                             ||||¦  «        |_        |rH|                     ¦   «         D ]2}|j        |         j        rt          d|j        › d|› d|› d�¦  «        ‚Œ3n¨| j        s¡t          t          |¦  «         	                    ¦   «         }t          |¦  «        D ]j\  }	}
|
j        r^|  	                    ¦   «         |	         }t          |d¦  «        r|j        nt          |¦  «        }t          d|j        ›d|›d|›d�¦  «        ‚Œk|j        x}€|S t          |d¦  «        r,|                     ||||¦  «        }|j        €|j        |_        nt#          ||j        ¦  «        }d |_        t%          |||j        ¬¦  «        }|j        |_        |S )NzCannot compute z('z'): 'z' is an aggregateÚnameÚresolve_expression)Úoutput_field)r    r:   r   Úget_refsÚannotationsÚ
is_summaryr   r9   r   r.   Ú	enumerateÚcontains_aggregateÚhasattrÚreprr   r*   r;   r   r   )r"   ÚqueryÚallow_joinsÚreuseÚ	summarizeÚfor_saveÚcÚrefr#   ÚindexÚexprÚbefore_resolvedr9   r   Úcoalescer   s                  €r%   r:   zAggregate.resolve_expression=   s  ø€ õ ‰GŒG×&Ò& u¨k¸5À)ÑLÔLˆØ”8ð 
 ¤× ;Ò ;Ø�;  yñ!
ô !
ˆŒð ð 	à—z’z‘|”|ð ð �ØÔ$ SÔ)Ô4ð Ý$ØT¨!¬&ÐTÐT°CÐTÐT¸cÐTÐTÐTñô ð ððð
 ”ð 	õ  ¥	¨1Ñ-Ô-×DÒDÑFÔFˆKÝ(¨Ñ5Ô5ð ð ‘��tØÔ*ð 
Ø&*×&AÒ&AÑ&CÔ&CÀEÔ&J�Oõ # ?°FÑ;Ô;ð3˜Ô,Ð,å! /Ñ2Ô2ð õ
 %˜*àœ6˜6˜6 4 4 4¨¨¨ð/ñô ð ð
ð ”yÐ ˆGÐ)ØˆHÝ�7Ð0Ñ1Ô1ð 	>Ø×0Ò0°¸ÀUÈIÑVÔVˆGØÔ,Ð4Ø'(Ô'>�Ô$øå˜G QÔ%<Ñ=Ô=ˆGØˆŒ	Ý˜A˜w°QÔ5LÐMÑMÔMˆØœlˆÔØˆr&   c                 óì   — |                       ¦   «         }t          |¦  «        dk    r?t          |d         d¦  «        r)|d         j        ›d| j                             ¦   «         ›�S t          d¦  «        ‚)Né   r   r9   Ú__z$Complex expressions require an alias)r.   ÚlenrA   r9   Úlowerr   )r"   r#   s     r%   Údefault_aliaszAggregate.default_aliasi   so   € à×1Ò1Ñ3Ô3ˆÝˆ{ÑÔ˜qÒ Ð ¥W¨[¸¬^¸VÑ%DÔ%DÐ Ø*¨1œ~Ô2Ð2Ð2°D´I·O²OÑ4EÔ4EÐ4EÐFÐFÝÐ>Ñ?Ô?Ð?r&   c                 ó   — g S r2   r)   )r"   s    r%   Úget_group_by_colszAggregate.get_group_by_colsp   s   € Øˆ	r&   c                 ó¬  •— | j         rdnd|d<   | j        �r#|j        j        r|	 | j                             ||¦  «        \  }}| j        |                     d| j        ¦  «        z  } t          ¦   «         j        ||f||dœ|¤Ž\  }}|g |¢|¢R fS # t          $ r Y nŸw xY w|  
                    ¦   «         }	d |	_        |	                     ¦   «         }
t          | j        |
d         ¬¦  «        }|	                     t          |¦  «        g|
dd …         z   ¦  «          t          t          |	¦  «        j        ||fi |¤ŽS  t          ¦   «         j        ||fi |¤ŽS )	Nz	DISTINCT Ú r   Útemplate)rX   r   r   )ÚthenrO   )r   r   ÚfeaturesÚ supports_aggregate_filter_clauseÚas_sqlÚfilter_templateÚgetrX   r    r   Úcopyr.   r	   r6   r   r   )r"   ÚcompilerÚ
connectionÚextra_contextÚ
filter_sqlÚfilter_paramsrX   ÚsqlÚparamsr_   r3   Ú	conditionr   s               €r%   r\   zAggregate.as_sqls   s»  ø€ Ø37´=Ð$H K KÀbˆ�jÑ!ØŒ;ñ 	ØÔ"ÔCð ð:Ø04´×0BÒ0BÀ8ÈZÑ0XÔ0XÑ-�J ð  $Ô3°m×6GÒ6GØ" D¤Mñ7ô 7ñ  �Hð #1¥%¡'¤'¤.Ø Ø"ð#ð "*Ø)ð	#ð #ð
 (ð#ð #‘K�C˜ð Ð 9 &Ð 9¨=Ð 9Ð 9Ð9Ð9øõ %ð ð ð Ø�Dðøøøð —y’y‘{”{�Ø"�”Ø%)×%@Ò%@Ñ%BÔ%BÐ"Ý  ¤Ð3EÀaÔ3HÐIÑIÔI�	Ø×+Ò+­T°)©_¬_Ð,=Ð@RÐSTÐSUÐSUÔ@VÑ,VÑWÔWÐWØ4•u�Y¨Ñ-Ô-Ô4Ø˜jðð Ø,9ðð ð ð �u‰wŒwŒ~˜h¨
ÐDÐD°mÐDÐDÐDs   ¥B Â
BÂBc                 óŒ   •— t          ¦   «                              ¦   «         }| j        r
| j        |d<   | j        r
| j        |d<   |S )Nr   r   )r    Ú_get_repr_optionsr   r   )r"   Úoptionsr   s     €r%   ri   zAggregate._get_repr_options’   sI   ø€ Ý‘'”'×+Ò+Ñ-Ô-ˆØŒ=ð 	0Ø"&¤-ˆG�JÑØŒ;ð 	,Ø $¤ˆG�HÑØˆr&   )NTNFF)r   Ú
__module__Ú__qualname__rX   r@   r9   r]   Úwindow_compatibler   r   r!   r0   r.   r6   r:   ÚpropertyrS   rU   r\   ri   Ú__classcell__©r   s   @r%   r   r      sK  ø€ € € € € Ø:€HØÐØ€DØ5€OØÐØ€NØ!Ðð &+°4Àð
0ð 
0ð 
0ð 
0ð 
0ð 
0ð 
0ðSð Sð Sð Sð Sð"ð "ð "ð "ð "ð5ð 5ð 5ð 5ð 5ð
 SXð*ð *ð *ð *ð *ð *ðX ð@ð @ñ „Xð@ðð ð ðEð Eð Eð Eð Eð>ð ð ð ð ð ð ð ð r&   r   c                   ó   — e Zd ZdZd ZdZdS )r   ÚAVGTN©r   rk   rl   Úfunctionr9   r   r)   r&   r%   r   r   ›   ó   € € € € € Ø€HØ€DØ€N€N€Nr&   r   c                   óD   ‡ — e Zd ZdZd Z e¦   «         ZdZdZdˆ fd„	Z	ˆ xZ
S )r   ÚCOUNTTr   Nc                 ó´   •— |dk    rt          ¦   «         }t          |t           ¦  «        r|�t          d¦  «        ‚ t          ¦   «         j        |fd|i|¤Ž d S )NÚ*z8Star cannot be used with filter. Please specify a field.r   )r   Ú
isinstanceÚ
ValueErrorr    r!   )r"   Ú
expressionr   r$   r   s       €r%   r!   zCount.__init__¨   sh   ø€ Ø˜ÒÐÝ™œˆJÝ�j¥$Ñ'Ô'ð 	Y¨FÐ,>ÝÐWÑXÔXÐXØ�‰ŒÔ˜Ð<Ð<¨FÐ<°eÐ<Ð<Ð<Ð<Ð<r&   r2   )r   rk   rl   rt   r9   r
   r;   r   r   r!   ro   rp   s   @r%   r   r   ¡   s]   ø€ € € € € Ø€HØ€DØ�<‘>”>€LØ€NØÐð=ð =ð =ð =ð =ð =ð =ð =ð =ð =r&   r   c                   ó   — e Zd ZdZd ZdS )r   ÚMAXN©r   rk   rl   rt   r9   r)   r&   r%   r   r   °   ó   € € € € € Ø€HØ€D€D€Dr&   r   c                   ó   — e Zd ZdZd ZdS )r   ÚMINNr   r)   r&   r%   r   r   µ   r€   r&   r   c                   ó.   ‡ — e Zd Zd Zdˆ fd„	Zˆ fd„Zˆ xZS )r   Fc                 óR   •— |rdnd| _          t          ¦   «         j        |fi |¤Ž d S )NÚSTDDEV_SAMPÚ
STDDEV_POP©rt   r    r!   ©r"   r|   Úsampler$   r   s       €r%   r!   zStdDev.__init__½   s8   ø€ Ø)/ÐA˜˜°\ˆŒØ�‰ŒÔ˜Ð-Ð- uÐ-Ð-Ð-Ð-Ð-r&   c                 ób   •— i t          ¦   «                              ¦   «         ¥d| j        dk    i¥S )Nr‰   r…   ©r    ri   rt   r/   s    €r%   ri   zStdDev._get_repr_optionsÁ   s/   ø€ ØX•%‘'”'×+Ò+Ñ-Ô-ÐX¨x¸¼È-Ò9WÐXÐXÐXr&   ©F©r   rk   rl   r9   r!   ri   ro   rp   s   @r%   r   r   º   sd   ø€ € € € € Ø€Dð.ð .ð .ð .ð .ð .ðYð Yð Yð Yð Yð Yð Yð Yð Yr&   r   c                   ó   — e Zd ZdZd ZdZdS )r   ÚSUMTNrs   r)   r&   r%   r   r   Å   ru   r&   r   c                   ó.   ‡ — e Zd Zd Zdˆ fd„	Zˆ fd„Zˆ xZS )r   Fc                 óR   •— |rdnd| _          t          ¦   «         j        |fi |¤Ž d S )NÚVAR_SAMPÚVAR_POPr‡   rˆ   s       €r%   r!   zVariance.__init__Î   s8   ø€ Ø&,Ð;˜
˜
°)ˆŒØ�‰ŒÔ˜Ð-Ð- uÐ-Ð-Ð-Ð-Ð-r&   c                 ób   •— i t          ¦   «                              ¦   «         ¥d| j        dk    i¥S )Nr‰   r’   r‹   r/   s    €r%   ri   zVariance._get_repr_optionsÒ   s/   ø€ ØU•%‘'”'×+Ò+Ñ-Ô-ÐU¨x¸¼È*Ò9TÐUÐUÐUr&   rŒ   r�   rp   s   @r%   r   r   Ë   sd   ø€ € € € € Ø€Dð.ð .ð .ð .ð .ð .ðVð Vð Vð Vð Vð Vð Vð Vð Vr&   r   N)Ú__doc__Údjango.core.exceptionsr   r   Údjango.db.models.expressionsr   r   r   r   r	   Údjango.db.models.fieldsr
   Ú%django.db.models.functions.comparisonr   Ú!django.db.models.functions.mixinsr   r   Ú__all__r   r   r   r   r   r   r   r   r)   r&   r%   ú<module>rœ      s4  ððð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð
	ð 	ð 	€ð~ð ~ð ~ð ~ð ~�ñ ~ô ~ð ~ðBð ð ð ð Ð
Ð!8¸)ñ ô ð ð=ð =ð =ð =ð =ˆIñ =ô =ð =ðð ð ð ð ˆ)ñ ô ð ð
ð ð ð ð ˆ)ñ ô ð ð
Yð Yð Yð Yð YÐ$ iñ Yô Yð Yðð ð ð ð Ð
 ñ ô ð ðVð Vð Vð Vð VÐ&¨	ñ Vô Vð Vð Vð Vr&   