o
    Zh                     @  s
  U d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	Z	ddl
mZmZmZ ejr\ddlmZ dd	lmZmZ eeeef Zejeeef ddf Zejd
ddZdZded< ejZ							d4d5ddZ 		d6d7d'd(Z!ej"d8d-d.Z#	d9d:d2d3Z$dS );    )annotationsN)deepcopy)Enum)Any   )_model_construction_typing_extra_utils	BaseModel)AbstractSetIntStrMappingIntStrAnyModelr   )boundz<set[int] | set[str] | dict[int, Any] | dict[str, Any] | Noneztyping_extensions.TypeAliasIncExFselfto_dictboolby_aliasinclude+AbstractSetIntStr | MappingIntStrAny | Noneexcludeexclude_unsetexclude_defaultsexclude_nonereturnTupleGeneratorc                 c  s   |d urt jdd | j D |}|d ur't jjdd | jD |dd}t| |||d}|d u rR|sR|sR|sR|sR|sR| j E d H  | jrP| j E d H  d S |d ur\t | |nd }	|d urht | |nd }
| jd u ru| j }nt| j t| j  }|D ]f\}}|d ur||vs|r|d u rq|rz| j| }W n	 t	y   Y nw |
 s|j|krq|r|| jv r| j| jp|}n|}|s|
s|	rtt| ||||
o|
||	o|	||||d	}||fV  qd S )Nc                 S  s"   i | ]\}}|j d ur||j qS N)r   .0kv r"   Y/var/www/html/lang_env/lib/python3.10/site-packages/pydantic/deprecated/copy_internals.py
<dictcomp>+   s   " z_iter.<locals>.<dictcomp>c                 S  s   i | ]}|d qS )Tr"   )r   r    r"   r"   r#   r$   /   s    T)Z	intersect)r   r   r   )r   r   r   r   r   r   r   )r	   
ValueItemsmergeZ__pydantic_fields__items_calculate_keys__dict____pydantic_extra__listKeyErrorZis_requireddefaultalias
_get_valuetypefor_element)r   r   r   r   r   r   r   r   Zallowed_keysvalue_excludevalue_includer'   Z	field_keyr!   fieldZdict_keyr"   r"   r#   _iter   s\   
r5   valuesdict[str, Any]
fields_setset[str]extradict[str, Any] | Noneprivatedeepc                C  s`   |rt |}t |}t |}| j}||}t|d| t|d| t|d| t|d| |S )Nr)   r*   __pydantic_fields_set__Z__pydantic_private__)r   	__class____new___object_setattr)r   r6   r8   r:   r<   r=   clsmr"   r"   r#   _copy_and_set_valuesb   s   	
rD   rB   type[BaseModel]r!   r   c	                   s  ddl m}	 t||	rr|j ||dS |j||dS |r't||nd |r1t||nd t|trJ fdd| D S t	|rq fddt
|D }
t|jrl|j|
 S ||
S t|trtjd	d
r|jS |S )Nr   r
   )r   r   r   r   r   r   )r   r   c                   s\   i | ]*\}}r |sr|r|t| o"|o(|d 	qS )r   r   r   r   r   r   r   Zis_excludedZis_includedr/   r1   )r   Zk_v_r   rB   r   r   r   r   r2   r3   r"   r#   r$      s,    z_get_value.<locals>.<dictcomp>c                 3  s^    | ]*\}}r |sr|rt| o!|o'|d 	V  qdS )rF   NrG   )r   irH   rI   r"   r#   	<genexpr>   s.    
z_get_value.<locals>.<genexpr>Zuse_enum_valuesF) r   
isinstanceZ
model_dumpcopyr	   r%   dictr'   Zsequence_like	enumerater   is_namedtupler?   r   getattrZmodel_configvalue)rB   r!   r   r   r   r   r   r   r   r   Zseq_argsr"   rI   r#   r/   {   s4   
	

 r/   MappingIntStrAny | Noneupdatetyping.AbstractSet[str] | Nonec                 C  s   |d u r|d u r|du rd S |r| j  }nt| j }|| jp"i  B }|d ur0|| M }|r8|| 8 }|rE|dd | D 8 }|S )NFc                 S  s    h | ]\}}t j|r|qS r"   )r	   r%   Zis_truer   r"   r"   r#   	<setcomp>   s     z"_calculate_keys.<locals>.<setcomp>)r>   rN   setr)   keysr*   r'   )r   r   r   r   rU   rY   r"   r"   r#   r(      s   r(   )FFNNFFF)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )NN)r   r   r6   r7   r8   r9   r:   r;   r<   r;   r=   r   r   r   )rB   rE   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   rT   r   rT   r   r   rU   r;   r   rV   )%
__future__r   Z_annotationstypingrN   r   enumr   r   typing_extensions	_internalr   r   r	   TYPE_CHECKINGrL   r   Z_internal._utilsr   r   classmethodZAnyClassMethod	Generatortuplestrr   TypeVarr   r   __annotations__Zobject_setattrrA   r5   rD   no_type_checkr/   r(   r"   r"   r"   r#   <module>   s<    IO