
    9iU                    `   d dl mZ d dlZd dlZd dlZd dlZd dl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mZ d dl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mZmZmZmZmZ d d	l m!Z!m"Z" d d
l#m$Z$ 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.m/Z/  e)       Z0dZ1 ejd                  e3      Z4 G d de+      Z5d Z6dZ7dZ8dZ9dZ:dZ;dZ<ddZ=d dZ>d dZ? G d de@      ZAe'j                  e'j                  z  e'j                  z  e'j                  z  e'j                  z  e'j                  z  ZHd!dZIy)"    )annotationsN)deque)CallableSequence)datedatetimetime	timedeltatimezone)Enum)isclass)IPv4AddressIPv4InterfaceIPv4NetworkIPv6AddressIPv6InterfaceIPv6Network)AnyLiteral)UUID)ZoneInfo)Reviver)SerializerProtocol)SendProtocol)Item    c                  |    e Zd ZdZdddd	 	 	 	 	 	 	 ddZdddd	 	 	 	 	 	 	 	 	 ddZddZdd	Zdd
ZddZ	ddZ
y)JsonPlusSerializera  Serializer that uses ormsgpack, with optional fallbacks.

    Security note: this serializer is intended for use within the BaseCheckpointSaver
    class and called within the Pregel loop. It should not be used on untrusted
    python objects. If an attacker can write directly to your checkpoint database,
    they may be able to trigger code execution when data is deserialized.
    FN)pickle_fallbackallowed_json_modules__unpack_ext_hook__c                   || _         |r|dur|D ch c]  }| c}n|du r|nd | _        ||| _        y t        | _        y c c}w )NT)r   _allowed_modules_msgpack_ext_hook_unpack_ext_hook)selfr   r    r!   mod_and_names        m/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/langgraph/checkpoint/serde/jsonplus.py__init__zJsonPlusSerializer.__init__2   sg      / $(<D(H /CCl\C*>$*F&D 	 #.   	 # 		 Ds   	A)methodargskwargsc                   ddg |j                   j                  d      |j                  d}|||d<   |||d<   |||d<   |S )N   constructor.)lctypeidr*   r+   r,   )
__module__split__name__)r&   r/   r*   r+   r,   outs         r(   _encode_constructor_argsz+JsonPlusSerializer._encode_constructor_argsE   si     !LK**005L{7K7KL

 "CMCK"CM
r   c                T   | j                   rN|j                  dd       dk(  r9|j                  dd       dk(  r$|j                  dd       	 | j                  |      S t        |      S # t        $ r8}t        j                  d|d   |j                         Y d }~t        |      S d }~ww xY w)Nr1   r.   r2   r/   r3   z5Object %s is not in the deserialization allowlist.
%s)r#   get_revive_lc2InvalidModuleErrorloggerwarningmessage
LC_REVIVER)r&   valuees      r(   _reviverzJsonPlusSerializer._reviverZ   s      IIdD!Q&		&$'=8		$%1''.. %   & L$KII  %  s   
A& &	B'/$B""B'c                   | j                  |       |d   ^ }}	 t        j                  dj                  |            }t	        ||      }|j                  d      }t        |t              rt	        ||      g}n1t        |t              r|D cg c]  }||nt	        ||       }}n|g}|j                  d      }	|j                  d      }
|D ]K  }	 t        |      rt        |t              r y |	r|
r
 ||	i |
c S |	r ||	 c S |
r
 |di |
c S  |       c S  y c c}w # t        $ r Y _w xY w# t        $ r Y y w xY w)Nr3   r0   r*   r+   r,    )_check_allowed_modules	importlibimport_modulejoingetattrr:   
isinstancestrlistr   
issubclassBaseException	Exception)r&   rA   modulenamemodclsr*   methodsmr+   r,   s              r(   r;   zJsonPlusSerializer._revive_lc2k   sI   ##E*+&$	))#((6*:;C#t$CYYx(F&#&"3/0FD)JPQQ!)3a@QQ%99V$DYYx(F! v:fm+L#%t6v66%t},%///%x R" !  		s~   A3D2 D%-D2 D#.D2 0D#;D2 >D#D2 	D#D2 D#D2 D2 D2 #	D/,D2 .D//D2 2	D>=D>c           	        t        |d         }|j                  d      }t        |t              rdj	                  d |D              }nt        |t
              r|}nd}dj	                  |      }| j                  st        d| d| d	|d
      | j                  du ry || j                  v ry t        d| d| d|d      )Nr3   r*   ,c              3  (   K   | ]
  }|xs d   yw)<init>NrE   ).0rV   s     r(   	<genexpr>z<JsonPlusSerializer._check_allowed_modules.<locals>.<genexpr>   s     %Dam8m%Ds   rZ   r0   z)Refused to deserialize JSON constructor: z
 (method: ul   ). No allowed_json_modules configured.

Unblock with ONE of:
  • JsonPlusSerializer(allowed_json_modules=[u   , ...])
  • (DANGEROUS) JsonPlusSerializer(allowed_json_modules=True)

Note: Prefix allowlists are intentionally unsupported; prefer exact symbols or plain-JSON representations revived without import-time side effects.Tz). Symbol is not in the deserialization allowlist.

Add exactly this symbol to unblock:
  JsonPlusSerializer(allowed_json_modules=[zY, ...])
Or, as a last resort (DANGEROUS):
  JsonPlusSerializer(allowed_json_modules=True))tupler:   rK   rM   rI   rL   r#   r<   )r&   rA   neededr*   method_displaydotteds         r(   rF   z)JsonPlusSerializer._check_allowed_modules   s    uT{#8$fd# XX%DV%DDN$#N%N&!$$$;F8:nM] ^B CI LZZ    D(T*** 7xz.IY Z: ;A D>>
 	
r   c                   |dt         fS t        |t              rd|fS t        |t              rd|fS 	 dt	        |      fS # t
        j                  $ r/}| j                  rdt        j                  |      fcY d }~S |d }~ww xY w)Nnullbytes	bytearraymsgpackpickle)
EMPTY_BYTESrK   rc   rd   _msgpack_enc	ormsgpackMsgpackEncodeErrorr   rf   dumps)r&   objexcs      r(   dumps_typedzJsonPlusSerializer.dumps_typed   s    ;;&&U#C<Y'## ,s"333// ''#V\\#%666	s#   A B"A>6B<A>>Bc                d   |\  }}|dk(  ry |dk(  r|S |dk(  rt        |      S |dk(  r!t        j                  || j                        S |dk(  r0t	        j
                  || j                  t        j                        S | j                  r|dk(  rt        j                  |      S t        d	|       )
Nrb   rc   rd   json)object_hookre   ext_hookoptionrf   zUnknown serialization type: )rd   rp   loadsrC   ri   unpackbr%   OPT_NON_STR_KEYSr   rf   NotImplementedError)r&   datatype_data_s       r(   loads_typedzJsonPlusSerializer.loads_typed   s    uF?gLk!U##f_::e??i$$ 5 5i>X>X  !!ex&7<<&&%(DUG&LMMr   )r   boolr    z0Sequence[tuple[str, ...]] | Literal[True] | Noner!   z"Callable[[int, bytes], Any] | NonereturnNone)
r/   zCallable | type[Any]r*   z!None | str | Sequence[None | str]r+   zSequence[Any] | Noner,   zdict[str, Any] | Noner~   dict[str, Any])rA   r   r~   r   )rA   r   r~   r   )rl   r   r~   tuple[str, bytes])ry   r   r~   r   )r6   r4   __qualname____doc__r)   r8   rC   r;   rF   rn   r|   rE   r   r(   r   r   )   s     !&QUBF
 
 O	

 @
 

. 59%)(,) 2	
 # & 
*!"B"
HNr   r      r.               c                   t        | d      rrt        | j                        r]t        j                  t
        t        | j                  j                  | j                  j                  | j                         df            S t        | d      rqt        | j                        r\t        j                  t        t        | j                  j                  | j                  j                  | j                         f            S t        | d      rqt        | j                        r\t        j                  t        t        | j                  j                  | j                  j                  | j                         f            S t        | d      rqt        | j                        r\t        j                  t        t        | j                  j                  | j                  j                  | j                         f            S t!        | t"        j$                        rXt        j                  t&        t        | j                  j                  | j                  j                  | j(                  f            S t!        | t*        j,                        r<t        j                  t&        t        dd| j.                  | j0                  ff            S t!        | t2              rXt        j                  t        t        | j                  j                  | j                  j                  | j4                  f            S t!        | t6        j8                        rWt        j                  t        t        | j                  j                  | j                  j                  t;        |       f            S t!        | t<        t>        t@        f      rWt        j                  t        t        | j                  j                  | j                  j                  tC        |       f            S t!        | tD        tF        tH        f      rWt        j                  t        t        | j                  j                  | j                  j                  t;        |       f            S t!        | tJ        tL        tN        f      rWt        j                  t        t        | j                  j                  | j                  j                  t;        |       f            S t!        | tP              r]t        j                  tR        t        | j                  j                  | j                  j                  | jU                         df            S t!        | tV              rot        j                  t&        t        | j                  j                  | j                  j                  | jX                  | jZ                  | j\                  ff            S t!        | t^              rot        j                  t&        t        | j                  j                  | j                  j                  | j`                  | jb                  | jd                  ff            S t!        | tf              rt        j                  t        t        | j                  j                  | j                  j                  | jh                  | jj                  | jl                  | jn                  | jp                  | jr                  d	f            S t!        | tt              r\t        j                  t&        t        | j                  j                  | j                  j                  | jw                         f            S t!        | tx              rXt        j                  t        t        | j                  j                  | j                  j                  | jz                  f            S t!        | t|              rXt        j                  t        t        | j                  j                  | j                  j                  | j~                  f            S t!        | t              rdt        j                  t&        t        | j                  j                  | j                  j                  | j                  | j                  ff            S t        j                  |       rt        j                  t        t        | j                  j                  | j                  j                  t        j                  |       D ci c]#  }|j                  t        | |j                        % c}f            S t!        | t              rqt        j                  t        t        | j                  j                  | j                  j                  | j                  D ci c]  }|t        | |       c}f            S t        j                  j                  d
      x}t!        | |j                        r| j0                  j                  r| j0                  j                  sdnd}| j0                  j                  rct        |       }	 | j                  j:                  | j                  ||f}t        j                  t        t        |            |j                          S | j                  d      }| j                  j:                  | j                  ||f}t        j                  t        t        |            S t!        | t              rt        |       S t        d| j                  j                   d      c c}w c c}w # |j                          w xY w)N
