Ë
    /æjöG  ã                  ó6  — d Z ddlmZ ddlZddlZ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mZmZmZ ddlm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  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z( erddl)m*Z* ddl+m,Z, dZ- ed«      Z. eej^                  e&e(f¬«      edddddddddddœ
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"d„«       «       Z0 eej^                  e&e(f¬«      edddddddddddœ
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#d„«       «       Z0 eej^                  e&e(f¬«      	 d$dddddddddddœ
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d%d„«       Z0d&d„Z1 e e2«      Z3ejh                  dk  rd'd„Z5e5ejl                  _7        dddddœ	 	 	 	 	 	 	 	 	 	 	 d(d „Z8d)d!„Z9y)*z7Provide an enhanced dataclass that performs validation.é    )ÚannotationsN)ÚCallable)ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚNoReturnÚ	TypeGuardÚTypeVarÚoverload)Úwarn)Údataclass_transformé   )Ú_configÚ_decoratorsÚ_mock_val_serÚ_namespace_utilsÚ_typing_extra)Ú_dataclasses)Úgetattr_migration)Ú
ConfigDict)ÚPydanticUserError)ÚFieldÚ	FieldInfoÚPrivateAttr)ÚPydanticDataclass)ÚMappingNamespace)Ú	dataclassÚrebuild_dataclassÚ_T)Úfield_specifiersFT.©
ÚinitÚreprÚeqÚorderÚunsafe_hashÚfrozenÚconfigÚvalidate_on_initÚkw_onlyÚslotsc        
         ó   — y ©N© r"   s
             úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/pydantic/dataclasses.pyr   r      s   € ð ó    c       
         ó   — y r.   r/   )Ú_clsr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   s              r0   r   r   1   s   € ð "r1   c       
   	     óp   ‡‡‡‡‡‡‡	‡
— |du sJ d«       ‚|dusJ d«       ‚dˆˆˆˆ	ˆˆˆ
ˆfd„}| €|S  || «      S )ux	  !!! abstract "Usage Documentation"
        [`dataclasses`](../concepts/dataclasses.md)

    A decorator used to create a Pydantic-enhanced dataclass, similar to the standard Python `dataclass`,
    but with added validation.

    This decorator should be used similarly to the [`@dataclasses.dataclass`][dataclasses.dataclass] decorator.

    A Pydantic dataclass validates its inputs like a `BaseModel` does. Its
    [`ValidationError`][pydantic_core.ValidationError] includes each rejected value, while
    [Logfire](../integrations/logfire.md) can retain the complete validation input and surrounding trace
    context â€” see [Troubleshooting validation errors](../errors/troubleshooting.md).

    Args:
        _cls: The target `dataclass`.
        init: Included for signature compatibility with `dataclasses.dataclass`, and is passed through to
            `dataclasses.dataclass` when appropriate. If specified, must be set to `False`, as pydantic inserts its
            own  `__init__()` function.
        repr: A boolean indicating whether to include the field in the `__repr__()` output.
        eq: Determines if a `__eq__()` method should be generated for the class.
        order: Determines if comparison magic methods should be generated, such as `__lt__()`, but not `__eq__()`.
        unsafe_hash: Determines if a `__hash__()` method should be included in the class, as in `dataclasses.dataclass`.
        frozen: Determines if the generated class should be a 'frozen' `dataclass`, which does not allow its
            attributes to be modified after it has been initialized. If not set, the value from the provided `config` argument will be used (and will default to `False` otherwise).
        config: The Pydantic config to use for the `dataclass`.
        validate_on_init: A deprecated parameter included for backwards compatibility; in V2, all Pydantic dataclasses
            are validated on init.
        kw_only: Determines if `__init__()` method parameters must be specified by keyword only. Defaults to `False`.
        slots: Determines if the generated class should be a 'slots' `dataclass`, which does not allow the addition of
            new attributes after instantiation.

    Returns:
        A decorator that accepts a class as its argument and returns a Pydantic `dataclass`.

    Raises:
        AssertionError: Raised if `init` is not `False` or `validate_on_init` is `False`.
    Fz7pydantic.dataclasses.dataclass only supports init=Falsez-validate_on_init=False is no longer supportedc                ó|  •‡‡— ddl m}  || «      rt        d| j                  › d�d¬«      ‚| }t	        d„ | j
                  D «       «      }|s.‰�,t        | d	«      r t        d
