§
    £˜ºhæ  ã                  ó†   — d Z ddlmZ ddlZddlmZmZmZmZm	Z	 ddl
mZ  G d„ dej        ¦  «        Z G d	„ d
¦  «        ZdS )zImplementation of the DbDoc.é    )ÚannotationsN)ÚAnyÚDictÚKeysViewÚOptionalÚUnioné   )ÚProgrammingErrorc                  ó   — e Zd ZdZdd„ZdS )	ÚExprJSONEncoderzgA :class:`json.JSONEncoder` subclass, which enables encoding of
    :class:`mysqlx.ExprParser` objects.ÚoÚobjectÚreturnÚstrc                óh   — t          |d¦  «        r|› S t          j                             | |¦  «        S )NÚexpr)ÚhasattrÚjsonÚJSONEncoderÚdefault)Úselfr   s     úT/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/mysqlx/dbdoc.pyr   zExprJSONEncoder.default,   s4   € Ý�1�fÑÔð 	Ø�6ˆMåÔ×'Ò'¨¨aÑ0Ô0Ð0ó    N)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r   (   s2   € € € € € ð+ð +ð1ð 1ð 1ð 1ð 1ð 1r   r   c                  ó\   — 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d„Z
dd„Zdd„ZdS ) ÚDbDoczÏRepresents a generic document in JSON format.

    Args:
        value (object): The value can be a JSON string or a dict.

    Raises:
        ValueError: If ``value`` type is not a basestring or dict.
    ÚvalueúUnion[str, Dict[str, Any]]r   ÚNonec                óÜ   — t          |t          ¦  «        r	|| _        d S t          |t          ¦  «        rt	          j        |¦  «        | _        d S t          dt          |¦  «        › �¦  «        ‚)NzUnable to handle type: )Ú
isinstanceÚdictÚ__dict__r   r   ÚloadsÚ
ValueErrorÚtype)r   r!   s     r   Ú__init__zDbDoc.__init__=   se   € Ý�e�TÑ"Ô"ð 	FØ!ˆDŒMˆMˆMÝ˜�sÑ#Ô#ð 	FÝ œJ uÑ-Ô-ˆDŒMˆMˆMåÐDµt¸E±{´{ÐDÐDÑEÔEÐEr   r   c                ó*   — |                       ¦   «         S ©N)Úas_str©r   s    r   Ú__str__zDbDoc.__str__E   s   € Ø�{Š{‰}Œ}Ðr   c                ó*   — t          | j        ¦  «        S r-   )Úreprr'   r/   s    r   Ú__repr__zDbDoc.__repr__H   s   € Ý�D”MÑ"Ô"Ð"r   Úindexr   c                óD   — |dk    rt          d¦  «        ‚|| j        |<   d S )NÚ_idzCannot modify _id)r
   r'   )r   r4   r!   s      r   Ú__setitem__zDbDoc.__setitem__K   s,   € Ø�EŠ>ˆ>Ý"Ð#6Ñ7Ô7Ð7Ø$ˆŒ�eÑÐÐr   c                ó   — | j         |         S r-   ©r'   )r   r4   s     r   Ú__getitem__zDbDoc.__getitem__P   s   € ØŒ}˜UÔ#Ð#r   ÚitemÚboolc                ó   — || j         v S r-   r9   )r   r;   s     r   Ú__contains__zDbDoc.__contains__S   s   € Ø�t”}Ð$Ð$r   NÚdoc_idúOptional[str]c                óp   — | j                              ¦   «         }|r||d<   nd|v r|d= t          |¦  «        S )ae  Returns a new copy of a :class:`mysqlx.DbDoc` object containing the
        `doc_id` provided. If `doc_id` is not provided, it will be removed from
        new :class:`mysqlx.DbDoc` object.

        Args:
            doc_id (Optional[str]): Document ID

        Returns:
            mysqlx.DbDoc: A new instance of DbDoc containing the _id provided
        r6   )r'   Úcopyr    )r   r?   Únew_dicts      r   rB   z
DbDoc.copyV   sH   € ð ”=×%Ò%Ñ'Ô'ˆØð 	 Ø$ˆH�U‰OˆOØ�hÐÐØ˜�Ý�X‰ŒÐr   úKeysView[str]c                ó4   — | j                              ¦   «         S )zJReturns the keys.

        Returns:
            `list`: The keys.
        )r'   Úkeysr/   s    r   rF   z
DbDoc.keysh   s   € ð Œ}×!Ò!Ñ#Ô#Ð#r   c                óB   — t          j        | j        t          ¬¦  «        S )zÃSerialize :class:`mysqlx.DbDoc` to a JSON formatted ``str``.

        Returns:
            str: A JSON formatted ``str`` representation of the document.

        .. versionadded:: 8.0.16
        )Úcls)r   Údumpsr'   r   r/   s    r   r.   zDbDoc.as_strp   s   € õ Œz˜$œ-­_Ð=Ñ=Ô=Ð=r   )r!   r"   r   r#   )r   r   )r4   r   r!   r   r   r#   )r4   r   r   r   )r;   r   r   r<   r-   )r?   r@   r   r    )r   rD   )r   r   r   r   r+   r0   r3   r7   r:   r>   rB   rF   r.   r   r   r   r    r    3   sÛ   € € € € € ðð ðFð Fð Fð Fðð ð ð ð#ð #ð #ð #ð%ð %ð %ð %ð
$ð $ð $ð $ð%ð %ð %ð %ðð ð ð ð ð$$ð $ð $ð $ð>ð >ð >ð >ð >ð >r   r    )r   Ú
__future__r   r   Útypingr   r   r   r   r   Úerrorsr
   r   r   r    r   r   r   ú<module>rM      sÍ   ðð: #Ð "à "Ð "Ð "Ð "Ð "Ð "à €€€à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à $Ð $Ð $Ð $Ð $Ð $ð1ð 1ð 1ð 1ð 1�dÔ&ñ 1ô 1ð 1ðE>ð E>ð E>ð E>ð E>ñ E>ô E>ð E>ð E>ð E>r   