§
    ~ŠtjZ   ã                  ó˜  — U 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Zd dlmZ d dlmZ 	 d dlmZ n# e$ r  G d„ d¦  «        ZY nw xY w ej        e¦  «        Zej        ej        z  ej        z  ej        z  Zeeee ed¦  «        fZ d„ Z!d	d
ddœfd	dd
ifdi fdi fgZ"de#d<   dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(dS )é    )ÚannotationsN)ÚAny)Ú_orjson)ÚZoneInfoc                  ó   — e Zd ZdZdS )r   zIntroduced in python 3.9.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langsmith/_internal/_serde.pyr   r      s   € € € € € Ø'Ð'Ð'Ð'r   r   c           
     ód  — 	 t          | t          j        ¦  «        r|                      ¦   «         S t          | t          j        ¦  «        rt          | ¦  «        S t          | t          ¦  «        r$t          | ¦  «        j        t          | ¦  «        dœS t          | t          t          t          j        f¦  «        rt          | ¦  «        S t          | t          j        t          f¦  «        r|                      d ¦  «        S t          | t          j        ¦  «        r|                      ¦   «         S t          | t&          j        ¦  «        r;|                      ¦   «         j        dk    rt/          | ¦  «        S t1          | ¦  «        S t          | t2          j        t2          j        t2          j        t2          j        t2          j        t2          j        t@          j!        f¦  «        rt          | ¦  «        S t          | tD          j#        ¦  «        r| j$        S t          | tJ          tL          f¦  «        r&tO          j(        | ¦  «         )                    ¦   «         S t          | ¦  «        S # t          $ r7}tT           +                    dt          | ¦  «        › d|› �¦  «         Y d }~nd }~ww xY wt          | ¦  «        S )N)ÚerrorÚmessager   úFailed to serialize ú
 to JSON: ),Ú
