Ë
    ðLqjÙ  ã                  óÄ   — U d Z ddlmZ ddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZ ej                  rd	Zd
ed<   dZd
ed<    G d„ de«      Z G d„ d«      Zdd„Zy)z:Tools to provide pretty/human-readable display of objects.é    )ÚannotationsN)ÚAny)Útyping_objects)Úis_union_originé   )Ú_typing_extraz'typing.Iterable[tuple[str | None, Any]]ztyping_extensions.TypeAliasÚReprArgszJtyping.Iterable[Any | tuple[Any] | tuple[str, Any] | tuple[str, Any, Any]]ÚRichReprResultc                  ó   — e Zd ZdZdd„Zy)Ú	PlainReprz¸String class where repr doesn't include quotes. Useful with Representation when you want to return a string
    representation of something that is valid (or pseudo-valid) python.
    c                ó   — t        | «      S ©N)Ústr©Úselfs    úd/var/www/html/ai-menu-system/python-ai/venv/lib/python3.12/site-packages/pydantic/_internal/_repr.pyÚ__repr__zPlainRepr.__repr__   s   € Ü�4‹yÐó    N©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s   „ ñôr   r   c                  óP   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zy
)ÚRepresentationr   c                óì   ‡ — ‰ j                   }|s&t        ‰ d«      r‰ j                  j                  «       }ˆ fd„|D «       }|D ��cg c]!  \  }}|€Œ	||‰ ur|n‰ j	                  |«      f‘Œ# c}}S c c}}w )a-  Returns the attributes to show in __str__, __repr__, and __pretty__ this is generally overridden.

        Can either return:
        * name - value pairs, e.g.: `[('foo_name', 'foo'), ('bar_name', ['b', 'a', 'r'])]`
        * or, just values, e.g.: `[(None, 'foo'), (None, ['b', 'a', 'r'])]`
        Ú__dict__c              3  ó:   •K  — | ]  }|t        ‰|«      f–— Œ y ­wr   )Úgetattr)Ú.0Úsr   s     €r   ú	<genexpr>z/Representation.__repr_args__.<locals>.<genexpr>2   s   øè ø€ Ò<¨1�!”W˜T 1Ó%Ô&Ñ<ùs   ƒ)Ú	__slots__Úhasattrr   ÚkeysÚ__repr_recursion__)r   Úattrs_namesÚattrsÚaÚvs   `    r   Ú__repr_args__zRepresentation.__repr_args__(   sl   ø€ ð —n‘nˆÙœw t¨ZÔ8ØŸ-™-×,Ñ,Ó.ˆKÛ<°Ô<ˆØTY×kÉDÈAÈqÐ]^Ñ]j�˜ $™‘A¨D×,CÑ,CÀAÓ,FÒGÓkÐkùÓks   Á
A0ÁA0c                ó.   — | j                   j                  S )z/Name of the instance's class, used in __repr__.)Ú	__class__r   r   s    r   Ú__repr_name__zRepresentation.__repr_name__5   s   € à�~‰~×&Ñ&Ð&r   c                óL   — dt        |«      j                  › dt        |«      › d�S )z8Returns the string representation of a recursive object.z<Recursion on z	 with id=ú>)Útyper   Úid)r   Úobjects     r   r(   z!Representation.__repr_recursion__9   s(   € ð  ¤ V£× 5Ñ 5Ð6°iÄÀ6Ã
¸|È1ÐMÐMr   c                óN   — |j                  d„ | j                  «       D «       «      S )Nc              3  óJ   K  — | ]  \  }}|€t        |«      n|› d|›�–— Œ y ­w)Nú=)Úrepr)r"   r+   r,   s      r   r$   z.Representation.__repr_str__.<locals>.<genexpr>?   s+   è ø€ ÒeÉÈÈ1¨¨	œT !œW¸!¸¸A¸a¸U°|ÓCÑeùs   ‚!#)Újoinr-   )r   Újoin_strs     r   Ú__repr_str__zRepresentation.__repr_str__>   s!   € Ø�}‰}ÑeÐPT×PbÑPbÓPdÔeÓeÐer   c              +  ó´   K  — | j                  «       dz   –— d–— | j                  «       D ]   \  }}|�|dz   –—  ||«      –— d–— d–— Œ" d–— d–— y­w)	zRUsed by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.ú(r   Nr8   ú,r   éÿÿÿÿú))r0   r-   )r   ÚfmtÚkwargsÚnameÚvalues        r   Ú
__pretty__zRepresentation.__pretty__A   sk   è ø€ à× Ñ Ó" SÑ(Ò(ØŠØ×-Ñ-Ó/ò 	‰KˆD�%ØÐØ˜S‘jÒ Ù�e“*ÒØŠIØ‹Gð	ð ŠØ‹	ùs   ‚AAc              #  óV   K  — | j                  «       D ]  \  }}|€|–— Œ||f–— Œ y­w)zYUsed by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.N)r-   )r   rD   Ú
field_reprs      r   Ú__rich_repr__zRepresentation.__rich_repr__N   s9   è ø€ à $× 2Ñ 2Ó 4ò 	'ÑˆD�*Øˆ|Ø Ó à˜JÐ&Ó&ñ		'ùs   ‚')c                ó$   — | j                  d«      S )Nú )r<   r   s    r   Ú__str__zRepresentation.__str__V   s   € Ø× Ñ  Ó%Ð%r   c                óL   — | j                  «       › d| j                  d«      › d�S )Nr>   ú, rA   )r0   r<   r   s    r   r   zRepresentation.__repr__Y   s+   € Ø×$Ñ$Ó&Ð' q¨×):Ñ):¸4Ó)@Ð(AÀÐCÐCr   N)r   r	   r   )r5   r   r   r   )r;   r   r   r   )rB   ztyping.Callable[[Any], Any]rC   r   r   z!typing.Generator[Any, None, None])r   r
   )r   r   r   r%   r-   r0   r(   r<   rF   rI   rL   r   r   r   r   r   r      s5   „ ð €Ióló'óNó
fóó'ó&ôDr   r   c                óº  — t        | t        j                  t        j                  f«      r| j                  S | du ryt        | t
        «      rt        | «      S t        | t        j                  «      st        j                  | «      rt        | «      S t        | t        j                  t        j                  t        f«      s| j                   } t#        t%        j&                  | «      «      r8dj)                  t+        t,        t%        j.                  | «      «      «      }d|› d�S t        | t        j                  «      r t        j0                  t%        j&                  | «      «      r3dj)                  t+        t        t%        j.                  | «      «      «      }n2dj)                  t+        t,        t%        j.                  | «      «      «      }	 | j2                  › d|› d�S t        | t        «      r| j2                  S t        | «      j7                  dd«      j7                  d	d«      S # t4        $ r. t        | «      j7                  dd«      j7                  d	d«      cY S w xY w)
zœPretty representation of a type, should be as close as possible to the original type definition string.

    Takes some logic from `typing._type_repr`.
    .z...rN   zUnion[ú]ú[ztyping.Ú ztyping_extensions.)Ú
isinstanceÚtypesÚFunctionTypeÚBuiltinFunctionTyper   r   r9   ÚtypingÚ
ForwardRefr   Úis_typealiastyper   r   Útyping_baseÚWithArgsTypesr3   r/   r   Útyping_extensionsÚ
get_originr:   ÚmapÚdisplay_as_typeÚget_argsÚ
is_literalr   ÚAttributeErrorÚreplace)ÚobjÚargss     r   r_   r_   ]   sÚ  € ô
 �#œ×*Ñ*¬E×,EÑ,EÐFÔGØ�|‰|ÐØ	�‰ØÜ	�CœÔ	(Ü�C‹yÐÜ	�Cœ×*Ñ*Ô	+¬~×/NÑ/NÈsÔ/SÜ�3‹xˆä�cœM×5Ñ5´}×7RÑ7RÔTXÐYÔZØ�m‰mˆäÔ(×3Ñ3°CÓ8Ô9Ø�y‰yœœ_Ô.?×.HÑ.HÈÓ.MÓNÓOˆØ˜�v˜QÐÐÜ	�Cœ×4Ñ4Ô	5Ü×$Ñ$Ô%6×%AÑ%AÀ#Ó%FÔGØ—9‘9œS¤Ô'8×'AÑ'AÀ#Ó'FÓGÓH‰Dà—9‘9œS¤Ô2C×2LÑ2LÈSÓ2QÓRÓSˆDð	UØ×&Ñ&Ð' q¨¨¨aÐ0Ð0ô 
�CœÔ	Ø×ÑÐä�C‹y× Ñ  ¨BÓ/×7Ñ7Ð8LÈbÓQÐQøô ò 	UÜ�s“8×#Ñ# I¨rÓ2×:Ñ:Ð;OÐQSÓTÒTð	Uús   Ç
H# È#4IÉI)rd   r   r   r   )r   Ú
__future__r   Ú_annotationsrT   rW   r   r\   Útyping_inspectionr   Útyping_inspection.introspectionr   rR   r   ÚTYPE_CHECKINGr	   Ú__annotations__r
   r   r   r   r_   r   r   r   ú<module>rl      sc   ðÚ @å 2ã Û Ý ã Ý ,Ý ;å à	×ÒØ,U€HÐ)ÓUàTð Ð/ó ô
�ô ÷;Dñ ;Dô| Rr   