
    }
i                    h   d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ 	 d d
lmZ n# e$ r dZY nw xY wda  ej!        e"          Z#d+dZ$ e$            Z%d,dZ&d-dZ'dddd.dZ(dddd.dZ)d/d#Z*d0d$Z+d1d&Z,d2d'Z-d3d*Z.dS )4    )annotationsN)deque)Enum)	AnnotatedAnyLiteralUnionget_args
get_originget_type_hints)messages)BaseCheckpointSaver	BaseModel)NotRequiredRequiredis_typeddict)STRICT_MSGPACK_ENABLEDFreturnboolc                 ,    t          t          d          S )Nwith_allowlist)hasattrr        C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/_internal/_serde.py _supports_checkpointer_allowlistr   $   s    &(8999r   checkpointerr   	allowlistset[tuple[str, ...]] | Nonec                    | r|| dv r| S t           s%t          st                              d           da| S |                     |          S )N)TFzWCheckpointer does not support with_allowlist; strict msgpack allowlist will be skipped.T)_SUPPORTS_ALLOWLIST_warned_allowlist_unsupportedloggerwarningr   )r   r   s     r   apply_checkpointer_allowlistr&   +   sn      9,0M0M , 	1NN-   -1)&&y111r   set[tuple[str, ...]]c                     t                      } dD ]<}t          t          |d           }||                     |j        |j        f           =| S )N)BaseMessageBaseMessageChunkHumanMessageHumanMessageChunk	AIMessageAIMessageChunkSystemMessageSystemMessageChunkChatMessageChatMessageChunkToolMessageToolMessageChunkFunctionMessageFunctionMessageChunkRemoveMessage)setgetattrlc_messagesadd
__module____name__)r   nameclss      r   curated_core_allowlistr@   <   s[    &)eeI 6 6" k4..;s~s|45555r   schemaschannelsrB   list[type[Any]] | NonerC   dict[str, Any] | Nonec                b    t                      }| rd | D             } |t          | |          z  S )Nc                    g | ]}||S )Nr   ).0schemas     r   
<listcomp>z)build_serde_allowlist.<locals>.<listcomp>^   s    FFFf63E63E3E3Er   rA   )r@   collect_allowlist_from_schemas)rB   rC   r   s      r   build_serde_allowlistrL   W   sP    
 '((I GFFFFF5    r   c                R   t                      }t                      }t                      }| r| D ]}t          ||||           |ra|                                D ]L}t          |dd           }|t          ||||           t          |dd           }|t          ||||           M|S )N	ValueType
UpdateType)r8   _collect_from_typevaluesr9   )	rB   rC   r   seenseen_idsrI   channel
value_typeupdate_types	            r   rK   rK   e   s    
 '*eeIUUDH B 	B 	BFvy$AAAA K(( 	K 	KG +t<<J%":y$III!'<>>K&";	4JJJr   typrR   set[Any]rS   set[int]Nonec                ~   t          | ||          rd S | t          u s| d S | t          u rd S t          | t          j                  r| j        D ]}t          ||||           d S t          |           }|t          u r&t          |           D ]}t          ||||           d S |t          u s|t          t          fv r+t          |           }|rt          |d         |||           d S |t          u rd S |t          t          t           t"          t$          t&          fv r&t          |           D ]}t          ||||           d S t)          | d          rt          | j        |||           d S t-          |           r8t/          |                                           D ]}t          ||||           d S t3          |           r|                    | j        | j        f           t/          |           }|r*|                                D ]}t          ||||           n$t;          |           D ]}t          ||||           d S t=          j        |           rtA          | dd           x}	r|                    | j        |	f           t/          |           }|r*|                                D ]}t          ||||           n.t=          j!        |           D ]}
