Ë
    /æjç  ã                  óö   — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ ddlmZ dd	lmZ e	rd
dlmZ d
dlmZ  G d„ d«      Z e«       Zdd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )ÚannotationsN)ÚCallable)Ú	ParameterÚ	Signature)ÚTYPE_CHECKINGÚAny)ÚPydanticUndefinedé   )Úsignature_no_eval)Úis_valid_identifieré   )ÚExtraValues©Ú	FieldInfoc                  ó   — e Zd Zd„ Zy)Ú_HAS_DEFAULT_FACTORY_CLASSc                 ó   — y)Nz	<factory>© )Úselfs    ú`/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/pydantic/_internal/_signature.pyÚ__repr__z#_HAS_DEFAULT_FACTORY_CLASS.__repr__   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   „ ór   r   c                óö   — |rvt        |j                  t        «      r!t        |j                  «      r|j                  S t        |j                  t        «      r!t        |j                  «      r|j                  S | S )a  Extract the correct name to use for the field when generating a signature.

    Assuming the field has a valid alias, this will return the alias. Otherwise, it will return the field name.
    First priority is given to the alias, then the validation_alias, then the field name.

    Args:
        field_name: The name of the field
        field_info: The corresponding FieldInfo object.
        validate_by_alias: The `validate_by_alias` value of the config.

    Returns:
        The correct name to use when generating a signature.
    )Ú
isinstanceÚaliasÚstrr   Úvalidation_alias)Ú
field_nameÚ
field_infoÚvalidate_by_aliass      r   Ú_field_name_for_signaturer$      sb   € ñ Ü�j×&Ñ&¬Ô,Ô1DÀZ×EUÑEUÔ1VØ×#Ñ#Ð#Ü�j×1Ñ1´3Ô7Ô<OÐPZ×PkÑPkÔ<lØ×.Ñ.Ð.àÐr   c                óD  — ddl m} | j                  }t        ||«      r�| j                  }|dk(  rt
        }|j                  }|t        u r-|j                  €t        j                  }nt        j                  }| j                  |t        | j                  ||«      |¬«      S | S )a%  Modify the signature for a parameter in a dataclass where the default value is a FieldInfo instance.

    Args:
        param (Parameter): The parameter
        validate_by_alias: The `validate_by_alias` value of the config.

    Returns:
        Parameter: The custom processed parameter
    r   r   r   )Ú
annotationÚnameÚdefault)Úfieldsr   r(   r   r&   r   r	   Údefault_factoryr   ÚemptyÚdataclassesÚ_HAS_DEFAULT_FACTORYÚreplacer$   r'   )Úparamr#   r   Úparam_defaultr&   r(   s         r   Ú_process_param_defaultsr1   2   s    € õ #à—M‘M€MÜ�- Ô+Ø×%Ñ%ˆ
ð ˜ÒÜˆJð  ×'Ñ'ˆØÔ'Ñ'Ø×,Ñ,Ð4Ü#Ÿ/™/‘ô &×:Ñ:�Ø�}‰}Ø!Ü*¨5¯:©:°}ÐFWÓXØð ó 
ð 	
ð
 €Lr   c                ón  — ddl m} t        | «      j                  j	                  «       }i }d}d} ||dd«      D ]½  }	|j                  |	j                  «      rQt        ||	j                     dd«      du rŒ;|	j                  t        |	j                  ||	j                     |«      ¬«      }	|	j                  d	k(  r|	j                  t        ¬
«      }	|	j                  |	j                  u r|	}Œ¯|	||	j                  <   Œ¿ |rª|j                  «       D ]—  \  }
}t        |
||«      }|
|v s||v rŒt        |«      sd}Œ*|j!                  «       rt"        j$                  }n|j&                  �t(        }n|j*                  }t#        |t"        j,                  |j/                  «       |¬«      ||<   Œ™ |dk(  rd}|r�|rdt"        j0                  fdt"        j                  fg}|D �cg c]  }|j                  |j                  f‘Œ c}|k(  rd}n|j                  }||v r
|dz  }||v rŒ
|j                  |¬«      ||<   |S c c}w )zaGenerate a mapping of parameter names to Parameter objects for a pydantic BaseModel or dataclass.r   )ÚisliceNFr
   ÚinitT)r'   r   )r&   )r&   r(   Úallowr   ÚdataÚ
extra_dataÚ_)Ú	itertoolsr3   r   Ú
parametersÚvaluesÚgetr'   Úgetattrr.   r$   r&   r   ÚkindÚVAR_KEYWORDÚitemsr   Úis_requiredr   r+   r*   r-   r(   ÚKEYWORD_ONLYÚrebuild_annotationÚPOSITIONAL_ONLY)r4   r)   Úextrar#   r3   Úpresent_paramsÚmerged_paramsÚvar_kwÚ
use_var_kwr/   r!   ÚfieldÚ
param_namer(   Údefault_model_signatureÚpÚvar_kw_names                    r   Ú_generate_signature_parametersrO   W   s;  € õ !ä& tÓ,×7Ñ7×>Ñ>Ó@€NØ*,€MØ€FØ€Já˜¨¨4Ó0ò *ˆð �:‰:�e—j‘jÔ!ä�v˜eŸj™jÑ)¨6°4Ó8¸EÑAØØ—M‘MÔ'@ÀÇÁÈVÐTY×T^ÑT^ÑM_ÐarÓ's�MÓtˆEØ×Ñ˜uÒ$Ø—M‘M¬S�MÓ1ˆEØ�:‰:˜×*Ñ*Ñ*ØˆFØØ$)ˆ�e—j‘jÒ!ð*ñ Ø!'§¡£ò 	ÑˆJ˜ä2°:¸uÐFWÓXˆJà˜]Ñ*¨j¸MÑ.IØä& zÔ2à!�
Øà× Ñ Ô"Ü#Ÿ/™/‘Ø×&Ñ&Ð2ä.‘àŸ-™-�Ü(1ØÜ×&Ñ&Ø ×3Ñ3Ó5Øô	)ˆM˜*Ò%ð'	ð4 �ÒØˆ
á‘*ð ”Y×.Ñ.Ð/Ø”Y×*Ñ*Ð+ð#
Ðð '5Ö5 ˆQ�V‰V�Q—V‘VÒÒ5Ð9PÒPà&‰Kð !Ÿ+™+ˆKð ˜VÑ#Ø˜3ÑˆKð ˜VÒ#à%+§^¡^¸ ^Ó%Eˆ�kÑ"àÐùò 6s   ÇH2F)Úis_dataclassc           	     óÐ   — t        | |||«      }|r-|j                  «       D ��ci c]  \  }}|t        ||«      “Œ }}}t        t	        |j                  «       «      d¬«      S c c}}w )a{  Generate signature for a pydantic BaseModel or dataclass.

    Args:
        init: The class init.
        fields: The model fields.
        validate_by_alias: The `validate_by_alias` value of the config.
        extra: The `extra` value of the config.
        is_dataclass: Whether the model is a dataclass.

    Returns:
        The dataclass/BaseModel subclass signature.
    N)r:   Úreturn_annotation)rO   r@   r1   r   Úlistr;   )r4   r)   r#   rE   rP   rG   ÚkÚvs           r   Úgenerate_pydantic_signaturerV   ¨   si   € ô( 3°4¸ÀÐHYÓZ€MáØVc×ViÑViÓVk×lÉdÈaÐQR˜Ô3°AÐ7HÓIÑIÐlˆÑlä¤ ]×%9Ñ%9Ó%;Ó <ÐPTÔUÐUùó ms   ¤A")r!   r   r"   r   r#   ÚboolÚreturnr   )r/   r   r#   rW   rX   r   )
r4   úCallable[..., None]r)   údict[str, FieldInfo]rE   úExtraValues | Noner#   rW   rX   zdict[str, Parameter])r4   rY   r)   rZ   r#   rW   rE   r[   rP   rW   rX   r   )Ú
__future__r   r,   Úcollections.abcr   Úinspectr   r   Útypingr   r   Úpydantic_corer	   Ú_typing_extrar   Ú_utilsr   Úconfigr   r)   r   r   r-   r$   r1   rO   rV   r   r   r   ú<module>rd      sË   ðÝ "ã Ý $ß (ß %å +å ,Ý 'áÝ$Ý"÷ñ ñ
 2Ó3Ð óó."ðJNØ
ðNà ðNð ðNð ð	Nð
 óNðn ñVà
ðVð !ðVð ð	Vð
 ðVð ðVð ôVr   