isinstanceÚdatetimeÚ	isoformatÚuuidÚUUIDÚstrÚBaseExceptionÚtyper   ÚsetÚ	frozensetÚcollectionsÚdequeÚlistÚtimezoner   ÚtznameÚ	timedeltaÚtotal_secondsÚdecimalÚDecimalÚas_tupleÚexponentÚintÚfloatÚ	ipaddressÚIPv4AddressÚIPv4InterfaceÚIPv4NetworkÚIPv6AddressÚIPv6InterfaceÚIPv6NetworkÚpathlibÚPathÚreÚPatternÚpatternÚbytesÚ	bytearrayÚbase64Ú	b64encodeÚdecodeÚloggerÚdebug)ÚobjÚes     r   Ú_simple_defaultr@   #   sH  € ð'Fõ �c�8Ô,Ñ-Ô-ð !	2Ø—=’=‘?”?Ð"Ý˜�TœYÑ'Ô'ð 	2Ý�s‘8”8ˆOÝ˜�]Ñ+Ô+ð 	2Ý! #™YœYÔ/½CÀ¹H¼HÐEÐEÐEÝ˜�c¥9­kÔ.?Ð@ÑAÔAð 	2Ý˜‘9”9ÐÝ˜�hÔ/µÐ:Ñ;Ô;ð 	2Ø—:’:˜dÑ#Ô#Ð#Ý˜�XÔ/Ñ0Ô0ð 	2Ø×$Ò$Ñ&Ô&Ð&Ý˜�Wœ_Ñ-Ô-ð 	2Ø�|Š|‰~Œ~Ô&¨!Ò+Ð+Ý˜3‘x”x�å˜S‘z”zÐ!ÝØåÔ%ÝÔ'ÝÔ%ÝÔ%ÝÔ'ÝÔ%Ý”ðñ
ô 
ð 	2õ �s‘8”8ˆOÝ˜�RœZÑ(Ô(ð 	2Ø”;ÐÝ˜�e¥YÐ/Ñ0Ô0ð 	2ÝÔ# CÑ(Ô(×/Ò/Ñ1Ô1Ð1Ý�3‰xŒxˆøÝð Fð Fð FÝ�ŠÐD­D°©I¬IÐDÐDÀÐDÐDÑEÔEÐEÐEÐEÐEÐEÐEøøøøðFøøøåˆs‰8Œ8€Os[   ‚-I °(I Á8I Â5I Ã5I Ã>-I Ä,AI Å2I ÆA+I Ç- I ÈAI ÉI É
J É)-JÊJ Ú
model_dumpTÚjson)Úexclude_noneÚmoderC   ÚdictÚto_dictz list[tuple[str, dict[str, Any]]]Ú_serialization_methodsr>   r   Úreturnc                óZ  — 	 t          | t          t          f¦  «        rGt          | d¦  «        r(t	          | j        ¦  «        r|                      ¦   «         S t          | ¦  «        S t          D ]Þ\  }}t          | |¦  «        rÉt	          t          | |¦  «        ¦  «        r¬t          | t          ¦  «        s—	 t          | |¦  «        } |di |¤Ž}t          |t          ¦  «        st          |¦  «        c S |c S # t          $ rG}t                               d|› dt          | ¦  «        › dt          |¦  «        › �¦  «         Y d }~ŒÖd }~ww xY wŒßt!          | ¦  «        S # t"          $ rF}t                               dt          | ¦  «        › d|› �¦  «         t          | ¦  «        cY d }~S d }~ww xY w)NÚ_asdictzFailed to use z to serialize r   r   r   )r   r   ÚtupleÚhasattrÚcallablerJ   r    rG   Úgetattrr   rE   r   Ú	Exceptionr<   r=   Úreprr@   r   )r>   ÚattrÚkwargsÚmethodÚresponser?   s         r   Ú_serialize_jsonrU   _   sé  € ðÝ�c�C¥˜<Ñ(Ô(ð 	Ý�s˜IÑ&Ô&ð %­8°C´KÑ+@Ô+@ð %à—{’{‘}”}Ð$Ý˜‘9”9Ðå2ð 	ð 	‰LˆD�&å˜˜TÑ"Ô"ðå�W S¨$Ñ/Ô/Ñ0Ô0ðõ # 3­Ñ-Ô-ðð
Ý$ S¨$Ñ/Ô/�FØ%˜vÐ/Ð/¨Ð/Ð/�HÝ% hµÑ5Ô5ð -Ý" 8™}œ}Ð,Ð,Ð,Ø#�O�O�OøÝ ð ð ð Ý—L’Lð,¨ð ,ð ,½TÀ#¹Y¼Yð ,ð ,Ý"& q¡'¤'ð,ð ,ñô ð ð �D�D�D�Døøøøðøøøøõ ˜sÑ#Ô#Ð#øÝð ð ð Ý�ŠÐD­D°©I¬IÐDÐDÀÐDÐDÑEÔEÐEÝ�3‰xŒxˆˆˆˆˆˆøøøøðøøøsa   ‚AE ÁE Á%AE Â4;C6Ã/E Ã2C6Ã3E Ã6
EÄ =EÄ=E ÅEÅE Å
F*Å$;F%ÆF*Æ%F*c                óˆ  — t          | t          ¦  «        r�i }|                      ¦   «         D ]h\  }}t          |t          ¦  «        r|nt	          t          |¦  «        ¦  «        }||v rt                               d¦  «         t          |¦  «        ||<   Œi|S t          | t          ¦  «        rd„ | D ¦   «         S t          | t          ¦  «        r=t          | d¦  «        rt          | j        ¦  «        st          d„ | D ¦   «         ¦  «        S t          | t          j        ¦  «        rt          j        d„ | D ¦   «         ¦  «        S | S )a“  Recursively stringify dict keys that orjson will reject.

    Walks ``dict``, ``list``, ``tuple`` and ``deque`` so that unsupported keys
    hidden at any depth are coerced before serialization. Tuples and deques
    are covered here even though they're only ever *values*: orjson serializes
    them natively (as arrays) and therefore never routes them through the
    ``default`` hook, so a bad-keyed dict nested inside one would otherwise
    slip past normalization. Cycles are handled downstream by
    ``_serialize_json`` (which collapses them to ``str``), not here.

    JSON object keys must ultimately be ``str``/``int``/``float``/``bool``/
    ``None``; other key types are stringified via ``_simple_default`` so they
    match the formats the fast path would produce (e.g. ``datetime`` -> ISO
    8601, ``bytes`` -> base64) rather than Python's ``str()`` or ``repr()``.

    Note: stringifying a non-str key can collide with another key (e.g. a
    literal ``"(1, 2)"`` and a coerced ``(1, 2)``). When that happens one entry
    overwrites the other (last-in-iteration-order wins); the collision is
    logged at debug level so the data loss is traceable.
    zXDict key collision during JSON key normalization; an existing value will be overwritten.c                ó,   — g | ]}t          |¦  «        ‘ŒS r   ©Ú_normalize_json_keys©Ú.0Úvalues     r   ú
