
    5j6                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
JrJr  SSKJr  SSKJr  S	S
KJr  S	SKJr  S	SKJr  S	SKJrJr  S	SKJr  S	SKJrJrJr  \(       a  SSKJ r   SSK!J"r"  SSK#J$r$  S	SK%J&r&  S	SK'J(r(   " S S\5      r)S$S jr*\	" SS9S%S j5       r+S&S jr,SS.           S'S jjr-S(S jr.S)S jr/SSS .         S*S! jjr0S+S" jr1S+S# jr2g),zmPrivate logic related to fields (the `Field()` function and `FieldInfo` class), and arguments to `Annotated`.    )annotationsN)copy)	lru_cache)TYPE_CHECKINGAny)PydanticUndefined)PydanticUserError   )_typing_extra)ConfigWrapper)extract_docstrings_from_cls)import_cached_base_modelimport_cached_field_info)Representation)get_cls_type_hints_lenientis_classvaris_finalvarBaseMetadata   )	FieldInfo)	BaseModel)StandardDataclass)DecoratorInfosc                      \ rS rSrSrSrSrg)PydanticMetadata    z0Base class for annotation markers like `Strict`. N)__name__
__module____qualname____firstlineno____doc__	__slots____static_attributes__r       Y/root/lseg-credit/backend/venv/lib/python3.13/site-packages/pydantic/_internal/_fields.pyr   r       s
    :Ir&   r   c                 "    [        5       " U 5      $ )zCreate a new `_PydanticGeneralMetadata` class with the given metadata.

Args:
    **metadata: The metadata to add.

Returns:
    The new `_PydanticGeneralMetadata` class.
)_general_metadata_cls)metadatas    r'   pydantic_general_metadatar+   &   s     !"8,,r&   )maxsizec                 2    SSK Jn    " S S[        U 5      nU$ )zCDo it this way to avoid importing `annotated_types` at import time.r   r   c                  "    \ rS rSrSrSS jrSrg)7_general_metadata_cls.<locals>._PydanticGeneralMetadata7   z,Pydantic general metadata like `max_digits`.c                    Xl         g N__dict__)selfr*   s     r'   __init__@_general_metadata_cls.<locals>._PydanticGeneralMetadata.__init__:   s    $Mr&   r3   N)r*   r   )r   r    r!   r"   r#   r6   r%   r   r&   r'   _PydanticGeneralMetadatar/   7   s
    :	%r&   r8   )annotated_typesr   r   )r   r8   s     r'   r)   r)   2   s     -%#3\ % $#r&   c                    UR                   (       aD  [        U 5      nUR                  5        H$  u  pEUR                  b  M  XC;   d  M  X4   Ul        M&     g g r2   )use_attribute_docstringsr   itemsdescription)clsfieldsconfig_wrapperfields_docsann_name