model_dumpmodel_validate_jsonget_secret_valuedict_asdictrecompilefromisoformat)hourminutesecondmicrosecondtzinfofoldnumpyFCAorderzObject of type z is not serializable)Yhasattrcallabler   ri   ExtEXT_PYDANTIC_V2rh   	__class__r4   r6   r   EXT_CONSTRUCTOR_SINGLE_ARGr   EXT_PYDANTIC_V1r   EXT_CONSTRUCTOR_KW_ARGSrK   pathlibPathEXT_CONSTRUCTOR_POS_ARGSpartsr   Patternpatternflagsr   hexdecimalDecimalrL   set	frozensetr   r]   r   r   r   r   r   r   r   EXT_METHOD_SINGLE_ARG	isoformatr
   dayssecondsmicrosecondsr   yearmonthdayr	   r   r   r   r   r   r   r   __getinitargs__r   keyr   rA   r   nodeargdataclassesis_dataclassfieldsrR   rJ   r   	__slots__sysmodulesr:   ndarrayf_contiguousc_contiguous
memoryviewdtypeshapeEXT_NUMPY_ARRAYreleasetobytesrO   repr	TypeError)rl   fieldknp_modr   mvmetabufs           r(   _msgpack_defaultr      sa   sL!hs~~&>}}MM,,MM**NN$)	

 
	
 
(	)hs7K7K.L}}&MM,,MM**((*	
 		
 
f	(388"4}}MM,,MM**HHJ	
 		
 
i	 Xckk%:}}#MM,,MM**KKM	
 		
 
C	&}}$))3==+A+A399M
 	
 
C	$}}$y3;;		":;
 	
 
C	}}&))3==+A+A377K
 	
 
C	)}}&))3==+A+A3s8L
 	
 
C#y%0	1}}&))3==+A+A5:N
 	
 
C+}kB	C}}&))3==+A+A3s8L
 	
 
C+}kB	C}}&))3==+A+A3s8L
 	
 
C	"}}!MM,,MM**MMO#	

 
	
 
C	#}}$MM,,MM**XXs{{C,<,<=	
 		
 
C	}}$MM,,MM**XXsyy#''2	
 		
 
C	}}#MM,,MM** #"%**"%**'*"%** #
 	