<listcomp>z(_normalize_json_keys.<locals>.<listcomp>¢   s!   € Ð=Ð=Ð=°Õ$ UÑ+Ô+Ð=Ð=Ð=r   rJ   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©NrX   rZ   s     r   ú	<genexpr>z'_normalize_json_keys.<locals>.<genexpr>¨   s+   è è € ÐBÐB°UÕ)¨%Ñ0Ô0ÐBÐBÐBÐBÐBÐBr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r_   rX   rZ   s     r   r`   z'_normalize_json_keys.<locals>.<genexpr>ª   s+   è è € Ð NÐ NÀÕ!5°eÑ!<Ô!<Ð NÐ NÐ NÐ NÐ NÐ Nr   )r   rE   ÚitemsÚ_JSON_KEY_TYPESr   r@   r<   r=   rY   r    rK   rL   rM   rJ   r   r   )r>   ÚnewÚkeyr\   Únorm_keys        r   rY   rY      s[  € õ* �#•tÑÔð Ø ˆØŸ)š)™+œ+ð 		8ð 		8‰JˆC�å! #¥Ñ7Ô7ÐV��½SÅÐQTÑAUÔAUÑ=VÔ=Vð ð ˜3ˆˆÝ—’ð=ñô ð õ 1°Ñ7Ô7ˆC�‰MˆMØˆ
Ý�#•tÑÔð >Ø=Ð=¸Ð=Ñ=Ô=Ð=Ý�#•uÑÔð CÝ��YÑÔðCÝ$,¨S¬[Ñ$9Ô$9ðCõ
 ÐBÐB¸cÐBÑBÔBÑBÔBÐBÝ�#•{Ô(Ñ)Ô)ð OÝÔ Ð NÐ NÈ#Ð NÑ NÔ NÑNÔNÐNØ€Jr   c                ó:   — t          t          | ¦  «        ¦  «        S r_   )rY   rU   )r>   s    r   Ú$_serialize_json_with_normalized_keysrh   ®   s   € Ý¥°Ñ 4Ô 4Ñ5Ô5Ð5r   Úsr7   c                óp   — t          j        dt           j        ¦  «        }|                     d| ¦  «        }|S )Ns   \\ud[89a-f][0-9a-f]{2}r   )r4   ÚcompileÚ
IGNORECASEÚsub)ri   r6   Úresults      r   Ú_elide_surrogatesro   ²   s.   € ÝŒjÐ3µR´]ÑCÔC€GØ�[Š[˜˜aÑ Ô €FØ€Mr   c           	     óà  — 	 t          j        | t          t          ¬¦  «        S # t          $ �r?}t
                               dt          |¦  «        › d�¦  «         t          | ¦  «        }	 t          j        |t          t          ¬¦  «        cY d}~S # t          $ r5}t
                               dt          |¦  «        › d�¦  «         Y d}~nd}~ww xY wt          j        |t          d¬¦  «                             d¦  «        }	 t          j        t          j        |                     dd	¬
