
    0~hX                        d dl Z d dlZd dl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 g dZ G d d	ee      Z G d
 de      Z G d d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y)    N)
ArrayField)	AggregateBooleanField	JSONField	TextFieldValue)RemovedInDjango51Warning   )OrderableAggMixin)ArrayAggBitAndBitOrBitXorBoolAndBoolOrJSONBAgg	StringAggc                   (    e Zd ZdZdZdZed        Zy)r   	ARRAY_AGG6%(function)s(%(distinct)s%(expressions)s %(ordering)s)Tc                 F    t        | j                  d   j                        S )Nr   )r   source_expressionsoutput_field)selfs    s/var/www/peopleoo.sandbox-dev.co.uk/venv/lib/python3.12/site-packages/django/contrib/postgres/aggregates/general.pyr   zArrayAgg.output_field   s    $11!4AABB    N)__name__
__module____qualname__functiontemplateallow_distinctpropertyr    r   r   r   r      s%    HGHNC Cr   r   c                       e Zd ZdZy)r   BIT_ANDNr   r   r   r    r$   r   r   r   r           Hr   r   c                       e Zd ZdZy)r   BIT_ORNr'   r$   r   r   r   r   $   s    Hr   r   c                       e Zd ZdZy)r   BIT_XORNr'   r$   r   r   r   r   (   r(   r   r   c                       e Zd ZdZ e       Zy)r   BOOL_ANDNr   r   r   r    r   r   r$   r   r   r   r   ,   s    H>Lr   r   c                       e Zd ZdZ e       Zy)r   BOOL_ORNr/   r$   r   r   r   r   1   s    H>Lr   r   c                   >     e Zd ZdZdZdZ e       Zdd fd
Z xZ	S )r   	JSONB_AGGr   TN)defaultc                   t        |   |d|i| t        |t              rt        |j                  t
              ryt        |j                  t              s^|j                  }	 t        j                  |      }t        || j                        | _
        t        j                  d|ddt               y y y y # t        j                  $ r> t        j                  d|ddt               | j                  | j                  _        Y y w xY w)Nr4   zPPassing an encoded JSON string as JSONBAgg(default) is deprecated. Pass default=z	 instead.   )
stacklevelcategoryzuPassing a Value() with an output_field that isn't a JSONField as JSONBAgg(default) is deprecated. Pass default=Value(z$, output_field=JSONField()) instead.)super__init__
isinstancer   valuestrr   r   jsonloadsr4   warningswarnr	   JSONDecodeError)r   r4   expressionsextrar<   decoded	__class__s         r   r:   zJSONBAgg.__init__=   s    +@w@%@w&7==#.w33Y?MME**U+  %Wd.?.?@007{)E 5	! @ / ' '' >"I%IK  !5 -1,=,=)>s   $B8 8AD	D	)
r   r   r   r    r!   r"   r   r   r:   __classcell__rF   s   @r   r   r   6   s(    HGHN;L .2  r   r   c                   8     e Zd ZdZdZdZ e       Z fdZ xZ	S )r   
STRING_AGGr   Tc                 P    t        t        |            }t        |   ||fi | y )N)r   r=   r9   r:   )r   
expression	delimiterrD   delimiter_exprrF   s        r   r:   zStringAgg.__init__`   s%    s9~.^=u=r   )
r   r   r   r    r!   r"   r   r   r:   rG   rH   s   @r   r   r   Z   s#    HGHN;L> >r   r   )r>   r@   django.contrib.postgres.fieldsr   django.db.modelsr   r   r   r   r   django.utils.deprecationr	   mixinsr   __all__r   r   r   r   r   r   r   r   r$   r   r   <module>rT      s      5 Q Q = %	C ) CY I Y "i "
"Y "
! ) !H>!9 >r   