a
    h                     @  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rd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d'dddddddddd	ddZ d(d
dddddd
dddZ!ej"ddddddddddd
d d!Z#d)dd"d"ddd#d$d%d&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boolz+AbstractSetIntStr | MappingIntStrAny | NoneTupleGenerator)	selfto_dictby_aliasincludeexcludeexclude_unsetexclude_defaultsexclude_nonereturnc                 c  s   |d ur&t jdd | j D |}|d urLt jjdd | jD |dd}t| |||d}|d u r|s|s|s|s|s| j E d H  | jr| j E d H  d S |d urt | |nd }	|d urt | |nd }
| jd u r| j }nt| j t| j  }|D ]\}}|d ur$||vs|r8|d u r8q|r|z| j| }W n t	y`   Y n0 |
 s||j|kr|q|r|| jv r| j| jp|}n|}|s|
s|	rtt| ||||
o|
||	o|	||||d	}||fV  qd S )Nc                 S  s"   i | ]\}}|j d ur||j qS )N)r   .0kv r    ^/var/www/html/assistant/venv/lib/python3.9/site-packages/pydantic/deprecated/copy_internals.py
<dictcomp>+       z_iter.<locals>.<dictcomp>c                 S  s   i | ]
}|d qS )Tr    )r   r   r    r    r!   r"   /   r#   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   sV    
$r4   zdict[str, Any]zset[str]zdict[str, Any] | None)r   values
fields_setextraprivatedeepr   c                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   r5   r6   r7   r8   r9   clsmr    r    r!   _copy_and_set_valuesb   s    	
r@   ztype[BaseModel]r   )
r>   r   r   r   r   r   r   r   r   r   c	                   s  ddl m}	 t||	r>r0|j ||dS |j||dS |rNt||nd |rbt||nd t|tr fdd| D S t	|r fddt
|D }
t|jr|j|
 S ||
S t|trtjd	d
r|jS |S d S )Nr   r
   )r   r   r   r   r   r   )r   r   c                   s\   i | ]T\}}r |sr(|r|t| oD|oP|d 	qS )r   r   r   r   r   r   r   Zis_excludedZis_includedr.   r0   )r   Zk_v_r   r>   r   r   r   r   r1   r2   r    r!   r"      s   z_get_value.<locals>.<dictcomp>c                 3  s\   | ]T\}}r |sr&|rt| o@|oL|d 	V  qdS )rA   NrB   )r   irC   rD   r    r!   	<genexpr>   s   z_get_value.<locals>.<genexpr>Zuse_enum_valuesF) r   
isinstanceZ
model_dumpcopyr	   r$   dictr&   Zsequence_like	enumerater   Zis_namedtupler;   r   getattrZmodel_configvalue)r>   r   r   r   r   r   r   r   r   r   Zseq_argsr    rD   r!   r.   {   s4    
	

 r.   zMappingIntStrAny | Noneztyping.AbstractSet[str] | None)r   r   r   r   updater   c                 C  s   |d u r|d u r|du rd S |r,| j  }n t| j }|| jpDi  B }|d ur`|| M }|rp|| 8 }|r|dd | D 8 }|S )NFc                 S  s    h | ]\}}t j|r|qS r    )r	   r$   Zis_truer   r    r    r!   	<setcomp>   r#   z"_calculate_keys.<locals>.<setcomp>)r:   rI   setr(   keysr)   r&   )r   r   r   r   rN   rQ   r    r    r!   r'      s    r'   )FFNNFFF)NN)N)%
__future__r   Z_annotationstypingrI   r   enumr   r   Ztyping_extensions	_internalr   r   r	   TYPE_CHECKINGrG   r   Z_internal._utilsr   r   classmethodZAnyClassMethod	Generatortuplestrr   TypeVarr   r   __annotations__Zobject_setattrr=   r4   r@   no_type_checkr.   r'   r    r    r    r!   <module>   s:           I  "O 