¦  «        ¦  «        ¦  «        }n$# t           j        $ r t          |¦  «        }Y nw xY w|cY d}~S d}~ww xY w)a7  Serialize an object to a JSON formatted string.

    Parameters
    ----------
    obj : Any
        The object to serialize.
    default : Callable[[Any], Any] or None, default=None
        The default function to use for serialization.

    Returns:
    -------
    str
        The JSON formatted string.
    )ÚdefaultÚoptionzOrjson serialization failed: z. Falling back to json.Nz2Orjson serialization with normalized keys failed: T)rq   Úensure_asciizutf-8Úsurrogateescape)Úerrors)r   ÚdumpsrU   Ú_ORJSON_OPTIONSÚ	TypeErrorr<   r=   rP   rY   rh   rB   ÚencodeÚloadsr;   ÚJSONDecodeErrorro   )r>   r?   Únormalized_objÚretry_ern   s        r   Ú
dumps_jsonr~   ¸   sÏ  € ð ÝŒ}ØÝ#Ý"ð
ñ 
ô 
ð 	
øõ
 ð ñ ð å�ŠÐUµT¸!±W´WÐUÐUÐUÑVÔVÐVÝ-¨cÑ2Ô2ˆð
	Ý”=ØÝ<Ý&ðñ ô ð ð ð ð ð ð øõ
 ð 	ð 	ð 	Ý�LŠLð:Ý˜‘=”=ð:ð :ð :ñô ð ð ð ð ð ð øøøøð	øøøõ
 ”ØÝ8Øð
ñ 
ô 
÷ Š&�‰/Œ/ð	 	ð
	/Ý”]Ý”˜fŸmšm¨GÐ<M˜mÑNÔNÑOÔOñô ˆFˆFøõ Ô&ð 	/ð 	/ð 	/Ý& vÑ.Ô.ˆFˆFˆFð	/øøøàˆˆˆˆˆˆøøøøð5øøøsh   ‚ # £E-®:E(Á) BÂ	E-Â
CÂ+C	ÃE(Ã	CÃ2E(Ä;D=Ä<E(Ä=EÅE(ÅEÅE(Å"E-Å(E-)r>   r   rH   r   )ri   r7   rH   r7   )r>   r   rH   r7   ))Ú
__future__r   r9   r   r   r%   r+   rB   Úloggingr2   r4   r   Útypingr   Úlangsmith._internalr   Úzoneinfor   ÚImportErrorÚ	getLoggerr   r<   ÚOPT_SERIALIZE_NUMPYÚOPT_SERIALIZE_DATACLASSÚOPT_SERIALIZE_UUIDÚOPT_NON_STR_KEYSrw   r   r)   r*   Úboolr   rc   r@   rG   Ú__annotations__rU   rY   rh   ro   r~   r   r   r   ú<module>rŒ      s/  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'ð(Ø!Ð!Ð!Ð!Ð!Ð!Ð!øØð (ð (ð (ð(ð (ð (ð (ð (ñ (ô (ð (ð (ð (ð(øøøð 
ˆÔ	˜8Ñ	$Ô	$€àÔØÔ%ñ&àÔ ñ!ð Ôñð ð ˜˜U D¨$¨$¨t©*¬*Ð5€ð)ð )ð )ð\ 	Ø vÐ.Ð.ðð �N DÐ)Ð*ØˆR€LØ�€Oð<Ð ð ð ð ñ ð ð ð ð ð@,ð ,ð ,ð ,ð^6ð 6ð 6ð 6ðð ð ð ð/ð /ð /ð /ð /ð /s   ½A ÁAÁA