§
    9ˆtjú  ã                  óN  — d Z ddlmZ ddlmZ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mZ ddlmZ dd	lmZmZ dd
lmZmZ er5ddlmZ ddlmZ  edeef¬¦  «         G d„ dej        ¦  «        ¦   «         Znej        ZdZ  ed¦  «        Z! G d„ dee	e!         e¬¦  «        Z"dS )z%RootModel class and type definitions.é    )Úannotations)ÚcopyÚdeepcopy)ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚTypeVar)ÚPydanticUndefined)ÚSelfÚdataclass_transformé   )ÚPydanticUserError)Ú_model_constructionÚ_repr)Ú	BaseModelÚ_object_setattr)ÚField)ÚPrivateAttrF)Úkw_only_defaultÚfield_specifiersc                  ó   — e Zd ZdS )Ú_RootModelMetaclassN)Ú__name__Ú
__module__Ú__qualname__© ó    úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pydantic/root_model.pyr   r      s   € € € € € ØCFÀ3r   r   )Ú	RootModelÚRootModelRootTypec                  óÐ   ‡ — e Zd ZU dZdZdZdZded<   ˆ fd„Ze	fd0d	„Z
de
_        ed1d2ˆ fd„¦   «         Zd3d„Zd4d„Zd5d„Zd1d6d„Zerdddddddddddddœd7d+„Zd8ˆ fd-„Zd9d/„Zˆ xZS ):r    a»  !!! abstract "Usage Documentation"
        [`RootModel` and Custom Root Types](../concepts/models.md#rootmodel-and-custom-root-types)

    A Pydantic `BaseModel` for the root object of the model.

    Attributes:
        root: The root object of the model.
        __pydantic_root_model__: Whether the model is a RootModel.
        __pydantic_private__: Private fields in the model.
        __pydantic_extra__: Extra fields in the model.

    TNr!   Úrootc                ó”   •— | j                              d¦  «        }|�t          dd¬¦  «        ‚ t          ¦   «         j        di |¤Ž d S )NÚextraz<`RootModel` does not support setting `model_config['extra']`zroot-model-extra)Úcoder   )Úmodel_configÚgetr   ÚsuperÚ__init_subclass__)ÚclsÚkwargsr%   Ú	__class__s      €r   r*   zRootModel.__init_subclass__4   sa   ø€ ØÔ ×$Ò$ WÑ-Ô-ˆØÐÝ#ØNÐUgðñ ô ð ð 	"�‰ŒÔ!Ð+Ð+ FÐ+Ð+Ð+Ð+Ð+r   ÚreturnÚNonec               óz   — d}|r|t           urt          d¦  «        ‚|}| j                             || ¬¦  «         d S )NTz_"RootModel.__init__" accepts either a single positional argument or arbitrary keyword arguments)Úself_instance)r   Ú
ValueErrorÚ__pydantic_validator__Úvalidate_python)Úselfr#   ÚdataÚ__tracebackhide__s       r   Ú__init__zRootModel.__init__<   sZ   € Ø ÐØð 	ØÕ,Ð,Ð,Ý Øuñô ð ð ˆDØÔ#×3Ò3°DÈÐ3ÑMÔMÐMÐMÐMr   Ú_fields_setúset[str] | Noner   c                óJ   •— t          ¦   «                              ||¬¦  «        S )aS  Create a new model using the provided root object and update fields set.

        Args:
            root: The root object of the model.
            _fields_set: The set of fields to be updated.

        Returns:
            The new model.

        Raises:
            NotImplemented: If the model is not a subclass of `RootModel`.
        )r#   r9   )r)   Úmodel_construct)r+   r#   r9   r-   s      €r   r<   zRootModel.model_constructH   s"   ø€ õ ‰wŒw×&Ò&¨D¸kÐ&ÑJÔJÐJr   údict[Any, Any]c                ó    — | j         | j        dœS )N©Ú__dict__Ú__pydantic_fields_set__r?   ©r5   s    r   Ú__getstate__zRootModel.__getstate__X   s   € àœØ'+Ô'Cð
