fL i{ddlmZddlZddlmZmZmZddlmZm Z m Z ddl m Z ddl mZer dd lmZdd lmZGd d ZeZdd ZddZ ddZ d ddZy)) annotationsN) Parameter Signature signature) TYPE_CHECKINGAnyCallable)PydanticUndefined)is_valid_identifier) ExtraValues FieldInfoceZdZdZy)_HAS_DEFAULT_FACTORY_CLASScy)Nz )selfs c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pydantic/_internal/_signature.py__repr__z#_HAS_DEFAULT_FACTORY_CLASS.__repr__sN)__name__ __module__ __qualname__rrrrrrsrrct|jtr!t|jr |jSt|jtr!t|jr |jS|S)aExtract 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. ) isinstancealiasstrr validation_alias) field_name field_infos r_field_name_for_signaturer#s^*""C(-@AQAQ-R*--s38KJLgLg8h*** rcNddlm}|j}t||r|j}|dk(rt }|j}|t ur3|jt urtj}ntj}|j|t|j||S|S)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 rr) annotationnamedefault)fieldsrr'rr%rr default_factoryrempty dataclasses_HAS_DEFAULT_FACTORYreplacer#r&)paramr param_defaultr%r's r_process_param_defaultsr0.s#MMM-+%%   J '' ' ',,0AA#//&::}}!(A%**m(\fm   Lrcxddlm}t|jj }i}d}d}||ddD]} |j | j rPt|| j dddur;| jt| j || j } | jd k(r| jt } | j| jur| }| || j <|r|} |jD]\} } t| | } | |vs| |vrt| s| r| } nd}.| j!rt"j$}n| j&t(}n | j*}t#| t"j,| j/| || <|d k(rd}|r|rd t"j0fdt"jfg}|Dcgc]}|j |jfc}|k(rd}n |j }||vr |dz }||vr |j|||<|Scc}w)zaGenerate a mapping of parameter names to Parameter objects for a pydantic BaseModel or dataclass.r)isliceNFr initT)r&r)r%)r%r'allowrdata extra_data_) itertoolsr2r parametersvaluesgetr&getattrr-r#r%rkind VAR_KEYWORDitemsr is_requiredrr*r)r,r' KEYWORD_ONLYrebuild_annotationPOSITIONAL_ONLY)r3r(validate_by_nameextrar2present_params merged_paramsvar_kw use_var_kwr. allow_namesr!field param_namer'default_model_signaturep var_kw_names r_generate_signature_parametersrPPsA!t_//668N*,M FJ40 * ::ejj !vejj)648EAMM'@VTYT^T^M_'`MaE   u $MMSM1E ::** *F $) ejj! *& !'  J2:uEJ]*jM.I&z2!+J!%J  "#//&&2.--(1&& 335 )M* %+ 8   *Y.. / Y** +# '5 5QVVQVV  59P P&K!++KV# 3 KV#%+^^^%E k"  6sH7ct||||}|r,|jDcic]\}}|t|}}}tt |j dScc}}w)ayGenerate 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)r9return_annotation)rPr?r0rlistr:)r3r(rDrE is_dataclassrGkvs rgenerate_pydantic_signaturerWsf&34AQSXYMCPCVCVCXY41a3A66Y Y ]%9%9%; rcs"33//+'$" 23*DQ Q QQ  Q  Qr V V VV  V  V  Vr