
    h{                        S SK Jr  S SKrS SKJrJrJr  S SKJrJ	r	J
r
  S SKJr  SSKJr  \(       a  SS	KJr  SS
KJr   " S S5      r\" 5       rSS jrSS jr          SS jr S           SS jjrg)    )annotationsN)	Parameter	Signature	signature)TYPE_CHECKINGAnyCallable)PydanticUndefined   )is_valid_identifier   )ExtraValues	FieldInfoc                      \ rS rSrS rSrg)_HAS_DEFAULT_FACTORY_CLASS   c                    g)Nz	<factory> )selfs    O/var/www/html/env/lib/python3.13/site-packages/pydantic/_internal/_signature.py__repr__#_HAS_DEFAULT_FACTORY_CLASS.__repr__   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s    r   r   c                   [        UR                  [        5      (       a&  [        UR                  5      (       a  UR                  $ [        UR                  [        5      (       a&  [        UR                  5      (       a  UR                  $ U $ )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'      sj     *""C((-@AQAQ-R-R*--s338KJLgLg8h8h***r   c                V   SSK Jn  U R                  n[        X!5      (       a  U R                  nUS:X  a  [
        nUR                  nU[        L a4  UR                  [        L a  [        R                  nO[        R                  nU R                  U[        U R                  U5      US9$ U $ )zModify 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_defaultsr4   .   s     #MMM-++%%
 J  '''',,0AA#// &::}}!(A%**m(\fm  
 	
 Lr   c                   SSK Jn  [        U 5      R                  R	                  5       n0 nSnSnU" USS5       H  n	UR                  U	R                  5      (       aM  [        XR                     SS5      SL a  MA  U	R                  [        U	R                  XR                     5      S9n	U	R                  S	:X  a  U	R                  [        S
9n	U	R                  U	R                  L a  U	nM  XU	R                  '   M     U(       a  Un
UR                  5        H  u  p[        X5      nX;   d  X;   a  M  [        U5      (       d  U
(       a  UnOSnM:  UR!                  5       (       a  ["        R$                  nO UR&                  b  [(        nOUR*                  n[#        U["        R,                  UR/                  5       US9Xm'   M     US:X  a  SnU(       a  U(       a  S["        R0                  4S["        R                  4/nU Vs/ s H  nUR                  UR                  4PM     snU:X  a  SnOUR                  nUU;   a  US-  nUU;   a  M  UR                  US9UU'   U$ s  snf )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_)	itertoolsr6   r   
parametersvaluesgetr*   getattrr1   r'   r)   r   kindVAR_KEYWORDitemsr   is_requiredr   r.   r-   r0   r+   KEYWORD_ONLYrebuild_annotationPOSITIONAL_ONLY)r7   r,   validate_by_nameextrar6   present_paramsmerged_paramsvar_kw
use_var_kwr2   allow_namesr%   field
param_namer+   default_model_signaturepvar_kw_names                     r   _generate_signature_parametersrT   P   s3    !t_//668N*,MFJ40 ::ejj!!vjj)648EAMM'@VT^T^M_'`MaEu$MMSM1E::***F$)ejj! 1 &!'J2:EJ*j.I&z22!+J!%J  ""#//&&2.--(1&& 335	)M%+ "08 
* Y../Y**+#
 '55nQVVQVVn59PP&K !++K V#3K V#%+^^^%Ek" 6s   "I c                    [        XX#5      nU(       a.  UR                  5        VVs0 s H  u  pgU[        U5      _M     nnn[        [	        UR                  5       5      SS9$ s  snnf )aU  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)r=   return_annotation)rT   rC   r4   r   listr>   )r7   r,   rH   rI   is_dataclassrK   kvs           r   generate_pydantic_signaturer[      sb    & 34AQYMCPCVCVCXYCX413A66CXY]%9%9%; <PTUU Zs   A#)r%   r#   r&   r   returnr#   )r2   r   r\   r   )
r7   Callable[..., None]r,   dict[str, FieldInfo]rH   boolrI   ExtraValues | Noner\   zdict[str, Parameter])F)r7   r]   r,   r^   rH   r_   rI   r`   rX   r_   r\   r   )
__future__r   r/   inspectr   r   r   typingr   r   r	   pydantic_corer
   _utilsr   configr   r,   r   r   r0   r'   r4   rT   r[   r   r   r   <module>rg      s    "  3 3 / / + '$" 
 23 *DQ
Q Q Q 	Q
 Qr V
V V V 	V
 V Vr   