| j                  › d�t        d¬«       ‰�‰nt        | d	d«      }t        j                  |«      }t        j                  j                  | d¬«      }|j                  |«       | j                   }t#        j$                  | «      rNd}| f}t'        | t(        «      rt(        | j*                     }	||	fz   }t-        j.                  | j                  |«      } ‰�/‰Š|j0                  r1t        d| j                  ›d�t        d¬«       n|j0                  xs dŠt3        j4                  | «      }
|
D ]@  }t        | |d«      }t7        |t8        «      sŒ!t;        | |t#        j<                  |«      «       ŒB t#        j>                  | «      5  tA        jB                  | d‰‰‰‰‰‰‰¬«	      } ddd«       |jD                  rp| jF                  ŠtI        jJ                  | jF                  «      dˆˆfd„«       }|jM                  d| «      | _#        ‰r"t        | d«      sdd„}dd„}|| _'        || _(        d| _)        || _*        || _        t        |dd«      }|jV                  | _+        tX        jZ                  dk\  r|�||_.        || _.        |j^                  | _/        ta        tb        «      | _2        d| _3        t#        jh                  | |d¬«       | S # 1 sw Y   �Œ"xY w)zÃCreate a Pydantic dataclass from a regular dataclass.

        Args:
            cls: The class to create the Pydantic dataclass from.

        Returns:
            A Pydantic dataclass.
        r   )Úis_model_classz(Cannot create a Pydantic dataclass from z" as it is already a Pydantic modelzdataclass-on-model)Úcodec              3  óF   K  — | ]  }t        j                  |«      –— Œ y ­wr.   )ÚdataclassesÚis_dataclass)Ú.0Úbases     r0   ú	<genexpr>z6dataclass.<locals>.create_dataclass.<locals>.<genexpr>�   s   è ø€ Ò ZÀD¤×!9Ñ!9¸$×!?Ñ Zùs   ‚!NÚ__pydantic_config__z[`config` is set via both the `dataclass` decorator and `__pydantic_config__` for dataclass zK. The `config` specification from `dataclass` decorator will take priority.é   )ÚcategoryÚ
stacklevelT)Úreplace_wrapped_methodszN`frozen` is set via both the `dataclass` decorator and `config` for dataclass zW.This is not recommended. The `frozen` specification on `dataclass` will take priority.F)r#   r$   r%   r&   r'   r(   r+   r,   c               ó<  •— ‰r
 ‰| ||«      S t        | «      }t        ||d «      }t        |t        «      r|j	                  | |«       y t        |t
        j                  «      r| j                  j                  ||«       y |j                  j                  | ||«       y r.   )ÚtypeÚgetattrÚ