ð 
ð 	
r   Ústatec                ób   — t          | d|d         ¦  «         t          | d|d         ¦  «         d S )NrA   r@   )r   )r5   rD   s     r   Ú__setstate__zRootModel.__setstate__^   s8   € Ý˜Ð7¸Ð?XÔ9YÑZÔZÐZÝ˜˜j¨%°
Ô*;Ñ<Ô<Ð<Ð<Ð<r   c                ó  — t          | ¦  «        }|                     |¦  «        }t          | j        ¦  «        }t          | j        d         ¦  «        |d<   t	          |d|¦  «         t	          |dt          | j        ¦  «        ¦  «         |S )z$Returns a shallow copy of the model.r#   r@   rA   )ÚtypeÚ__new__r   r@   r   rA   )r5   r+   ÚmÚnew_dicts       r   Ú__copy__zRootModel.__copy__b   s{   € å�4‰jŒjˆØ�KŠK˜ÑÔˆÝ˜œÑ&Ô&ˆÝ ¤¨fÔ 5Ñ6Ô6ˆ�ÑÝ˜˜: xÑ0Ô0Ð0Ý˜Ð4µd¸4Ô;WÑ6XÔ6XÑYÔYÐYØˆr   Úmemoúdict[int, Any] | Nonec                óÞ   — t          | ¦  «        }|                     |¦  «        }t          |dt          | j        |¬¦  «        ¦  «         t          |dt          | j        ¦  «        ¦  «         |S )z!Returns a deep copy of the model.r@   )rM   rA   )rH   rI   r   r   r@   r   rA   )r5   rM   r+   rJ   s       r   Ú__deepcopy__zRootModel.__deepcopy__l   sd   € å�4‰jŒjˆØ�KŠK˜ÑÔˆÝ˜˜:¥x°´ÀDÐ'IÑ'IÔ'IÑJÔJÐJõ 	˜Ð4µd¸4Ô;WÑ6XÔ6XÑYÔYÐYØˆr   ÚpythonF)ÚmodeÚincludeÚexcludeÚcontextÚby_aliasÚexclude_unsetÚexclude_defaultsÚexclude_noneÚexclude_computed_fieldsÚ
round_tripÚwarningsÚserialize_as_anyrR   úLiteral['json', 'python'] | strrS   r   rT   rU   údict[str, Any] | NonerV   úbool | NonerW   ÚboolrX   rY   rZ   r[   r\   ú'bool | Literal['none', 'warn', 'error']r]   c               ó   — dS )a  This method is included just to get a more accurate return type for type checkers.
            It is included in this `if TYPE_CHECKING:` block since no override is actually necessary.

            See the documentation of `BaseModel.model_dump` for more details about the arguments.

            Generally, this method will have a return type of `RootModelRootType`, assuming that `RootModelRootType` is
            not a `BaseModel` subclass. If `RootModelRootType` is a `BaseModel` subclass, then the return
            type will likely be `dict[str, Any]`, as `model_dump` calls are recursive. The return type could
            even be something different, in the case of a custom serializer.
            Thus, `Any` is used here to catch all of these cases.
            Nr   )r5   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   s                r   Ú
model_dumpzRootModel.model_dumpx   s	   € ð6 ˆCr   Úotherc                óÊ   •— t          |t          ¦  «        st          S | j        d         j        |j        d         j        k    o t          ¦   «                              |¦  «        S ©Nr#   )Ú
isinstancer    ÚNotImplementedÚ__pydantic_fields__Ú
annotationr)   Ú__eq__)r5   re   r-   s     €r   rl   zRootModel.__eq__•   s[   ø€ Ý˜%¥Ñ+Ô+ð 	"Ý!Ð!ØÔ'¨Ô/Ô:¸eÔ>WØô?
ä
òð /å™œŸš¨Ñ.Ô.ð	/r   ú_repr.ReprArgsc              #  ó    K  — d| j         fV — d S rg   )r#   rB   s    r   Ú__repr_args__zRootModel.__repr_args__œ   s   è è € Ø�d”iÐÐÐÐÐÐr   )r#   r!   r.   r/   )N)r#   r!   r9   r:   r.   r   )r.   r=   )rD   r=   r.   r/   )r.   r   )rM   rN   r.   r   )rR   r^   rS   r   rT   r   rU   r_   rV   r`   rW   ra   rX   ra   rY   ra   rZ   ra   r[   ra   r\   rb   r]   ra   r.   r   )re   r   r.   ra   )r.   rm   )r   r   r   Ú__doc__Ú__pydantic_root_model__Ú__pydantic_private__Ú__pydantic_extra__Ú__annotations__r*   r   r8   Ú__pydantic_base_init__Úclassmethodr<   rC   rF   rL   rP   r   rd   rl   ro   Ú__classcell__)r-   s   @r   r    r        s›  ø€ € € € € € ðð ð #ÐØÐØÐàÐÐÑð,ð ,ð ,ð ,ð ,ð 5Fð Nð Nð Nð Nð Nð '+€HÔ#àðKð Kð Kð Kð Kð Kñ „[ðKð
ð 
ð 
ð 
ð=ð =ð =ð =ðð ð ð ðð ð ð ð ð ð ð
 5=ØØØ-1Ø$(Ø"'Ø%*Ø!&Ø,1Ø$Ø@DØ%*ð	ð 	ð 	ð 	ð 	ð 	ð:/ð /ð /ð /ð /ð /ð ð  ð  ð  ð  ð  ð  ð  r   r    )Ú	metaclassN)#rp   Ú
__future__r   Ú_annotationsr   r   Útypingr   r   r   r	   r
   Úpydantic_corer   Útyping_extensionsr   r   Ú r   Ú	_internalr   r   Úmainr   r   Úfieldsr   ÚPydanticModelFieldr   ÚPydanticModelPrivateAttrÚModelMetaclassr   Ú__all__r!   r    r   r   r   ú<module>r†      s«  ðØ +Ð +à 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à +Ð +Ð +Ð +Ð +Ð +Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,àð 
=Ø3Ð3Ð3Ð3Ð3Ð3Ø?Ð?Ð?Ð?Ð?Ð?ð
 Ð¨ÐBTÐVnÐAoÐpÑpÔpØFÐFÐFÐFÐFÐ1Ô@ÑFÔFñ qÔpØFÐFà-Ô<Ðà
€à�GÐ/Ñ0Ô0Ð ð} ð } ð } ð } ð } �	˜7Ð#4Ô5ÐATð } ñ } ô } ð } ð } ð } r   