§
    Ë! h#  ã                  óŠ  — d Z ddlmZ ddlZddlZddlZddlmZm	Z	 ddlm
Z
mZ ddl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 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" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ej+        r'ddl,m-Z. ddl/m0Z0 ddl1m2Z2  G d„ de.ej3        ¦  «        Z4neZ5	 	 d/d0d"„Z6d#dd$d%œd1d+„Z7d2d.„Z8dS )3z0Private logic for creating pydantic dataclasses.é    )ÚannotationsN)ÚpartialÚwraps)ÚAnyÚClassVar)Ú
ArgsKwargsÚSchemaSerializerÚSchemaValidatorÚcore_schema)Ú	TypeGuardé   )ÚPydanticUndefinedAnnotation)ÚPluggableSchemaValidatorÚcreate_schema_validator)ÚPydanticDeprecatedSince20é   )Ú_configÚ_decorators)Úcollect_dataclass_fields)ÚGenerateSchemaÚInvalidSchemaError)Úget_standard_typevars_map)Úset_dataclass_mocks)Ú
NsResolver)Úgenerate_pydantic_signature)ÚLazyClassAttribute)ÚDataclassInstance)Ú
ConfigDict)Ú	FieldInfoc                  ór   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   edd„¦   «         ZdS )ÚPydanticDataclassai  A protocol containing attributes only available once a class has been decorated as a Pydantic dataclass.

        Attributes:
            __pydantic_config__: Pydantic-specific configuration settings for the dataclass.
            __pydantic_complete__: Whether dataclass building is completed, or if there are still undefined fields.
            __pydantic_core_schema__: The pydantic-core schema used to build the SchemaValidator and SchemaSerializer.
            __pydantic_decorators__: Metadata containing the decorators defined on the dataclass.
            __pydantic_fields__: Metadata about the fields defined on the dataclass.
            __pydantic_serializer__: The pydantic-core SchemaSerializer used to dump instances of the dataclass.
            __pydantic_validator__: The pydantic-core SchemaValidator used to validate instances of the dataclass.
        zClassVar[ConfigDict]Ú__pydantic_config__zClassVar[bool]Ú__pydantic_complete__z ClassVar[core_schema.CoreSchema]Ú__pydantic_core_schema__z$ClassVar[_decorators.DecoratorInfos]Ú__pydantic_decorators__zClassVar[dict[str, FieldInfo]]Ú__pydantic_fields__zClassVar[SchemaSerializer]Ú__pydantic_serializer__z4ClassVar[SchemaValidator | PluggableSchemaValidator]Ú__pydantic_validator__ÚreturnÚboolc                ó   — d S ©N© )Úclss    úYc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pydantic/_internal/_dataclasses.pyÚ__pydantic_fields_complete__z.PydanticDataclass.__pydantic_fields_complete__:   s   € Ø7:°só    N)r)   r*   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__Úclassmethodr0   r-   r1   r/   r!   r!   %   sˆ   € € € € € € ð
	ð 
	ð 	2Ð1Ð1Ñ1Ø-Ð-Ð-Ñ-ØBÐBÐBÑBØEÐEÐEÑEØ;Ð;Ð;Ñ;Ø;Ð;Ð;Ñ;ØTÐTÐTÑTà	Ø:Ð:Ð:ñ 
ŒØ:Ð:Ð:r1   r!   r.   útype[StandardDataclass]Úns_resolverúNsResolver | NoneÚconfig_wrapperú_config.ConfigWrapper | Noner)   ÚNonec                óX   — t          | ¦  «        }t          | |||¬¦  «        }|| _        dS )zîCollect and set `cls.__pydantic_fields__`.

    Args:
        cls: The class.
        ns_resolver: Namespace resolver to use when getting dataclass annotations.
        config_wrapper: The config wrapper instance, defaults to `None`.
    )r9   Útypevars_mapr;   N)r   r   r&   )r.   r9   r;   r?   Úfieldss        r/   Úset_dataclass_fieldsrA   C   s?   € õ -¨SÑ1Ô1€LÝ%Ø˜°<ÐP^ðñ ô €Fð %€CÔÐÐr1   TF)Úraise_errorsr9   Ú_force_buildú	type[Any]ú_config.ConfigWrapperrB   r*   rC   c               óL  ‡— | j         }dd„}| j        › d	�|_        || _         |j        | _        t	          | ||¬