isinstanceÚpropertyÚ__set__Ú	functoolsÚcached_propertyÚ__dict__Ú__setitem__Ú__pydantic_validator__Úvalidate_assignment)ÚinstanceÚnameÚvalueÚinst_clsÚattrÚfrozen_Úoriginal_setattrs        €€r0   Úvalidated_setattrz>dataclass.<locals>.create_dataclass.<locals>.validated_setattrÞ   s„   ø€ áÙ+¨H°d¸EÓBÐBÜ ›>�Ü˜x¨¨tÓ4�ä˜d¤HÔ-Ø—L‘L ¨5Õ1Ü ¤i×&?Ñ&?Ô@Ø×%Ñ%×1Ñ1°$¸Õ>à×3Ñ3×GÑGÈÐRVÐX]Õ^r1   Ú__setstate__c                óz   — t        j                  | «      D �cg c]  }t        | |j                  «      ‘Œ c}S c c}w r.   )r9   ÚfieldsrE   rP   )ÚselfÚfs     r0   Ú_dataclass_getstatez@dataclass.<locals>.create_dataclass.<locals>._dataclass_getstateù   s,   € Ü;F×;MÑ;MÈdÓ;SÖT°aœG D¨!¯&©&Õ1ÒTÐTùÒTs   ˜8c                ó˜   — t        t        j                  | «      |d¬«      D ]&  \  }}t        j	                  | |j
                  |«       Œ( y )NT)Ústrict)Úzipr9   rY   ÚobjectÚ__setattr__rP   )rZ   ÚstateÚfieldrQ   s       r0   Ú_dataclass_setstatez@dataclass.<locals>.create_dataclass.<locals>._dataclass_setstateü   sB   € Ü(+¬K×,>Ñ,>¸tÓ,DÀeÐTXÔ(Yò D™˜˜uÜ×*Ñ*¨4°·±¸UÕCñDr1   Ú__firstlineno__)é   é   )Úraise_errors)rO   r   rP   ÚstrrQ   r   ÚreturnÚNone)rZ   r   rj   ú	list[Any])rZ   r   rb   rl   rj   rk   )5Ú_internal._utilsr6   r   Ú__name__ÚanyÚ	__bases__Úhasattrr   ÚUserWarningrE   r   ÚConfigWrapperr   ÚDecoratorInfosÚbuildÚupdate_from_configÚ__doc__Ú_pydantic_dataclassesÚis_stdlib_dataclassÚ
issubclassr   Ú__parameters__ÚtypesÚ	new_classr(   r   Úsafe_get_annotationsrF   r   ÚsetattrÚas_dataclass_fieldÚpatch_base_fieldsr9   r   rN   ra   rI   ÚwrapsÚ__get__Ú__getstate__rW   Ú__is_pydantic_dataclass__Ú__pydantic_decorators__Ú
__module__ÚsysÚversion_infore   Ú__qualname__ÚclassmethodÚ_pydantic_fields_completeÚ__pydantic_fields_complete__Ú__pydantic_complete__Úcomplete_dataclass)Úclsr6   Úoriginal_clsÚhas_dataclass_baseÚconfig_dictÚconfig_wrapperÚ
decoratorsÚoriginal_docÚbasesÚgeneric_baseÚcls_annsÚ
field_nameÚfield_valuerV   r\   rd   ÚfirstlinenorT   rU   r)   r%   r(   r+   r&   r$   r,   r'   s                    @@€€€€€€€€r0   Úcreate_dataclassz#dataclass.<locals>.create_dataclassx   sH  ú€ õ 	5á˜#ÔÜ#Ø:¸3¿<¹<¸.ÐHjÐkØ)ôð ð
 ˆô !Ñ ZÈCÏMÉMÔ ZÓZÐÙ! fÐ&8¼WÀSÐJ_Ô=`ÜØmÐnq×nzÑnzÐm{ð |\ð ]ä$Øõ	ð !'Ð 2‘f¼ÀÐEZÐ\`Ó8aˆÜ ×.Ñ.¨{Ó;ˆÜ ×/Ñ/×5Ñ5°cÐSWÐ5ÓXˆ
Ø×%Ñ% nÔ5ð
 —{‘{ˆä ×4Ñ4°SÔ9ð  ˆLð
 �FˆEÜ˜#œwÔ'Ü& s×'9Ñ'9Ñ:�Ø  Ñ/�Ü—/‘/ #§,¡,°Ó6ˆCð ÐØˆGØ×$Ò$äØdÐeh×eqÑeqÐdtð umð mä(Ø ö	ð %×+Ñ+Ò4¨uˆGô !×5Ñ5°cÓ:ˆØ"ò 	`ˆJô " # z°4Ó8ˆKÜ˜+¤yÕ1Ü˜˜ZÔ)>×)QÑ)QÐR]Ó)^Õ_ð	`ô #×4Ñ4°SÓ9ñ 	Ü×'Ñ'ØàØØØØ'ØØØôˆC÷	ð ×-Ò-Ø"Ÿ™Ðä�_‰_˜SŸ_™_Ó-õ_ó .ð_ð 0×7Ñ7¸¸cÓBˆCŒOáœW S¨.Ô9óUóDð $7�Ô Ø#6�Ô ð )-ˆÔ%Ø&0ˆÔ#Ø"ˆŒä˜lÐ,=¸tÓDˆØ%×0Ñ0ˆŒÜ×Ñ˜wÒ&¨;Ð+Bð ,7ˆLÔ(Ø"-ˆCÔØ'×4Ñ4ˆÔÜ+6Ô7PÓ+QˆÔ(Ø$)ˆÔ!ô 	×0Ñ0°°nÐSXÕYØˆ
÷U	ñ 	ús   Ç2L1Ì1L;)r�   ú	type[Any]rj   útype[PydanticDataclass]r/   )r3   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r�   s     `````` `` r0   r   r   A   sQ   ÿ€ ðh �5‰=ÐSÐSÓSˆ=Ø 5Ñ(ÐYÐ*YÓYÐ(÷_ô _ðB  $˜|ÐÐGÑ1AÀ$Ó1GÐGr1   c                óV   — t        d„ | j                  j                  «       D «       «      S )z®Return whether the fields were successfully collected (i.e. type hints were successfully resolved).

    This is a private helper, not meant to be used outside Pydantic.
    c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr.   )Ú	_complete)r;   Ú