t          |
j"        |||           d S t          | tD                    r8tG          | tH                    r%|                    | j        | j        f           d S d S d S )Nr   __supertype__r=   )%_already_seenr   r   
isinstancetypes	UnionType__args__rP   r   r	   r
   r   r   r   listr8   tupledictr   	frozensetr   r\   r   _safe_get_type_hintsrQ   _is_pydantic_modelr;   r<   r=   _pydantic_field_typesdataclassesis_dataclassr9   fieldstype
issubclassr   )rW   r   rR   rS   argoriginargs
field_typefield_typestyp_namefields              r   rP   rP   ~   s    S$)) 
czzS[
g~~#u'' < 	? 	?CsItX>>>>__FC== 	? 	?CsItX>>>>f;(???}} 	CtAw	4BBB$UD%;;;C== 	? 	?CsItX>>>>sO$$ 3,ixHHHC .s33::<< 	F 	FJz9dHEEEE# 	s~s|4555*3// 	J)0022 J J
":y$IIIIJ 4C88 J J
":y$IIII$$ 
sJ5558 	6MM3>84555*3// 	J)0022 J J
":y$IIIIJ %+C00 J J"5:y$IIII#t C!6!6 s~s|4555   r   c                    	 | |v rdS |                     |            dS # t          $ r/ t          |           }||v rY dS |                     |           Y dS w xY w)NTF)r;   	TypeErrorid)rW   rR   rS   typ_ids       r   r]   r]      sz    
$;;4u   CX44Vuus     AAAdict[str, Any]c                   	 t           j                            t          | dd                    }|r|j        nd }t          | d          rt          t          |                     nd }t          | ||d          S # t          $ r i cY S w xY w)Nr<    __dict__T)globalnslocalnsinclude_extras)
sysmodulesgetr9   r|   r   rd   varsr   	Exception)rW   moduler}   r~   s       r   rf   rf      s    lB!?!?@@&,66??$%,S*%=%=G$tCyy///4(GD
 
 
 	
    			s   A9A< <B
Bc                    t          | t                    sdS t          | t                    rdS 	 ddlm} n# t
          $ r Y dS w xY wt          | |          S )NFTr   r   )r^   rl   rm   r   pydantic.v1r   )rW   BaseModelV1s     r   rg   rg      s|    c4   u#y!! t8888888   uuc;'''s   7 
AA	type[Any]	list[Any]c                    t          | d          r#d | j                                        D             S t          | d          r#d | j                                        D             S g S )Nmodel_fieldsc                >    g | ]}t          |d d          |j        S )
annotationN)r9   r   rH   rt   s     r   rJ   z)_pydantic_field_types.<locals>.<listcomp>   s7     
 
 
ulD11= ===r   
__fields__c                >    g | ]}t          |d d          |j        S )outer_type_N)r9   r   r   s     r   rJ   z)_pydantic_field_types.<locals>.<listcomp>   s7     
 
 
umT22> >>>r   )r   r   rQ   r   )rW   s    r   rh   rh      s    sN## 

 
)0022
 
 
 	

 sL!! 

 
..00
 
 
 	

 Ir   )r   r   )r   r   r   r    r   r   )r   r'   )rB   rD   rC   rE   r   r'   )
rW   r   r   r'   rR   rX   rS   rY   r   rZ   )rW   r   rR   rX   rS   rY   r   r   )rW   r   r   ry   )rW   r   r   r   )rW   r   r   r   )/
__future__r   ri   loggingr   r_   collectionsr   enumr   typingr   r   r   r	   r
   r   r   langchain_corer   r:   langgraph.checkpoint.baser   pydanticr   typing_extensionsr   r   r   #langgraph.checkpoint.serde._msgpackr   ImportErrorr#   	getLoggerr=   r$   r   r"   r&   r@   rL   rK   rP   r]   rf   rg   rh   r   r   r   <module>r      s   " " " " " "      



                               3 2 2 2 2 2 9 9 9 9 9 9       A A A A A A A A A A#        # # #"# !& 		8	$	$: : : : 7688 2 2 2 2"   : '+&*       '+&*     2I I I IX   	 	 	 		( 	( 	( 	(     s   A A#"A#