+
    S<Âj*  ã                   ó2   € R t ^ RIt^ RIHt  ! R R4      tR# )zT
A class for storing a tree graph. Primarily used for filter constructs in the
ORM.
N)Úmake_hashablec                   óŒ   a € ] tR t^t o RtRtRR lt]RR l4       tR t	R t
R t]tR	 tR
 tR tR tR tR tR tR tRtV tR# )ÚNodez¡
A single internal node in the tree graph. A Node should be viewed as a
connection (the root) with the children being either leaf nodes or other
Node instances.
ÚDEFAULTNc                óx   € V'       d
   VR,          M. V n         T;'       g    V P                  V n        W0n        R# )z@Construct a new Node. If no connector is given, use the default.:NNNN)ÚchildrenÚdefaultÚ	connectorÚnegated)Úselfr   r	   r
   s   &&&&ÚQ/var/www/html/data_capital/venv/lib/python3.14/site-packages/django/utils/tree.pyÚ__init__ÚNode.__init__   s)   € ç'/˜ ž°RˆŒØ"×2Ð2 d§l¡lˆŒØŽó    c                óR   € \        Y;'       g    V P                  V4      pWn        V# )zÞ
Create a new instance using Node() instead of __init__() as some
subclasses, e.g. django.db.models.query_utils.Q, may implement a custom
__init__() with a signature that conflicts with the one defined in
Node.__init__().
)r   r   Ú	__class__)Úclsr   r	   r
   Úobjs   &&&& r   ÚcreateÚNode.create   s&   € ô �8×5Ð5¨#¯+©+°wÓ?ˆØŒØˆ
r   c                ó–   € V P                   '       d   R MRpWP                  RP                  R V P                   4       4      3,          # )z(NOT (%s: %s))z(%s: %s)z, c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)Ústr)Ú.0Úcs   & r   Ú	<genexpr>ÚNode.__str__.<locals>.<genexpr>*   s   é € Ð4SÁ]À´S¸·V°VÃ]ùs   ‚)r
   r	   Újoinr   )r   Útemplates   & r   Ú__str__ÚNode.__str__(   s7   € Ø'+§|§| |Ñ#¸ˆØŸ>™>¨4¯9©9Ñ4SÀTÇ]Â]Ó4SÓ+SÐTÕTÐTr   c                ó@   € R V P                   P                  : RV : R2# )Ú<z: Ú>)r   Ú__name__©r   s   &r   Ú__repr__ÚNode.__repr__,   s   � Ø!Ÿ^™^×4Ô4³dÐ;Ð;r   c                óv   € V P                  V P                  V P                  R 7      pV P                  Vn        V# ©)r	   r
   )r   r	   r
   r   )r   r   s   & r   Ú__copy__ÚNode.__copy__/   s,   € Ø�k‰k D§N¡N¸D¿L¹LˆkÓIˆØ—}‘}ˆŒØˆ
r   c                ó    € V P                  V P                  V P                  R 7      p\        P                  ! V P
                  V4      Vn        V# r*   )r   r	   r
   ÚcopyÚdeepcopyr   )r   Úmemodictr   s   && r   Ú__deepcopy__ÚNode.__deepcopy__6   s7   € Ø�k‰k D§N¡N¸D¿L¹LˆkÓIˆÜ—}’} T§]¡]°HÓ=ˆŒØˆ
r   c                ó,   € \        V P                  4      # )z,Return the number of children this node has.)Úlenr   r&   s   &r   Ú__len__ÚNode.__len__;   s   € ä�4—=‘=Ó!Ð!r   c                ó,   € \        V P                  4      # )z-Return whether or not this node has children.)Úboolr   r&   s   &r   Ú__bool__ÚNode.__bool__?   s   € ä�D—M‘MÓ"Ð"r   c                ó   € WP                   9   # )z:Return True if 'other' is a direct child of this instance.)r   ©r   Úothers   &&r   Ú__contains__ÚNode.__contains__C   s   € àŸ™Ñ%Ð%r   c                óú   € V P                   VP                   8H  ;'       d\    V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r   )r   r	   r
   r   r<   s   &&r   Ú__eq__ÚNode.__eq__G   sg   € à�N‰N˜eŸo™oÑ-÷ 0ð 0Ø—‘ %§/¡/Ñ1÷0ð 0à—‘ §¡Ñ-÷0ð 0ð —‘ §¡Ñ/ð		
r   c                ó†   € \        V P                  V P                  V P                  .\	        V P
                  4      O54      # r   )Úhashr   r	   r
   r   r   r&   s   &r   Ú__hash__ÚNode.__hash__O   s<   € Üà—‘Ø—‘Ø—‘ðô ˜tŸ}™}Ó-ñ	ó
ð 	
r   c                ó~  € V P                   V8w  d!   V P                  4       pW n         W1.V n        V# \        V\        4      '       d[   VP
                  '       gI   VP                   V8X  g   \        V4      ^8X  d(   V P                  P                  VP                  4       V # V P                  P                  V4       V# )a{  
Combine this tree and the data represented by data using the
connector conn_type. The combine is done by squashing the node other
away if possible.

This tree (self) will never be pushed to a child node of the
combined tree, nor will the connector or negated properties change.

Return a node which can be used in place of data regardless if the
node other got squashed or not.
)	r	   r.   r   Ú
isinstancer   r
   r4   ÚextendÚappend)r   ÚdataÚ	conn_typer   s   &&& r   ÚaddÚNode.addY   s�   € ð �>‰>˜YÔ&Ø—)‘)“+ˆCØ&ŒNØ ˜KˆDŒMØˆKä�tœT×"Ò"Ø—L—L�LØ—‘ 9Ô,´°D³	¸Q´ð �M‰M× Ñ  §¡Ô/ØˆKð �M‰M× Ñ  Ô&ØˆKr   c                ó2   € V P                   '       * V n         R# )z'Negate the sense of the root connector.N)r
   r&   s   &r   ÚnegateÚNode.negate|   s   € àŸ<™<Ô'ˆŽr   )r   r	   r
   )NNF)r%   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Úclassmethodr   r    r'   r+   r.   r1   r5   r9   r>   rA   rE   rM   rP   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      so   ø‡ € ñð €Gôð ó	ó ð	òUò<òð
 €Dòò
"ò#ò&ò
ò
ò!÷F(ð (r   r   )rU   r.   Údjango.utils.hashabler   r   © r   r   Ú<module>r\      s   ðñó
 å /÷s(ó s(r   