field_infos     r0   r=   z,_pydantic_fields_complete.<locals>.<genexpr>!  s   è ø€ ÒW¨
ˆz×#Õ#ÑWùs   ‚)ÚallÚ__pydantic_fields__Úvalues)r�   s    r0   rŒ   rŒ     s$   € ô
 ÑW°c×6MÑ6M×6TÑ6TÓ6VÔWÓWÐWr1   )rf   é   c                 ó   — t        d«      ‚)a9  This function does nothing but raise an error that is as similar as possible to what you'd get
        if you were to try calling `InitVar[int]()` without this monkeypatch. The whole purpose is just
        to ensure typing._type_check does not error if the type hint evaluates to `InitVar[<parameter>]`.
        z 'InitVar' object is not callable)Ú	TypeError)ÚargsÚkwargss     r0   Ú_call_initvarr¬   *  s   € ô
 Ð:Ó;Ð;r1   r?   )Úforcerh   Ú_parent_namespace_depthÚ_types_namespacec               óÊ  — |s| j                   rydD ]R  }|| j                  v sŒt        t        | |«      t        j
                  t        j                  f«      rŒGt        | |«       ŒT d| _         |�|}n#|dkD  rt        j                  |d¬«      xs i }ni }t        j                  |¬«      }t        j                  | t        j                  | j                   d¬«      ||d¬	«      S )
