
    5j|                        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  SSKJr  \(       a  S	S
KJ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   )ConfigWrapper)is_valid_identifier   	FieldInfoc                   [        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     \/root/lseg-credit/backend/venv/lib/python3.13/site-packages/pydantic/_internal/_signature.py_field_name_for_signaturer      sj     *""C((-@AQAQ-R-R*--s338KJLgLg8h8h***    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_defaultsr'   %   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R                  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  0 OSUR%                  SS90n['        U[&        R(                  4SUR+                  5       0UD6X\'   M     UR,                  S:X  a  SnU(       a  U(       a  S[&        R.                  4S[&        R                  4/nU Vs/ s H  oR                  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   )call_default_factoryr   allowselfdata
extra_data_)	itertoolsr)   r   
parametersvaluesgetr   getattrr$   r   r   r   kindVAR_KEYWORDpopulate_by_nameitemsr   is_requiredget_defaultr   KEYWORD_ONLYrebuild_annotationextraPOSITIONAL_ONLY)r*   r   config_wrapperr)   present_paramsmerged_paramsvar_kw
use_var_kwr%   allow_namesr   field
param_namekwargsdefault_model_signaturepvar_kw_names                    r   _generate_signature_parametersrL   G   s=    !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 $55!'J2:EJ*j.I&z22!+J!%J ,,..RY@Q@Qgl@Q@m4nF(1I22)?D?W?W?Y)]c)M% "0& w&
* Y../Y**+#
 '55nVVQVVn59PP&K !++K V#3K V#%+^^^%Ek" 6s   :!Ic                    [        XU5      nU(       a.  UR                  5        VVs0 s H  u  pVU[        U5      _M     nnn[        [	        UR                  5       5      SS9$ s  snnf )a  Generate signature for a pydantic BaseModel or dataclass.

Args:
    init: The class init.
    fields: The model fields.
    config_wrapper: The config wrapper instance.
    is_dataclass: Whether the model is a dataclass.

Returns:
    The dataclass/BaseModel subclass signature.
N)r2   return_annotation)rL   r9   r'   r   listr3   )r*   r   r@   is_dataclassrB   kvs          r   generate_pydantic_signaturerS      sa     34PMCPCVCVCXYCX413A66CXY]%9%9%; <PTUU Zs   A#)r   r   r   r   returnr   )r%   r   rT   r   )r*   Callable[..., None]r   dict[str, FieldInfo]r@   r   rT   zdict[str, Parameter])F)
r*   rU   r   rV   r@   r   rP   boolrT   r   )
__future__r   r"   inspectr   r   r   typingr   r   r	   pydantic_corer
   _configr   _utilsr   r   r   r   r'   rL   rS    r   r   <module>r_      s    "  3 3 / / + " '"*DG
G G "G 	GV rwV
V';VMZVjnVVr   