¦  «         |s|j        rt          | ¦  «         dS t          | d¦  «        rt          j	        dt          ¦  «         t          | ¦  «        }t          |||¬¦  «        }t          dt          t          || j        |j        |j        d¬¦  «        ¦  «        | _        	 |                     | ¦  «        }	n4# t*          $ r'}
|r‚ t          | d|
j        › d�¦  «         Y d}
~
dS d}
~
ww xY w|                     | j        ¬¦  «        }	 |                     |	¦  «        }	n # t4          $ r t          | ¦  «         Y dS w xY wt7          j        d| ¦  «        } |	| _        t=          |	| | j        | j        d||j         ¦  «        x| _!        ŠtE          |	|¦  «        | _#        |j$        r;tK          | j&        ¦  «        dˆfd„¦   «         }| '                    d| ¦  «        | _&        d| _(        dS )a†  Finish building a pydantic dataclass.

    This logic is called on a class which has already been wrapped in `dataclasses.dataclass()`.

    This is somewhat analogous to `pydantic._internal._model_construction.complete_model_class`.

    Args:
        cls: The class.
        config_wrapper: The config wrapper instance.
        raise_errors: Whether to raise errors, defaults to `True`.
        ns_resolver: The namespace resolver instance to use when collecting dataclass fields
            and during schema building.
        _force_build: Whether to force building the dataclass, no matter if
            [`defer_build`][pydantic.config.ConfigDict.defer_build] is set.

    Returns:
        `True` if building a pydantic dataclass is successfully completed, `False` otherwise.

    Raises:
        PydanticUndefinedAnnotation: If `raise_error` is `True` and there is an undefined annotations.
    Ú__dataclass_self__r!   Úargsr   Úkwargsr)   r=   c                ób   — d}| }|j                              t          ||¦  «        |¬¦  «         d S )NT)Úself_instance)r(   Úvalidate_pythonr   )rG   rH   rI   Ú__tracebackhide__Úss        r/   Ú__init__z$complete_dataclass.<locals>.__init__x   s:   € Ø ÐØˆØ	Ô ×0Ò0µ¸DÀ&Ñ1IÔ1IÐYZÐ0Ñ[Ô[Ð[Ð[Ð[r1   z	.__init__)r;   FÚ__post_init_post_parse__zVSupport for `__post_init_post_parse__` has been dropped, the method will not be called)r9   r?   Ú__signature__T)Úinitr@   Úvalidate_by_nameÚextraÚis_dataclassú`N)Útitleztype[PydanticDataclass]Ú	dataclassÚinstanceÚfieldÚstrÚvaluec               ó6   •— ‰                      | ||¦  «         d S r,   )Úvalidate_assignment)rY   rZ   r\   Ú	validators      €r/   Úvalidated_setattrz-complete_dataclass.<locals>.validated_setattrÂ   s!   ø€ à×)Ò)¨(°E¸5ÑAÔAÐAÐAÐAr1   )rG   r!   rH   r   rI   r   r)   r=   )rY   r   rZ   r[   r\   r[   r)   r=   ))rO   r4   Úconfig_dictr"   rA   Údefer_buildr   ÚhasattrÚwarningsÚwarnÚDeprecationWarningr   r   r   r   r   r&   rS   rT   rQ   Úgenerate_schemar   ÚnameÚcore_configr2   Úclean_schemar   ÚtypingÚcastr$   r   r3   Úplugin_settingsr(   r	   r'   r^   r   Ú__setattr__Ú__get__r#   )r.   r;   rB   r9   rC   Úoriginal_initrO   r?   Ú
gen_schemaÚschemaÚeri   r`   r_   s                @r/   Úcomplete_dataclassrt   W   sÁ  ø€ ð: ”L€Mð\ð \ð \ð \ð
  #Ô/Ð:Ð:Ð:€HÔà€C„LØ,Ô8€CÔå˜˜k¸.ÐIÑIÔIÐIàð ˜NÔ6ð Ý˜CÑ Ô Ð ØˆuåˆsÐ.Ñ/Ô/ð 
ÝŒØdÕfxñ	
ô 	
ð 	
õ -¨SÑ1Ô1€LÝØØØ!ðñ ô €Jõ +ØÝÝ'ð ØÔ*Ø+Ô<Ø Ô&Øð		
ñ 		
ô 		
ñô €CÔðØ×+Ò+¨CÑ0Ô0ˆˆøÝ&ð ð ð Øð 	ØÝ˜C  Q¤V   Ñ/Ô/Ð/Øˆuˆuˆuˆuˆuøøøøð	øøøð !×,Ò,°3´<Ð,Ñ@Ô@€KðØ×(Ò(¨Ñ0Ô0ˆˆøÝð ð ð Ý˜CÑ Ô Ð Øˆuˆuðøøøõ Œ+Ð/°Ñ
5Ô
5€Cð $*€CÔ Ý-DØ��S”^ SÔ%5°{ÀKÐQ_ÔQoñ.ô .ð €CÔ õ #3°6¸;Ñ"GÔ"G€CÔàÔ)ð ?å	ˆsŒÑ	Ô	ð	Bð 	Bð 	Bð 	Bð 	Bñ 
 Ô	ð	Bð ,×3Ò3°D¸#Ñ>Ô>ˆŒà $€CÔØˆ4s*   Ã#C9 Ã9
D*ÄD%Ä%D*Å	E ÅE<Å;E<Ú_clsú"TypeGuard[type[StandardDataclass]]c           	     óÒ   — t          j        | ¦  «        oSt          | d¦  «         oBt          | j        ¦  «                             t          t          | di ¦  «        ¦  «        ¦  «        S )aB  Returns True if a class is a stdlib dataclass and *not* a pydantic dataclass.

    We check that
    - `_cls` is a dataclass
    - `_cls` does not inherit from a processed pydantic dataclass (and thus have a `__pydantic_validator__`)
    - `_cls` does not have any annotations that are not dataclass fields
    e.g.
    ```python
    import dataclasses

    import pydantic.dataclasses

    @dataclasses.dataclass
    class A:
        x: int

    @pydantic.dataclasses.dataclass
    class B(A):
        y: int
    ```
    In this case, when we first check `B`, we make an extra check and look at the annotations ('y'),
    which won't be a superset of all the dataclass fields (only the stdlib fields i.e. 'x')

    Args:
        cls: The class.

    Returns:
        `True` if the class is a stdlib dataclass, `False` otherwise.
    r(   r6   )ÚdataclassesrU   rc   ÚsetÚ__dataclass_fields__Ú
issupersetÚgetattr)ru   s    r/   Úis_builtin_dataclassr}   Ì   sf   € õ> 	Ô  Ñ&Ô&ð 	aÝ˜Ð6Ñ7Ô7Ð7ð	aå�Ô)Ñ*Ô*×5Ò5µc½'À$ÐHYÐ[]Ñ:^Ô:^Ñ6_Ô6_Ñ`Ô`ðr1   )NN)r.   r8   r9   r:   r;   r<   r)   r=   )r.   rD   r;   rE   rB   r*   r9   r:   rC   r*   r)   r*   )ru   rD   r)   rv   )9r5   Ú
__future__r   Ú_annotationsrx   rk   rd   Ú	functoolsr   r   r   r   Úpydantic_corer   r	   r
   r   Útyping_extensionsr   Úerrorsr   Úplugin._schema_validatorr   r   r   Ú r   r   Ú_fieldsr   Ú_generate_schemar   r   Ú	_genericsr   Ú_mock_val_serr   Ú_namespace_utilsr   Ú
_signaturer   Ú_utilsr   ÚTYPE_CHECKINGÚ	_typeshedr   ÚStandardDataclassÚconfigr   r@   r   ÚProtocolr!   rf   rA   rt   r}   r-   r1   r/   ú<module>r’      s  ðØ 6Ð 6à 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &à	Ôð !3Ø@Ð@Ð@Ð@Ð@Ð@à#Ð#Ð#Ð#Ð#Ð#Ø"Ð"Ð"Ð"Ð"Ð"ð;ð ;ð ;ð ;ð ;Ð-¨v¬ñ ;ô ;ð ;ð ;ð6 3Ðð
 &*Ø37ð%ð %ð %ð %ð %ð0 Ø%)Øðrð rð rð rð rð rðj"ð "ð "ð "ð "ð "r1   