" 
C	"}}$MM,,MM**'')	
 		
 
C	"}}&))3==+A+A377K
 	
 
C	}}&))3==+A+A399M
 	
 
C	&}}$))3==+A+ACHHcggCVW
 	
 
	!	!#	&}}#MM,,MM** &1%7%7%<! 

GC$<<	
 	
 
C	}}#MM,,MM**14?AQQ'?	
 		
 KKOOG,
,&	9jV^^? yy--cii6L6LRU99!!CB		syy%< }}_l46HI

++C+(CIIMM399eS9D==,t2DEE	C	'Cy/#--*@*@)AAUVWWK @ 

s   (m-mAm m"c           	     Z   | t         k(  rY	 t        j                  |t        t        j                        } t        t        j                  |d         |d         |d         S | t        k(  rV	 t        j                  |t        t        j                        } t        t        j                  |d         |d         |d    S | t        k(  rY	 t        j                  |t        t        j                        } t        t        j                  |d         |d         di |d   S | t        k(  rf	 t        j                  |t        t        j                        } t        t        t        j                  |d         |d         |d         |d         S | t        k(  r\	 t        j                  |t        t        j                        }t        t        j                  |d         |d         }	  |di |d   S | t        k(  r\	 t        j                  |t        t        j                        }t        t        j                  |d         |d         }	  |di |d   S | t"        k(  ri	 dd l}t        j                  |t        t        j                        \  }}}}|j'                  ||j)                  |            }	|	j+                  ||      S y # t        $ r Y y w xY w# t        $ r Y y w xY w# t        $ r Y y w xY w# t        $ r Y y w xY w# t        $ r  |j                  di |d   cY S w xY w# t        $ r 	 d   cY S # t        $ r Y Y y w xY ww xY w# t        $ r  |j                   di |d   cY S w xY w# t        $ r 	 d   cY S # t        $ r Y Y y w xY ww xY w# t        $ r Y y w xY w)	Nrr   r   r   r.   r   r   r   rE   )r   ri   rv   r$   rw   rJ   rG   rH   rP   r   r   r   r   	construct	NameErrorr   model_constructr   r   
frombufferr   reshape)
codery   tuprT   _np	dtype_strr   r   r   arrs
             r(   r$   r$     s   ))	##09S9SC D79223q6:CFCCFKK 
)	)	##09S9SC D79223q6:CFCSVLL 
(	(	##09S9SC D79223q6:CFCMc!fMM 
&	&		##09S9SC U779#:#:3q6#BCFKSQRVTA 
 
	 	##09S9SC )11#a&93q6BC/}SV}$ 
	 	##09S9SC )11#a&93q6BC5}SV}$ 
	 		+4+<+<09S9S,(IueS ..CIIi,@.AC;;uE;22 
!G  		  		  		  		  /$s}}.s1v../ 	1v 	   5*s**4SV445 	1v 	   		s   AK -AK AK. .A$K= AL0 -
L AM9 
M 'A'N 	KK	K+*K+.	K:9K:=	L	L	L-*L0 ,L--L0 0	M:M>M	M
MMMM63M9 5M66M9 9	NN
N
	NNNN	N*)N*c                &   | t         k(  rd	 t        j                  |t        t        j                        }|d   dk(  r,|d   dk(  r$|d   }|d d  d|dd	  d|d	d
  d|d
d  d|dd   	S |d   S | t        k(  rN	 t        j                  |t        t        j                        }|d   dk(  r|d   dk(  rddlm}  ||d    S |d   S | t        k(  r0	 t        j                  |t        t        j                        }|d   S | t        k(  r0	 t        j                  |t        t        j                        }|d   S | t        k(  r0	 t        j                  |t        t        j                        }|d   S | t        k(  r0	 t        j                  |t        t        j                        }|d   S | t        k(  rw	 dd l}t        j                  |t        t        j                        \  }}}}	|j                  |	|j!                  |            }
|
j#                  ||      j%                         S y # t
        $ r Y y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w)Nrr   r   uuidr   r   r.      -         zlanggraph.typesSend)r   r   r   )r   ri   rv   _msgpack_ext_hook_to_jsonrw   rP   r   langgraph.typesr   r   r   r   r   r   r   r   r   r   tolist)r   ry   r   hex_r   r   r   r   r   r   r   s              r(   r   r     s   ))	##2 11C
 1vCFf$41vBQxj$q*QtBr{m1T"R[M4PRPS9+V q6M 
)	)	##2 11C
 1v**s1v/?0SV}$q6M 