field_infos         r'   _update_fields_from_docstringsrD   @   sI    ..1#6$*LLN H%%-(2I)4)>
& %3 /r&   )typevars_mapc                 ^ [        5       n[        5       n[        X5      nU R                  R	                  S0 5      n0 n	[        5       n
UR                  5        GH  u  mnTS:X  a  M  UR                   H  nTR                  U5      (       d  M  U HU  n[        UT5      (       d  M  [        X5      (       a  TUR                  ;   a  M8  [        ST S[        UT5       SU S35      e   [        U4S jUR                   5       5      n[        R                   " ST SU R"                   S	U S
U S3	[$        5        M     ['        U5      (       a  U
R)                  T5        GM
  [+        U[        U T[,        5      5      (       a  U
R)                  T5        GM>  [/        T5      (       d  GMQ  U R0                  (       a  TS:w  a  [        ST< S35      e[        U S0 5      R	                  S5      nU H  n[2        R4                  " U5      (       a  [2        R6                  " U5      OS Vs1 s H  nUR8                  iM     nn[        UT5      (       d  Mc  UUL a  Mj  TU;   a  Mr  TU;  a  Mz  [        R                   " ST SU R:                   SUR:                   S3[$        5        M      [        U T[,        5      nU[,        L a  [<        e [?        UT5        URA                  UU5      n [C        U T5        U R                  S   nTURL                  ;   a  [O        S5      eUU	T'   GM     U(       a(  U	RQ                  5        H  nURS                  XC5        M     [U        X	U5        X4$ s  snf ! [<         a     Nf = f! [<         a{    TU;   a  URE                  U5      n N0 nU RF                  SSS2    H  nURI                  [        US0 5      5        M!     TU;   a  [K        UT   5      n NURE                  U5      n GNf = f)a  Collect the fields of a nascent pydantic model.

Also collect the names of any ClassVars present in the type hints.

The returned value is a tuple of two items: the fields dict, and the set of ClassVar names.

Args:
    cls: BaseModel or dataclass.
    bases: Parents of the class, generally `cls.__bases__`.
    config_wrapper: The config wrapper instance.
    types_namespace: Optional extra namespace to look for types in.
    typevars_map: A dictionary mapping type variables to their concrete types.

Returns:
    A tuple contains fields and class variables.

Raises:
    NameError:
        - If there is a conflict between a field name and protected namespaces.
        - If there is a field other than `root` in `RootModel`.
        - If a field shadows an attribute in the parent model.
__annotations__model_configzField "z" conflicts with member z of protected namespace "z".c              3  X   >#    U  H  nTR                  U5      (       a  M  Uv   M!     g 7fr2   
startswith).0xrB   s     r'   	<genexpr>'collect_model_fields.<locals>.<genexpr>   s%      -#FahNaNabcNd#Fs   *	*z" in z( has conflict with protected namespace "z_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = z`.rootzUnexpected field with name z4; only 'root' is allowed as a field of a `RootModel`__pydantic_generic_metadata__originr   zField name "z" in "z"" shadows an attribute in parent ""Nmodel_fields__pydantic_decorators__z0you can't override a field with a computed field)+r   r   r   r4   getsetr<   protected_namespacesrK   hasattr
issubclassrU   	NameErrorgetattrtuplewarningswarnr   UserWarningr   add_is_finalvar_with_default_valr   is_valid_field_name__pydantic_root_model__dataclassesis_dataclassr?   namer!   AttributeError#_warn_on_nested_alias_in_annotationfrom_annotated_attributedelattrfrom_annotation	__bases__updater   computed_fields
ValueErrorvaluesapply_typevars_maprD   )r>   basesr@   types_namespacerE   r   
FieldInfo_
type_hintsr   r?   
class_varsann_typeprotected_namespacebvalid_namespacesgeneric_originbasefielddataclass_fieldsdefaultrC   model_fields_lookuprM   
decoratorsrB   s                           @r'   collect_model_fieldsr   H   s   < )*I)+J+CAJ ,,""#4b9K#%F5J(..0(~% #1#F#F""#677Aq(++ *1 8 8X=W"+")(3KGTUW_L`Ka";<O;PPR!T#   (- -#1#F#F- ($ MM!(5>fgzf{ |DDTCUUWY $	 $G& x  NN8$(73J[3\]]NN8$"8,,&&8v+=-h\9mn  !&ErJNNxXDEPE]E]^bEcEc););D)Aik)k )ku

)k    tX&&>)// ;."8*F33C3C2D E))*!-% 0	c8->?G++$$ ,* 0(C#<<XwOJX& &)\\2K%L
z111OPP%xO 1R ]]_E$$\C % #3?K j " 5  	F;&'77A
 =?#tt,A'..wq."/MN -22 "&&9(&C!DJ
 ",!;!;H!EJ#	Fs7   'M%' M:'M**
M76M7:!O?AO?*O?>O?c                J   [        5       n[        U SS 5      nU(       a  U H~  n[        R                  " U5      (       d  M   [        R                  " U5       HD  n[        XR5      (       d  M  UR                  c  M$  [        R                  " SU S3[        5            g    M     g g )N__args__z `alias` specification on field "z5" must be set on outermost annotation to take effect.)
r   r]   r   is_annotatedget_args
isinstancealiasr_   r`   ra   )ry   rB   r   argsanno_arganno_type_args         r'   rj   rj      s    (*I8Z.DH))(33%2%;%;H%EM!-;;@S@S@_ >xjH}~'  &F  r&   c                    [        5       n[        U 5      (       d  gU[        L a  g[        X5      (       a!  UR                  [        L a  UR
                  c  gg)NFT)r   r   r   r   r   default_factory)type_valr   s      r'   rc   rc      sL    (*Iu	!	!	C	#	#8I)IcNaNaNir&   )rE   r@   c               R   [        5       n0 nU R                  n[        [        U 5      5      n[        R
                  R                  U R                  5      nUb  0 UR                  EU=(       d    0 EnUR                  5        GHb  u  p[        R                  " U
R                  X5      n[        U5      (       a  M9  U
R                  (       d>  U
R                  [         R"                  :X  a   U
R$                  [         R"                  :X  a  M  ['        U
R                  U5      (       a`  U
R                  R(                  (       a)  U
R                  R                  SL a  [+        SU	 S3SS9eM  UR-                  XR                  5      nOUR-                  X5      nXU	'   UR                  [.        Ld  GM.  ['        [1        X	U5      U5      (       d  GML  [3        X	UR                  5        GMe     U(       a(  UR5                  5        H  nUR7                  X!5        M     Ub  [9        XU5        U$ )a&  Collect the fields of a dataclass.

Args:
    cls: dataclass.
    types_namespace: Optional extra namespace to look for types in.
    typevars_map: A dictionary mapping type variables to their concrete types.
    config_wrapper: The config wrapper instance.

Returns:
    The dataclass fields.
FzDataclass field zD has init=False and init_var=True, but these are mutually exclusive.zclashing-init-and-init-var)code)r   __dataclass_fields__dictvarssysmodulesrW   r    r4   r<   r   eval_type_lenienttyper   initr   rf   MISSINGr   r   init_varr	   rk   r   r]   setattrrr   rs   rD   )r>   ru   rE   r@   rv   r?   r   cls_localnssource_modulerB   dataclass_fieldry   rC   r   s                 r'   collect_dataclass_fieldsr      s   $ *+J#%F585M5MtCy/KKKOOCNN3M O]33O8M2O%5%;%;%=! 22?3G3Gfx    $$'';+>+>>//;3F3FF o--z::&&//"**//58+*8*4xy9  #<<XG^G^_J#<<XWJ%x%66:gc]gFhjt;u;uC:#5#56A &>D ]]_E$$\C % !&sNCMr&   c                .    U R                  S5      (       + $ )N_rJ   rh   s    r'   rd   rd   H  s    s###r&   c                ^    U R                  S5      =(       a    U R                  S5      (       + $ )Nr   __rJ   r   s    r'   is_valid_privateattr_namer   L  s"    ??3=(=$==r&   )r*   r   returnr   )r   ztype[BaseMetadata])r>   	type[Any]r?   dict[str, FieldInfo]r@   r   r   None)r>   ztype[BaseModel]rt   ztuple[type[Any], ...]r@   r   ru   dict[str, Any] | NonerE   dict[Any, Any] | Noner   z%tuple[dict[str, FieldInfo], set[str]])ry   r   rB   strr   r   )r   r   r   r   r   bool)
r>   ztype[StandardDataclass]ru   r   rE   r   r@   zConfigWrapper | Noner   r   )rh   r   r   r   )3r#   
__future__r   _annotationsrf   r   r_   r   	functoolsr   typingr   r   pydantic_corer   pydantic.errorsr	    r   _configr   _docs_extractionr   _import_utilsr   r   _reprr   r   r   r   r9   r   r?   r   mainr   _dataclassesr   _decoratorsr   r   r+   r)   rD   r   rj   rc   r   rd   r   r   r&   r'   <module>r      s   s 2  
    % + -  " 9 M ! O O," /+~ 	- 4
$ 
$? +/X	X X "X +	X (X +Xv 
" +/+/E	 E*E (	E
 )E EP$>r&   