o
    lf                     @   s   d dl mZ G dd dZdS )    )OrderByListc                       sR   e Zd Zdd fdd
Z fddZ fddZ fd	d
Z fddZ  ZS )OrderableAggMixin orderingc                   s:   t |ttfrt| | _nt|| _t j|i | d S N)
isinstancelisttupler   order_bysuper__init__)selfr   expressionsextra	__class__r   m/var/www/ticemtrilhas/avaliacao_env/lib/python3.10/site-packages/django/contrib/postgres/aggregates/mixins.pyr      s   
zOrderableAggMixin.__init__c                    s&   | j j|i || _ t j|i |S r   )r   resolve_expressionr   )r   argskwargsr   r   r   r      s   z$OrderableAggMixin.resolve_expressionc                    s$   | j jrt  | j g S t  S r   )r   source_expressionsr   get_source_expressions)r   r   r   r   r      s   
z(OrderableAggMixin.get_source_expressionsc                    s&   t |d tr|^ }| _t |S )N)r   r   r   r   set_source_expressions)r   exprsr   r   r   r      s   z(OrderableAggMixin.set_source_expressionsc                    s8   | | j\}}t j|||d\}}|g ||R fS )Nr   )compiler   r   as_sql)r   compiler
connectionorder_by_sqlorder_by_paramssql
sql_paramsr   r   r   r      s   zOrderableAggMixin.as_sql)	__name__
__module____qualname__r   r   r   r   r   __classcell__r   r   r   r   r      s    r   N)django.db.models.expressionsr   r   r   r   r   r   <module>   s    