(	(		##2 11C q6M 
&	&		##2 11C q6M 
	 	##2 11C q6M
 
	 		##2 11C q6M 
	 	+4+<+<2 11,(IueS
 ..CIIi,@.AC;;uE;299;; 
!  		  		  		  		  	 	  		  		s   AH* )H* 8AH9  H9 .I .I .I& :.I5 3A5J *	H65H69	II	II	I#"I#&	I21I25	J J	JJc                      e Zd ZdZddZy)r<   z7Exception raised when a module is not in the allowlist.c                    || _         y )N)r?   )r&   r?   s     r(   r)   zInvalidModuleError.__init__y  s	    r   N)r?   rL   )r6   r4   r   r   r)   rE   r   r(   r<   r<   v  s
    Ar   r<   c                B    t        j                  | t        t              S )N)defaultrt   )ri   packbr   _option)ry   s    r(   rh   rh     s    ??4)9'JJr   )rl   r   r~   zstr | ormsgpack.Ext)r   intry   rc   r~   r   )ry   r   r~   rc   )J
__future__r   r   r   rG   rp   loggingr   rf   r   r   collectionsr   collections.abcr   r   r   r   r	   r
   r   enumr   inspectr   	ipaddressr   r   r   r   r   r   typingr   r   r   r   zoneinfor   ri   langchain_core.load.loadr   langgraph.checkpoint.serde.baser    langgraph.checkpoint.serde.typesr   langgraph.store.baser   r@   rg   	getLoggerr6   r=   r   r   r   r   r   r   r   r   r   r$   r   rP   r<   rw   OPT_PASSTHROUGH_DATACLASSOPT_PASSTHROUGH_DATETIMEOPT_PASSTHROUGH_ENUMOPT_PASSTHROUGH_UUIDOPT_REPLACE_SURROGATESr   rh   rE   r   r(   <module>r     s6   "        	 
  . > >         , > 9 %Y
			8	$gN+ gNX     `XFUpZz  ))*(() $$% $$	%
 &&' Kr   