ax  Try to rebuild the pydantic-core schema for the dataclass.

    This may be necessary when one of the annotations is a ForwardRef which could not be resolved during
    the initial attempt to build the schema, and automatic rebuilding fails.

    This is analogous to `BaseModel.model_rebuild`.

    Args:
        cls: The class to rebuild the pydantic-core schema for.
        force: Whether to force the rebuilding of the schema, defaults to `False`.
        raise_errors: Whether to raise errors, defaults to `True`.
        _parent_namespace_depth: The depth level of the parent namespace, defaults to 2.
        _types_namespace: The types namespace, defaults to `None`.

    Returns:
        Returns `None` if the schema is already "complete" and rebuilding was not required.
        If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`.
    N)Ú__pydantic_core_schema__rM   Ú__pydantic_serializer__Fr   T)Úparent_depthr­   )Úparent_namespace)Úcheck)rh   Úns_resolverÚ_force_build)rŽ   rK   rF   rE   r   ÚMockCoreSchemaÚ
MockValSerÚdelattrr   Úparent_frame_namespacer   Ú
NsResolverrx   r�   r   rs   r>   )r�   r­   rh   r®   r¯   rS   Ú
rebuild_nsr¶   s           r0   r   r   4  så   € ñ4 �S×.Ò.Øàaò ˆØ�3—<‘<Ò¬
Ü�C˜Ó¤×!=Ñ!=¼}×?WÑ?WÐ Xõ)
ô �C˜Õðð !&€CÔàÐ#Ø%‰
Ø	  1Ò	$Ü"×9Ñ9ÐG^ÐfjÔkÒqÐoq‰
àˆ
ä"×-Ñ-Ø#ô€Kô !×3Ñ3ØÜ×Ñ˜c×5Ñ5¸UÔCØ!Øð
 ô
ð 
r1   c               ól   — 	 d| j                   v xr t        j                  | «      S # t        $ r Y yw xY w)z©Whether a class is a pydantic dataclass.

    Args:
        class_: The class.

    Returns:
        `True` if the class is a pydantic dataclass, `False` otherwise.
    r…   F)rK   r9   r:   ÚAttributeError)Úclass_s    r0   Úis_pydantic_dataclassrÁ   u  s9   € ðØ*¨f¯o©oÐ=ÒbÄ+×BZÑBZÐ[aÓBbÐbøÜò Ùðús   ‚$' §	3²3)r#   úLiteral[False]r$   Úboolr%   rÃ   r&   rÃ   r'   rÃ   r(   rÃ   r)   ú ConfigDict | type[object] | Noner*   úbool | Noner+   rÃ   r,   rÃ   rj   z-Callable[[type[_T]], type[PydanticDataclass]])r3   ztype[_T]r#   rÂ   r$   rÃ   r%   rÃ   r&   rÃ   r'   rÃ   r(   rÅ   r)   rÄ   r*   rÅ   r+   rÃ   r,   rÃ   rj   rŸ   r.   )r3   ztype[_T] | Noner#   rÂ   r$   rÃ   r%   rÃ   r&   rÃ   r'   rÃ   r(   rÅ   r)   rÄ   r*   rÅ   r+   rÃ   r,   rÃ   rj   zGCallable[[type[_T]], type[PydanticDataclass]] | type[PydanticDataclass])r�   rŸ   rj   rÃ   )rª   r   r«   r   rj   r	   )r�   rŸ   r­   rÃ   rh   rÃ   r®   Úintr¯   zMappingNamespace | Nonerj   rÅ   )rÀ   rž   rj   z"TypeGuard[type[PydanticDataclass]]):rw   Ú
__future__r   Ú_annotationsr9   rI   rˆ   r|   Úcollections.abcr   Útypingr   r   r   r   r	   r
   r   r   Úwarningsr   Útyping_extensionsr   Ú	_internalr   r   r   r   r   r   rx   Ú
_migrationr   r)   r   Úerrorsr   rY   r   r   r   Ú_internal._dataclassesr   Ú_internal._namespace_utilsr   Ú__all__r    rc   r   rŒ   rn   Ú__getattr__r‰   r¬   ÚInitVarÚ__call__r   rÁ   r/   r1   r0   ú<module>rÖ      sE  ðÙ =å 2ã Û Û 
Û Ý $ß _× _Ó _Ý å 1ç [Õ [Ý <Ý )Ý Ý %ß 1Ñ 1áÝ9Ý<à
*€áˆTƒ]€ñ  {×'8Ñ'8¸%ÀÐ&MÔNØ	ð !ØØØØØØ/3Ø$(ØØñà
ðð ðð 	ð	ð
 ðð ðð ðð -ðð "ðð ðð ðð 3òó 
ó Oðñ   {×'8Ñ'8¸%ÀÐ&MÔNØ	ð !ØØØØØØ/3Ø$(ØØñ"Ø
ð"ð ð"ð ð	"ð
 	ð"ð ð"ð ð"ð ð"ð -ð"ð "ð"ð ð"ð ð"ð ò"ó 
ó Oð"ñ  {×'8Ñ'8¸%ÀÐ&MÔNà ðWHð !ØØØØØØ/3Ø$(ØØñWHØ
ðWHð ðWHð ð	WHð
 	ðWHð ðWHð ðWHð ðWHð -ðWHð "ðWHð ðWHð ðWHð MòWHó OðWHótXñ   Ó)€à×Ñ�gÒó<ð $1€K×ÑÔ ð ØØ#$Ø04ñ>Ø	 ð>ð ð>ð ð	>ð
 !ð>ð .ð>ð ó>ôBr1   