Ë
    S>{i{  ã                  óä   — d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	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„Zy)é    )ÚannotationsN)Ú	ParameterÚ	SignatureÚ	signature)ÚTYPE_CHECKINGÚAnyÚCallable)ÚPydanticUndefinedé   )Úis_valid_identifieré   )ÚExtraValues©Ú	FieldInfoc                  ó   — e Zd Zd„ Zy)Ú_HAS_DEFAULT_FACTORY_CLASSc                 ó   — y)Nz	<factory>© )Úselfs    ú[/var/www/skyplay_api_hub/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                óò   — t        |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.

    Returns:
        The correct name to use when generating a signature.
    )Ú
isinstanceÚaliasÚstrr   Úvalidation_alias)Ú
field_nameÚ
field_infos     r   Ú_field_name_for_signaturer#      s^   € ô �*×"Ñ"¤CÔ(Ô-@À×AQÑAQÔ-RØ×ÑÐÜ�*×-Ñ-¬sÔ3Ô8KÈJ×LgÑLgÔ8hØ×*Ñ*Ð*àÐr   c                óN  — ddl m} | j                  }t        ||«      r†| j                  }|dk(  rt
        }|j                  }|t        u r3|j                  t        u rt        j                  }nt        j                  }| j                  |t        | j                  |«      |¬«      S | S )zÝModify the signature for a parameter in a dataclass where the default value is a FieldInfo instance.

    Args:
        param (Parameter): The parameter

    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   Úparam_defaultr%   r'   s        r   Ú_process_param_defaultsr0   .   s    € õ #à—M‘M€MÜ�- Ô+Ø×%Ñ%ˆ
ð ˜ÒÜˆJð  ×'Ñ'ˆØÔ'Ñ'Ø×,Ñ,Ô0AÑAÜ#Ÿ/™/‘ô &×:Ñ:�Ø�}‰}Ø!Ô(AÀ%Ç*Á*ÈmÓ(\Ðfmð ó 
ð 	
ð €Lr   c                óx  — ddl m} t        | «      j                  j	                  «       }i }d}d} ||dd«      D ]¼  }	|j                  |	j                  «      rPt        ||	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|
r|}n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Ú_)Ú	itertoolsr2   r   Ú
parametersÚvaluesÚgetr&   Úgetattrr-   r#   r%   r   ÚkindÚVAR_KEYWORDÚitemsr   Úis_requiredr   r*   r)   r,   r'   ÚKEYWORD_ONLYÚrebuild_annotationÚPOSITIONAL_ONLY)r3   r(   Úvalidate_by_nameÚextrar2   Úpresent_paramsÚmerged_paramsÚvar_kwÚ
use_var_kwr.   Úallow_namesr!   ÚfieldÚ
param_namer'   Údefault_model_signatureÚpÚvar_kw_names                     r   Ú_generate_signature_parametersrP   P   sA  € õ !ä˜t“_×/Ñ/×6Ñ6Ó8€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_Ó'`�MÓaˆEØ×Ñ˜uÒ$Ø—M‘M¬S�MÓ1ˆEØ�:‰:˜×*Ñ*Ñ*ØˆFØØ$)ˆ�e—j‘jÒ!ð*ñ Ø&ˆØ!'§¡£ò 	ÑˆJ˜ä2°:¸uÓEˆJà˜]Ñ*¨j¸MÑ.IØä& zÔ2ÙØ!+‘Jà!%�JØà× Ñ Ô"Ü#Ÿ/™/‘Ø×&Ñ&Ð2ä.‘àŸ-™-�Ü(1ØÜ×&Ñ&Ø ×3Ñ3Ó5Øô	)ˆM˜*Ò%ð+	ð8 �ÒØˆ
á‘*ð ”Y×.Ñ.Ð/Ø”Y×*Ñ*Ð+ð#
Ðð '5Ö5 ˆQ�V‰V�Q—V‘VÒÒ5Ð9PÒPà&‰Kð !Ÿ+™+ˆKð ˜VÑ#Ø˜3ÑˆKð ˜VÒ#à%+§^¡^¸ ^Ó%Eˆ�kÑ"àÐùò 6s   ÇH7c                óÎ   — t        | |||«      }|r,|j                  «       D ��ci c]  \  }}|t        |«      “Œ }}}t        t	        |j                  «       «      d¬«      S c c}}w )ay  Generate signature for a pydantic BaseModel or dataclass.

    Args:
        init: The class init.
        fields: The model fields.
        validate_by_name: The `validate_by_name` 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)r9   Úreturn_annotation)rP   r?   r0   r   Úlistr:   )r3   r(   rD   rE   Úis_dataclassrG   ÚkÚvs           r   Úgenerate_pydantic_signaturerW   ¤   sf   € ô& 3°4¸ÐAQÐSXÓY€MáØCP×CVÑCVÓCX×Y¹4¸1¸a˜Ô3°AÓ6Ñ6ÐYˆÑYä¤ ]×%9Ñ%9Ó%;Ó <ÐPTÔUÐUùó Zs   ¤A!)r!   r   r"   r   Úreturnr   )r.   r   rX   r   )
r3   úCallable[..., None]r(   údict[str, FieldInfo]rD   ÚboolrE   úExtraValues | NonerX   zdict[str, Parameter])F)r3   rY   r(   rZ   rD   r[   rE   r\   rT   r[   rX   r   )Ú
__future__r   r+   Úinspectr   r   r   Útypingr   r   r	   Úpydantic_corer
   Ú_utilsr   Úconfigr   r(   r   r   r,   r#   r0   rP   rW   r   r   r   ú<module>rc      sÉ   ðÝ "ã ß 3Ñ 3ß /Ñ /å +å 'áÝ$Ý"÷ñ ñ
 2Ó3Ð óó*ðDQØ
ðQà ðQð ðQð ð	Qð
 óQðr ðVØ
ðVà ðVð ðVð ð	Vð
 ðVð ôVr   