
    Hwg                     $    d dl mZ  G d d      Zy)    )OrderByListc                   L     e Zd Zdd fd
Z fdZ fdZ fdZ fdZ xZS )OrderableAggMixin orderingc                    t        |t        t        f      rt        | | _        nt        |      | _        t        |   |i | y N)
isinstancelisttupler   order_bysuper__init__)selfr   expressionsextra	__class__s       `/var/www/horilla/myenv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/mixins.pyr   zOrderableAggMixin.__init__   s;    hu.'2DM'1DM+//    c                 d     | j                   j                  |i || _         t        |   |i |S r
   )r   resolve_expressionr   )r   argskwargsr   s      r   r   z$OrderableAggMixin.resolve_expression   s5    888$I&Iw)4:6::r   c                     | j                   j                  rt        |          | j                   gz   S t        |          S r
   )r   source_expressionsr   get_source_expressions)r   r   s    r   r   z(OrderableAggMixin.get_source_expressions   s7    ==++713t}}oEEw-//r   c                 \    t        |d   t              r
|^ }| _        t        |   |      S )N)r   r   r   r   set_source_expressions)r   exprsr   s     r   r    z(OrderableAggMixin.set_source_expressions   s-    eBi-$)!UDMw-e44r   c                 |    |j                  | j                        \  }}t        |   |||      \  }}|g ||fS )Nr   )compiler   r   as_sql)r   compiler
connectionorder_by_sqlorder_by_paramssql
sql_paramsr   s          r   r$   zOrderableAggMixin.as_sql   sJ    (0(8(8(G%o'.:.UZ3j3?333r   )	__name__
__module____qualname__r   r   r   r    r$   __classcell__)r   s   @r   r   r      s$    .0 0;0
5
4 4r   r   N)django.db.models.expressionsr   r   r   r   r   <module>r0      s    44 4r   