Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
run_trees.cpython-313.pyc356 linesDownload Raw Back to __pycache__
1�

2��j!�����%SrSSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSK	r3SSKJrJ
r
 SSKJrJr SSKJrJrJrJrJr SSKJr SSKJrJrJr SS	KJrJr SSKJ s J!r! SS4K"J#r$ SSK"J%r% SSK&J'r'J(r( SS
K)J*r*J+r+J,r,J-r-J.r. SSK/J0r0 \Rb"\25r3"SS\5r4"SS\SS9r5"SS\SS9r6"SS\SS9r7\8"SS15r9S\:S'S?Sjr;Sr<\Rz"\<S35r>\>RS 5r@\Rz"\<S!35rA\Rz"\<S"35rB\Rz"\<S#35rC\Rz"\<S$35rD\Rz"S%5rE\"S\F"55rG\R�"5rI\R�\\
\7"S&SS'9rK\R�\\L"S(SS'9rM\"S\F"55rNS)rOS*rPS@S+jrQ\N\N\N\N\N4SAS-jjrRSBS.jrS"S/S0\$R�5rU"S1S25rV\R�"S3S49SCS5j5rXSDS6jrYSES7jrZSFS8jr[SGS9jr\\!R�q^S,\:S:'S0S0/r_SHS;jr`"S<S=\5raSIS>jrbg)JzSchemas for the LangSmith API.�)�annotationsN)�Mapping�Sequence)�datetime�timezone)�Any�5NamedTuple�Optional�Union�cast)�UUID)�6ConfigDict�Field�model_validator)�NotRequired�	TypedDict)�schemas)�utils)�uuid7�uuid7_deterministic)�ID_TYPE�7RUN_TYPE_T�Client�_dumps_json�_ensure_uuid)�uuid7_from_datetimec�$�\rSrSr%SrS\S'Srg)�8ApiKeyAuth�z*API key authentication for write replicas.�str�api_key�N��__name__�9__module__�__qualname__�__firstlineno__�__doc__�__annotations__�__static_attributes__r"��YD:\code\apps\devtools\python\user_packages\Python313\site-packages\langsmith/run_trees.pyrrs10��4�
�Lr+rc�.�\rSrSr%SrS\S'S\S'Srg)	�ServiceAuth�$z9Service-to-service JWT authentication for write replicas.r �service_key�NotRequired[str]�	tenant_idr"Nr#r"r+r,r.r.$s��C����r+r.F)�totalc�L�\rSrSr%SrS\S'S\S'S\S'S\S'S\S'S	rg11)�AuthHeaders�+z1Custom authentication headers for write replicas.r r!r0r2�
authorization�cookier"Nr#r"r+r,r5r5+s ��;�
�L����N����Kr+r5c�V�\rSrSr%SrS\S'S\S'S\S'S\S	'S12\S'S\S
'Srg)�WriteReplica�5z+Configuration for a write replica endpoint.�
Optional[str]�api_urlr1r!r5�auth�project_name�Optional[dict]�updates�Optional[Client]�clientr"Nr#r"r+r,r:r:5s.��5�
��
��13����
����14r+r:r?rAzfrozenset[str]�_HEADER_SAFE_REPLICA_FIELDSc	��[[UR5VVs0sHupU[;dMX_M snn5$s snnf�N)rr:�itemsrD)�replica�k�vs   r,�_filter_replica_for_headersrKNs;����!�-�-�/�N�/�$�!�Q�2M�-M����/�N����Ns15�A�Az16langsmith-�trace�utf-8�metadata�tags�project�replicas�__omit_auto_outputs�	_REPLICAS��default�_DISTRIBUTED_PARENT_IDc���[U[5(aU$[U[5(d;[US5(a*[	UR175(aUR5$[U5$)N�18model_dump)�19isinstance�dict�type�hasattr�callablerX)�values r,�_coerce_to_dictr_lsX���%�������u�d�#�#��E�<�(�(��U�%�%�&�&����!�!���;�r+r/c��[c'[ [c[S0UD6qSSS5 [$[$!,(df   [$=f)Nr")�_CLIENT�_LOCKr)�init_kwargss r,�get_cached_clientrd|s;����
��� �/�;�/����N�7�N��U��N�s	�5�20ArBc���[ U[LaUqU[La*[RRU5 U[lU[La*[RRU5 U[lU[La*[RRU5 U[l21U[La*[RRU5 U[lSSS5 g!,(df   g=f)a/	Configure global LangSmith tracing context.22 23This function allows you to set global configuration options for LangSmith24tracing that will be applied to all subsequent traced operations. It modifies25context variables that control tracing behavior across your application.26 27Do this once at startup to configure the global settings in code.28 29If, instead, you wish to only configure tracing for a single invocation,30use the `tracing_context` context manager instead.31 32Args:33    client: A LangSmith Client instance to use for all tracing operations.34 35        If provided, this client will be used instead of creating new clients.36 37        Pass `None` to explicitly clear the global client.38    enabled: Whether tracing is enabled.39 40        Can be:41 42        - `True`: Enable tracing and send data to LangSmith43        - `False`: Disable tracing completely44        - `'local'`: Enable tracing but only store data locally45        - `None`: Clear the setting (falls back to environment variables)46    project_name: The LangSmith project name where traces will be sent.47 48        This determines which project dashboard will display your traces.49 50        Pass `None` to explicitly clear the project name.51    tags: A list of tags to be applied to all traced runs.52 53        Tags are useful for filtering and organizing runs in the LangSmith UI.54 55        Pass `None` to explicitly clear all global tags.56    metadata: A dictionary of metadata to attach to all traced runs.57 58        Metadata can store any additional context about your runs.59 60        Pass `None` to explicitly clear all global metadata.61 62Examples:63    Basic configuration:64    >>> import langsmith as ls65    >>> # Enable tracing with a specific project66    >>> ls.configure(enabled=True, project_name="my-project")67 68    Set global trace masking:69    >>> def hide_keys(data):70    ...     if not data:71    ...         return {}72    ...     return {k: v for k, v in data.items() if k not in ["key1", "key2"]}73    >>> ls.configure(74    ...     client=ls.Client(75    ...         hide_inputs=hide_keys,76    ...         hide_outputs=hide_keys,77    ...     )78    ... )79 80    Adding global tags and metadata:81    >>> ls.configure(82    ...     tags=["production", "v1.0"],83    ...     metadata={"environment": "prod", "version": "1.0.0"},84    ... )85 86    Disabling tracing:87    >>> ls.configure(enabled=False)88N)
rb�	_SENTINELra�_context�_TRACING_ENABLED�set�_GLOBAL_TRACING_ENABLED�
_PROJECT_NAME�_GLOBAL_PROJECT_NAME�_TAGS�_GLOBAL_TAGS�	_METADATA�_GLOBAL_METADATA)rC�enabledr?rOrNs     r,�	configurerr�s���X89���"��G��)�#��%�%�)�)�'�2�/6�H�,��y�(��"�"�&�&�|�4�,8�H�)��y� ��N�N���t�$�$(�H�!��9�$����"�"�8�,�(0�H�%�90���s�CC(�(91C6c�p�1Skn[UR55U-92nU(a[SU35eU$)z2Validate that the dict only contains allowed keys.>93�94input_cost�95total_cost�output_cost�input_tokens�total_tokens�
output_tokens�input_cost_details�input_token_details�output_cost_details�output_token_detailsz#Unexpected keys in usage metadata: )ri�keys�96ValueError)�data�allowed_keys�97extra_keyss   r,�!validate_extracted_usage_metadatar��s;���L��T�Y�Y�[�!�L�0�J���>�z�l�K�L�L��Kr+c
�^�\rSrSr%SrS\S'\"\S9rS\S'\"SS	9r	S\S98'\"SS9r99S\S
'\"SSS9rS\S'\"SSS9rS\S'\"\
SS9rS\S'\"SSS9rS\S'\"SSS9rS\S'\"\S9rS \S!'\"\
S9rS"\S#'\"\
S9rS$\S%'\"SSS9rS&\S''\"S(S)S*9rS\S+'\"S(S,S*9rS\S-'\"S.S/S*9rS0\S1'\"SS2S*9rS3\S4'\"SSS5S69r\"S7S89SYS9j5r\"S:S89SZS;j5r\S[S<j5r \S\S=j5r!\"RFS]S>j5r$U4S?jr%\&\&\&\&\&S@.S^SAjjr'S_SBjr(S`SCjr)SaSDjr*SbSEjr+ScSFjr,SSSSSSG.SdSHjjr-SeSSSSSSSSSSSSI.SfSJjjjr.SKr/SgSLjr0ShSiSMjjr1SjSkSNjjr2S.SO.SlSPjjr3SmSQjr4SnSRjr5\6SoSSj5r7\6SpSTj5r8\6SqSUj5r9SrSVjr:SWr;SXr<U=r=$)s�RunTree��z1Run Schema with back-references for posting runs.r �name)�default_factoryr
�id�chainrT�run_typec�J�[R"[R5$rF)r�nowr�utcr"r+r,�<lambda>�RunTree.<lambda>�s�����h�l�l�9Sr+r�100start_timeNT)rU�exclude�Optional[RunTree]�101parent_runr<�parent_dotted_order)r�r�z
list[RunTree]�102child_runsc�>�[R"5=(d S$)NrU)r�get_tracer_projectr"r+r,r�r�s��� 8� 8� :� G�i� Gr+r?)r��alias�session_name�103project_id)rUr��Optional[UUID]�104session_idrZ�extra�Optional[list[str]]rOz105list[dict]�eventsz
Optional[Any]�	ls_client�z!The order of the run in the tree.)rU�description�dotted_orderzThe trace id of the run.�trace_idFz3Whether to allow filesystem access for attachments.�Optional[bool]�dangerously_allow_filesystemz8Projects to replicate this run to with optional updates.� Optional[Sequence[WriteReplica]]rQ�ignore)�arbitrary_types_allowed�populate_by_namer��before)�modec���URS5c>URS5b,SUS;aUSSUS'OSUS;aUSSSUS'URS5cSUS'SU;aURS5US'OS	U;aURS	5US'URS5(dSUS'URS106S5nUbURUS'URUS'SU;aTS
U;aUS
b[	US
5US'O6[107R"[R5nX1S
'[	U5US'SU;aUbURUS'OUSUS'[[URS055 URS5c/US'URS5c/US'URS5c0US'SH=nURU5nUcM[U[5(aM0[U5X'M? URS5c0US'URS5c[R5US'[!US5US'U$)zAssign name to the run.r�N�108serializedr�������UnnamedrCr��_clientr��
parent_run_idr�r�r�r�r�rO�outputs)�inputsr��attachmentsrQ)�get�popr�r�rrr�rr�r�rrZ�109setdefaultrYr_rS�_ensure_write_replicas)�cls�valuesr�r��_key�_vals      r,�infer_defaults�RunTree.infer_defaults$sm���:�:�f��%�&�*�*�\�*B�*N����-�-�!'��!5�f�!=��v�����-�-�!'��!5�d�!;�B�!?��v���:�:�f��%�&�F�6�N��v��"(�*�*�X�"6�F�;��
�&�
 �"(�*�*�Y�"7�F�;���z�z�+�&�&�"&�F�;���Z�Z��d�3�110��!�&0�m�m�F�?�#�,6�,C�,C�F�(�)��v���v�%�&��*>�*J�2�6�,�3G�H��t���l�l�8�<�<�0��'*�|�$�2�3�7��t���V�#��%�%/�%8�%8��z�"�%+�D�\��z�"��T�6�$�$�W�b�1�2��:�:�h��'�!�F�8���:�:�f��%��F�6�N��:�:�i� �(� "�F�9��)�D��:�:�d�#�D���111�4��(>�(>�.�t�4���*��:�:�m�$�,�$&�F�=�!��:�:�j�!�)�!*����F�:��3�F�:�4F�G��z���
r+�afterc���URnU(aUR5(aU$[URUR5nUR112nUbUS-U-UlU$XlU$)z#Ensure the dotted order of the run.�.)r��strip�_create_current_dotted_orderr�r�r�)�self�current_dotted_orderr�s   r,�ensure_dotted_order�RunTree.ensure_dotted_orderWsu�� $�0�0���$8�$>�$>�$@�$@��K�;�D�O�O�T�W�W�U��"�6�6���*� 3�c� 9�<P� P�D����!5���r+c�R�URc[5UlUR$)zReturn the client.)r�rd�r�s r,rC�RunTree.clientes"��113�>�>�!�.�0�D�N��~�~�r+c��UR$rF)r�r�s r,r��RunTree._clientns���~�~�r+c�r�[UR5SSnUR[RS9$)z.Return the start time of the trace (root run).r)�tzinfo)�_parse_dotted_orderr��replacerr�)r��dts  r,�trace_start_time�RunTree.trace_start_timess3��!��!2�!2�
3�A�
6�q�
9���z�z����z�.�.r+c�<>�US:XaX lg[TU]	X5$)zSet the `_client` specially.r�N)r��super�__setattr__)r�r�r^�	__class__s   �r,r��RunTree.__setattr__ys"����9��"�N��7�&�t�3�3r+)r�r�rOrN�usage_metadatac���U[La[U5UlU[La4URR	S05RU=(d 05 U[La*SURS'Uc0UlO[U5UlU[La.SUR['Uc0Ul	O[U5Ul	U[La)[U5URR	S05S'gg)a%Set the inputs, outputs, tags, and metadata of the run.114 115If performed, this will override the default behavior of the116end() method to ignore new outputs (that would otherwise be added)117by the @traceable decorator.118 119If your LangChain or LangGraph versions are sufficiently up-to-date,120this will also override the default behavior of `LangChainTracer`.121 122Args:123    inputs: The inputs to set.124    outputs: The outputs to set.125    tags: The tags to set.126    metadata: The metadata to set.127    usage_metadata: Usage information to set.128 129Returns:130    None131rNF�inputs_is_truthyNTr�)�NOT_PROVIDED�listrOr�r��updater�r_�OVERRIDE_OUTPUTSr�r�)r�r�r�rOrNr�s      r,ri�RunTree.set�s���8�|�#��T�132�D�I��<�'��J�J�!�!�*�b�1�8�8���R�H���%�.3�D�J�J�)�*��~� ���-�f�5����,�&�+/�D�J�J�'�(���!���.�w�7�����-�1�.�A�
�J�J�!�!�*�b�1�2B�C�.r+c��[U[5(aU/nURc/UlURRU5 g)zAdd tags to the run.N)rYr rO�extend)r�rOs  r,�add_tags�RunTree.add_tags�s9���d�C� � ��6�D��9�9���D�I��	�	����r+c��URc0Ul[[UR5RS05nUR	U5 g)zAdd metadata to the run.NrN)r�rrZr�r�)r�rN�	metadata_s   r,�add_metadata�RunTree.add_metadata�s>���:�:���D�J��t�T�Z�Z�0�;�;�J��K�	�����"r+c�b�URc0UlURRU5 g)zlUpsert the given outputs into the run.133 134Args:135    outputs: A dictionary containing the outputs to be added.136N)r�r�)r�r�s  r,�add_outputs�RunTree.add_outputs�s'���<�<���D�L������G�$r+c��URc0UlURRU5 SURS'g)ziUpsert the given inputs into the run.137 138Args:139    inputs: A dictionary containing the inputs to be added.140NFr�)r�r�r�)r�r�s  r,�141add_inputs�RunTree.add_inputs�s8���;�;���D�K������6�"�*/��142�143�%�&r+c��URc/Ul[U[5(aURRU5 g[U[5(aPURRS[144R"[R5R5US.5 gURRU5 g)z�Add an event to the list of events.145 146Args:147    events: The event(s) to be added. It can be a single event, a sequence148        of events, a sequence of dictionaries, a dictionary, or a string.149 150Returns:151    None152N�event�r��time�message)r�rYrZ�appendr rr�rr��	isoformatr�)r�r�s  r,�	add_event�RunTree.add_event�s���&�;�;���D�K��f�d�#�#��K�K���v�&�
���
$�
$��K�K���#�$�L�L����6�@�@�B�%��
�
�K�K���v�&r+)r��error�end_timer�rNc��U=(d$ [R"[R5UlUR153R
[5(dAUb>[U5nUR(dX`l	OURRU5 UbX lUbURU5 UbURU5 gg)z/Set the end time of the run and all child runs.N)rr�rr�r�r�r�r�r_r�r�r�r�r�)r�r�r�r�r�rN�dict_outputss       r,�end�RunTree.end�s���!�>�H�L�L����$>��
��z�z�~�~�.�/�/��"�.�w�7���|�|�#/�L��L�L�'�'��5����J����N�N�6�"������h�'� r+)�run_idr�r�r�r��reference_example_idr�r�rOr�r�c�J�U	bgURbZX�R:a6[RSUSU	SURSURS3	5 [	X�R5n	U=(d SU0nU(a4[U5nUR
S5=(d 0R5nO0n0nUR=(d 0R
S5=(d 0n0UEUEUS'[S0SU_S[U5_S	U_S154U=(d 0_SU=(d 0_SU_S
U_SU_SU	=(d$ [R"[R5_SU155_SU_SU_SUR_SUR _SUR"_SU_SU
=(d 0_SUR$_6nU$)z Add a child run to the run tree.zAdjusting child run 'z' start_time from z to z- to maintain timestamp ordering with parent '�'r�rNr�r�r�r�r�r�rr�r�r�r�r?rQr�rOr�r�r")r��logger�debugr��maxrZr��copyr�r�rrr�rr�r�rQr�r�)r�r�r�rr�r�r�r�rr�r�rOr�r��serialized_�child_extra�156child_meta�parent_meta�runs                   r,�create_child�RunTree.create_childs���(�!�d�o�o�&A��O�O�+����+�D�6�1C�J�<�P��/�/�*�+�#�y�y�k��,��157�Z���9�J� �2�V�T�N����u�+�K��)�)�J�/�5�2�;�;�=�J��K��J��z�z�'�R�,�,�Z�8�>�B��"?�[�"?�J�"?��J���158��159��F�#�160�#�161��<�R��	162�163�M�r��164��
165��166�"6�167�"�?�X�\�\�(�,�,�%?��168��169��170��171��*�*�172��]�]�173��n�n�174� �!175�"$�)�r��#176�$*.�)J�)J�%177��*�178r+c�v�UR1SkSS9nURbo0nURS05nURR5H.upE[	U[179R5(aXSU'M*XRU'M0 X!S'U(aX1S'URbURR5US'U$)N>r�r�r�T)r��exclude_noner�r�r�)	rXr�r�rGrY�180ls_schemas�181Attachmentr�r)r��	self_dict�inputs_r�rIrJs      r,�_get_dicts_safe�RunTree._get_dicts_safeTs����O�O�7�d�$�182�	��;�;�"��G�#�-�-�
�r�:�K����)�)�+����a��!6�!6�7�7�%&��N�!"�A�J�	,�183#*�h���+6�-�(��<�<�#�#'�<�<�#4�#4�#6�I�i� ��r+c���URS5=n(a�URS5nSn[U5n[U5H"upgU[*Sn[U5U:XdM Un O UbDXES-Sn	SRU	5US'U	(a[
U	S[*S5US'OUSUS'[URS55U:XaURSS5 gg)	z�Slice the parent id from dotted order.184 185Additionally check if the current run is a child of the parent. If so, update186the parent_run_id to None, and set the trace id to the new root id after187parent_id.188r�r�N�rr�r�r�)r��splitr �	enumerate�TIMESTAMP_LENGTH�joinr
r�)189r��	parent_id�run_dictr��segs�	start_idx�idx�part�seg_id�trimmed_segss190          r,�_slice_parent_id�RunTree._slice_parent_idjs���$�<�<��7�7�<�7��%�%�c�*�D��I��I��I�&�t�_�	���/�/�0�1���v�;�)�+� #�I��	-�191�$�#��M�O�4��+.�8�8�L�+A���(��+/��Q��AQ�@Q�@R�0S�+T�H�Z�(�+3�D�>�H�Z�(��x�|�|�O�,�-��:��L�L��$�/�;r+c���UR5nXR:XaU$U(aCURSS5(a,[R5nU(aUR	XC5 USn[[
[U55U5nURS5nU(a[[
[U55U5nOSnURS5n	U	(a[[
[U	55U5n192OSn193URS5(a�USRS5n/nUSS	HFn
[
U
[*S5n[X�5nURU
S[*[U5-5 MH URUS	S[*[U5-5 SRU5nOSn[R"U5nURUUU194UUS195.5 U(aURU5 U$)zDRewrites ids/dotted_order for a given project with optional updates.�rerootFr�r�Nr�r�r�r�)r�r�r�r�r�)rr�r�rVr%rr
r rrr�rr�deepish_copyr�)r�r?rAr�distributed_parent_id�old_id�new_id�	old_trace�	new_trace�parent�196new_parentr�rebuiltr"r#�repl�dotted�dups                  r,�_remap_for_project�RunTree._remap_for_project�s����'�'�)���,�,�,��O��w�{�{�8�U�3�3�$:�$>�$>�$@�!�$��%�%�&;�F��$���$�T�#�f�+�%6��E���L�L��,�	��+�D��Y��,@�,�O�I��I����o�.���,�T�#�f�+�->��M�J��J��<�<��'�'��N�+�1�1�#�6�D��G��S�b�	���d�$4�#4�#5�6�7��*�6�@�����t�$6�&6�%6�7�#�d�)�C�D�"�
�N�N�4��8�$6�&6�%6�7�#�f�+�E�F��X�X�g�&�F��F�� � ��*���197�198��%�!+� &� ,�
�	199���J�J�w���200r+c��UR(a�URH�nURS5=(d URnURS5nURX45n[	U5upgp�p�URS5=(d UR201n[
US5(d![S[U5R35eUR"S0UDUUUU	U202US.D6 M� O,UR5n
UR203R"S0U
D6 UR(a}URVs/sHn[U5PM nnURRS[ R""[$R&5R)5[+U5S.5 U(d#UR,HnUR/S	S2049 M ggs snf)
z,Post the run tree to the API asynchronously.r?rArC�205create_run�6WriteReplica 'client' must be a langsmith.Client, got )r!r=r0r2r7r8�uploaded_attachmentr�F)�exclude_child_runsNr")rQr�r�r5�_extract_replica_authrCr\�	TypeErrorr[r$r8rr�r r�r�rr�rr�r�rir��post)r�r;rHr?rArr=r!r0r2r7r8�replica_client�kwargsr�r~�	child_runs                 r,r>�RunTree.post�s����=�=��=�=��&�{�{�>�:�O�d�>O�>O��!�+�+�i�0���2�2�<�I��)�'�2�P��+�-�")���X�!6�!E�$�+�+���~�|�<�<�#��#�N�3�<�<�=�?����)�)����#�#� +�'�"/�!��)�.�)�)�+�F��K�K�"�"�,�V�,����*.�*:�*:�;�*:�$�C��I�*:�D�;��K�K���1�$�L�L����6�@�@�B�"�4�y��
�"�!�_�_�	����%��8�-�"��<s�7G)�exclude_inputsc���UR(dUR5 URR5VVs0sHup#[	U[2065(dMX#_M  nnnU(aR[
SUR5S5nU(a.UR5VVs0sHup#X%S;dMX#_M nnnUR(Ga�URGH�nURS5=(d URnURS5n	URX�5n207[U5up�p�nnURS5=(d UR n[#US5(d![%S	['U5R(35eUR+U208S209U210SU211RS5U212RS
5U(aSOU213SU214SU215RS5U216RS5U217RS5U218RS5U219RS5U220RS5U221RS5U222RS5U223RS5U224RS5UUUU
UUUS9 GM� gUR R+UR,UR.[1[2UR45UR6U(aSO,UR8(aUR8R;5OSUR<(aUR<R;5OSUR>UR@URURBURURDURFURURHURJUS9 gs snnfs snnf![a#n[RSU35 SnAGNSnAff=f)z�Patch the run tree to the API in a background thread.225 226Args:227    exclude_inputs: Whether to exclude inputs from the patch request.228c3�T# �UHnURS5S:XdMUv� M  g7f)r�r:N)r�)�.0�evs  r,�	<genexpr>� RunTree.patch.<locals>.<genexpr>�s*����"-�B��6�6�&�>�-B�B���"-�s�(�	(Nr�z'Error filtering attachments to upload: r?rArC�229update_runr9r�r�r�r�r�r�r�r�r�rr�r�r�r�rOr�)r�rr�r�r�r�r�r�r�rr�r�r�r�rOr�r�r!r=r0r2r7r8)r�rr�r�r�r�r�r�r�rr�r�r�r�rOr�r�)&r�r�r�rGrY�tuple�nextr��	Exceptionr�warningrQr�r�r5r<rCr\r=r[r$rJr�r�rrr�r�r�rr�r�r�rr�r�rOr�)r�rC�arJr��uploaded�erHr?rArr=r!r0r2r7r8r?s                  r,�patch�
RunTree.patch�sI���}�}��H�H�J�!�-�-�3�3�5�230�5�T�Q��A�u�9M�D�A�D�5�	�231�	J����"&�+�+��232�
���%0�$5�$5�$7�#�$7�D�A��Y�$7�7����$7� �#��=�=�=��=�=��&�{�{�>�:�O�d�>O�>O��!�+�+�i�0���2�2�<�I��)�'�2�P��+�-��")���X�!6�!E�$�+�+���~�|�<�<�#��#�N�3�<�<�=�?����)�)�!�&�)�#�D�>�%�\�\�*�5�'�|�|�L�9�#1�4�x��7I�$�Y�/�"�,�,�w�/�"*�,�,��"?�!)���n�!=�)1���6L�)M�%�\�\�*�5�!)���n�!=�%�\�\�*�5�#�<�<��1�!���f�-�"�,�,�w�/� +�#�#� +�'�"/�!�/*��)�N
�K�K�"�"��Y�Y��w�w��j�$�-�-�8��?�?�&��04���$�+�+�*�*�,��/3�|�|����)�)�+���j�j�"�0�0�!�.�.�%)�%>�%>����!�.�.�����{�{��Y�Y��j�j�'�+
#�
��}233��#��234�	J��N�N�D�Q�C�H�I�I��	J�s;�N&�N&�(>N2�&N,�8N,�>N2�,N2�2235O�<O�Oc��g)z$Wait for all `_futures` to complete.Nr"r�s r,�wait�RunTree.waitDs��r+c�4�URRUS9$)zReturn the URL of the run.)r)rC�get_run_urlr�s r,�get_url�RunTree.get_urlHs���{�{�&�&�4�&�0�0r+c�T�[U0n[[UR"U40UD65$)z_Create a new 'child' span from the provided dotted order.236 237Returns:238    RunTree: The new span.239)�LANGSMITH_DOTTED_ORDERrr��from_headers)r�r�r@�headerss    r,�from_dotted_order�RunTree.from_dotted_orderLs/��
#�L�240���G�S�-�-�g�@��@�A�Ar+c	��^�SSKJnJn SSKJnJn SSKJm Uc)U"[U[5(a[XQ5OS5nO[XQ5nURS5=n	(Ga�[X�U45(Ga�U	R(Ga�[U4SjU	R5S5=n241(Ga�U242R R[#U	R55=n(a�UR$(a�UR$nUR&US	'UR(US243'UR*US'UR,US'UR.US
'[1[3UR4=(d /URS/5-55US'UR6US'UR9S05n
U
R9S05nUR;UR<5 OI[?U244S5(a7U	RU245R@;aU246R@U	RSnOgU247RBUS'U248RDUS'[FRH"U40UD6$g![an[S5UeSnAff=f)z�Create a new 'child' span from the provided runnable config.249 250Requires `langchain` to be installed.251 252Returns:253    The new span or `None` if no parent span information is found.254r)�AsyncCallbackManager�CallbackManager)�RunnableConfig�
ensure_config)�LangChainTracerz{RunTree.from_runnable_config requires langchain-core to be installed. You can install it with `pip install langchain-core`.N�	callbacksc3�N># �UHn[UT5(dMUv� M g7frF)rY)rF�trfs  �r,rH�/RunTree.from_runnable_config.<locals>.<genexpr>�s����N��1�z�!�_�/M�Q�Q��s�%�	%r�r�r�r�r�rOr�r�rN�	order_maprrCr?)%� langchain_core.callbacks.managerrbrc�langchain_core.runnablesrdre� langchain_core.tracers.langchainrf�ImportErrorrYrZrr�r�rL�handlers�run_mapr r�r�r�r�r�r��sortedrirOr�r�r�rNr\rkrCr?r�r_)r��configr@rbrcrdrerQ�config_�cb�tracerrr��extra_r�rfs               @r,�from_runnable_config�RunTree.from_runnable_config\s/���	�
�
O�H��>�#�0:�6�4�0H�0H��^�,�d��G��>�2�G��;�;�{�+�
+�R�
+��2�1E�F�G�G�� � � ��N����N�������~�~�)�)�#�b�.>�.>�*?�@�@��@�c�FV�FV�"�/�/��%(�\�\��z�"�#&�:�:��x� �$'�K�K��y�!�'*�~�~��|�$�%(�\�\��z�"�!'��C�H�H�,S��V�Z�Z��PR�=S�8S�(T�!U��v��!$����v���*�*�7�B�7��"�-�-�j�"�=�	�� � ����.����-�-�"�2B�2B�f�FV�FV�2V�%�/�/��0@�0@�A�!�D���%�}�}�F�8��%+�%8�%8�F�>�"��,�,�\�D�V�D�D���U�	��H���
��	�s�I�255I9�(I4�4I9c	���UR5n[[[UR	[25655nU(dC[[[UR	[55nU(dgURS5nUR5n[U5nUSSnX�S'USSUS'XcS'[U5S	:�aUS257SUS'UR	S5=(d$ [R"[R5US'UR	S
5=(d SUS
'UR	S5=(d SUS'[ R#U5n	U	R$(dU	R&(a�UR)S05US'USR)S05USS'0U	R$EUSSEn258X�SS'[+[-U	R&UR	S/5-55nX�S'U	R.(aU	R.US'U	R0(aU	R0US'[3S0UD6n[4R-[UR655 U$)aLCreate a new 'parent' span from the provided headers.259 260Extracts parent span information from the headers and creates a new span.261 262Metadata and tags are extracted from the baggage header.263 264The dotted order and trace id are extracted from the trace header.265 266Returns:267    The new span or `None` if no parent span information is found.268NrMrrr�r�r�r�������r�r�r�r�r�r/r�rNrOr?rQr")rrr269r r�r\�bytes�LANGSMITH_DOTTED_ORDER_BYTES�decoder�r��lenrr�rr��_Baggager]rNrOr�rrrir?rQr�rVr�)
r�r^r@�	init_args�langsmith_trace�langsmith_trace_bytesr��parsed_dotted_orderr��baggagerNrO�run_trees
             r,r]�RunTree.from_headers�sA���K�K�M�	��x��}�g�k�k�:P�.Q�R���$(�������-I�!J�%�!�)��3�:�:�7�C�O�-�3�3�5��1�2E�F��&�q�)�!�,�� (�*��-�b�1�!�4�	�$��$7�.�!��"�#�q�(�)<�R�)@��)C�I�o�&�#,�-�-��"=�#270�����L�L�B271�	�,��!*�
�
�j� 9� D�W�	�*��%�M�M�&�1�=�X�	�&���'�'��0�����w�|�|�!*�!5�!5�g�r�!B�I�g��-6�w�-?�-J�-J��B�.�I�g��z�*�N�'�*�*�M�i��.@��.L�M�H�-5�g��z�*��#�g�l�l�Y�]�]�6�2�-F�F�G�H�D� $�f�����(/�(<�(<�I�n�%����$+�$4�$4�I�j�!��'�Y�'��	�"�"�3�x�{�{�#3�4��r+c��0nUR(aURU['[URRS05URURURS9nUR5US'U$)z0Return the `RunTree` as a dictionary of headers.rN�rNrOr?rQr�)272r�r�r\r�r�r�rOr�rQ�	to_header)r�r^r�s   r,�273to_headers�RunTree.to_headers�so�����=�=�37�3D�3D�G�-�.�0���Z�Z�^�^�J��3�����*�*��]�]�	274��%�.�.�0��	���r+c	�p�SURSURSURSURS3	$)z7Return a string representation of the `RunTree` object.zRunTree(id=z, name='z
', run_type='z', dotted_order='z'))r�r�r�r�r�s r,�__repr__�RunTree.__repr__�sB���$�'�'��(�4�9�9�+�6�����'8��9J�9J�8K�2�
O�	275r+)	r�r�r�r�r�r�r�r�rO)r��dict[str, Any]�returnr�)r�r�)r�r)r�rB)r�r)r��Optional[Mapping[str, Any]]r�r�rOzOptional[Sequence[str]]rNr�r�z+Optional[ls_schemas.ExtractedUsageMetadata]r��None)rOzUnion[Sequence[str], str]r�r�)rNr�r�r�)r�r�r�r�)r�r�r�r�)r�zTUnion[ls_schemas.RunEvent, Sequence[ls_schemas.RunEvent], Sequence[dict], dict, str]r�r�)r�r@r�r<r��Optional[datetime]r�z'Optional[Sequence[ls_schemas.RunEvent]]rN�Optional[dict[str, Any]]r�r�)r�)r�r r�rrzOptional[ID_TYPE]r�r@r�r@r�r@r�r<rr�r�r�r�r�rOr�r�r@r�z Optional[ls_schemas.Attachments]r�r�)rr rrZr�r�rF)r?r rAr@r�rZ)T)r;�boolr�r�)rCr�r�r�)r�r��r�r )r�r r@rr�r�)rsr@r@rr�r�)r^z-Mapping[Union[str, bytes], Union[str, bytes]]r@rr�r�)r��dict[str, str])>r$r%r&r'r(r)rrr�r�r�r�r�r�r�r�r�rZr�rOr�r�r�r�r�rQr�model_configrr�r��propertyrCr��	functools�cached_propertyr�r�r�rir�r�r�r�r�r�r
rr%r5r>rRrUrY�classmethodr_rxr]r�r�r*�
__classcell__)r�s@r,r�r��sM���;�276
�I��U�+�B��+��'�*�H�c�*� �1S�T�J��T�$)�$��$E�J�!�E�).�t�T�)J���J� %���!�J�
���G���L�#��"'�t�<�!H�J��H���-�E�4�-� %�d� ;�D�277�;��t�4�F�J�4��$�T�4�@�I�}�@��� C��L�#���2�3M�N�H�d�N�38��#X�4� �.��27��N�2�H�.��278� $����L��(�#�0�$�0�d�'�"��#�������������/��/�2794�/;�/;�(4�0<�FR�1�,�1�-�	1�280&�1�.�
1�D�1�281�1�f�#�%�/� '�282� '�283� '�J#'�#�'+�:>�-1�(� �(��	(�284%�(�8�
(�+�(�285�(�< '�;�286%)�%)�!%�"&�#�/3�)-�'+�$(� $�8<�;��;��;�287"�;�#�
;��;� �;��;�-�;�'�;�%�;�"�;��;�6�;� 288�!;�z�,0�><@�3��3�*8�3�	
�3�j'9�R/4�\�|
�1��
B��
B��
B�289�	
B��
B��=��=��=�290�	=��=�~�>�C�>�OR�>�	�>��>�@�291�292r+r�c�n�\rSrSrSrS	S293Sjjr\SSj5r\SSj5rS
Sjr	Sr294g)r�i�zBaggage header information.Nc�p�U=(d 0UlU=(d /UlX0lU=(d /Ulg)zInitialize the Baggage object.Nr�)r�rNrOr?rQs     r,�__init__�_Baggage.__init__�s+��!��B��
��J�B��	�(�� ��B��
r+c�d�U(dU"5$0n/nSnSnURS5GH�nURSS5upxU[:Xa5[R"[R295R
U55nMWU[:Xa0[R296R
U5RS5nM�U[:Xa![R297R
U5nM�U[:XdM�[R"[R298R
U55n	/n299U	H�n[U[[45(a:[U5S:Xa+U300R[S[!US5USS95 MX[U["5(aD[%['[U55nUR)S5(aU301RU5 M�M�[*R-S	U35 M� U302nGM� U"X#XES9$![.a"n
[*R-S303U
35 Sn
A
N.Sn
A
ff=f)z4Create a Baggage object from the given header value.N�,�=rr{r)r=r?rAr?z#Unknown replica format in baggage: zError parsing baggage header: r�)r�LANGSMITH_METADATA�json�loads�urllib�parse�unquote�LANGSMITH_TAGS�LANGSMITH_PROJECT�LANGSMITH_REPLICASrYrKr�r�r�r:r rZrKrr�rrNrM)r��header_valuerNrOr?rQ�item�keyr^�
replicas_data�parsed_replicas�replica_item�filtered_replicarQs              r,�from_header�_Baggage.from_headers�����5�L�������15��&	A�$�*�*�3�/��!�Z�Z��Q�/�304���,�,�#�z�z�&�,�,�*>�*>�u�*E�F�H��N�*�!�<�<�/�/��6�<�<�S�A�D��-�-�#)�<�<�#7�#7��#>�L��.�.�$(�J�J�v�|�|�/C�/C�E�/J�$K�M�:<�O�(5��&�|�e�T�]�C�C� #�L� 1�Q� 6�,�2�2� ,�,0�14�\�!�_�1E�,8��O�!"��(��d�;�;�/J� $�\�<� @�0�,� 0�3�3�N�C�C� /� 6� 6�7G� H� D�#�N�N�"E�l�^� T��%�/)6�0 /�H�G0�N��|�305�	306���	A��N�N�;�A�3�?�@�@��	A�s�CH�1DH�307H/�
H*�*H/c���SU;aURUS5$SU;a1UR[[US5RS55$URS5$)Nr�sbaggagerM)r�rr}r)r�r^s  r,r]�_Baggage.from_headers8s[������?�?�7�9�#5�6�6�
�7�
"��?�?�4��w�z�/B�#C�#J�#J�7�#S�T�T��?�?�4�(�(r+c�L�/nUR(aL[UR5nUR[S[R308R
U535 UR(aRSRUR5nUR[S[R309R
U535 UR(aAUR[S[R310R
UR535 SRU5$)z,Return the Baggage object as a header value.z	metadata=r�ztags=zproject=)311rNrr��LANGSMITH_PREFIXr�r��quoterOrr?)r�rG�serialized_metadata�serialized_tagss    r,r��_Baggage.to_headerAs������=�=�"-�d�m�m�"<���L�L�#�$�I�f�l�l�.@�.@�AT�.U�-V�W�
��9�9�!�h�h�t�y�y�1�O��L�L�#�$�E�&�,�,�*<�*<�_�*M�)N�O�
�����L�L�#�$�H�V�\�\�-?�-?��@Q�@Q�-R�,S�T�
��x�x���r+)rNr?rQrO)NNNN)rNzOptional[dict[str, str]]rOr�r?r<rQr�)r�r<r�r�)r^zMapping[Union[str, bytes], Any]r�r�r�)r$r%r&r'r(r�r�r�r]r�r*r"r+r,r�r��sl��%�.2�$(�&*�59�'�*�'�"�'�$�	'�3123�'��2313��2314�h�)��)�r+r�r)�maxsizec315��U(d/$[R"U5n[U[5(Ga(/nUGHn[U[5(d-[316R
S[U5R35 MFURS5nURS5n[U[5(d-[317R
S[U5R35 M�[U[5(d-[318R
S[U5R35 M�UR[URS5[US9SSS	95 GM  U$[U[5(a�[U5 /nUR!5H}upgURS5n[U[5(a$UR[U[US9SSS	95 MO[319R
S320US[U5R35 M U$[321R
S[U5R35 /$!["R$a e[&a$n[322R
S
U35 /sSnA$SnAff=f)z�Parse write replicas from LANGSMITH_RUNS_ENDPOINTS environment variable value.323 324Supports array format [{"api_url": "x", "api_key": "y"}] and object format325{"url": "key"}.326zBInvalid item type in LANGSMITH_RUNS_ENDPOINTS: expected dict, got r=r!zGInvalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got zGInvalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got �/)r!N)r=r>r?rAz7Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL z: expected string, got u�Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON list of objects with api_url and api_key properties, or object mapping url->apiKey, got u�Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON list of objects with api_url and api_key properties, or object mapping url->apiKey: )r�r�rYr�rZrrNr[r$r�r r�r:�rstripr5�_check_endpoint_env_unsetrGr�LangSmithUserErrorrM)	�env_var�parsedrQr�r=r!�urlr�rQs	         r,�"_parse_write_replicas_from_env_varr�UsQ����	�N����G�$���f�d�#�#��H���!�$��-�-��N�N�.�.2�4�j�.A�.A�-B�D����(�(�9�-���(�(�9�-��!�'�3�/�/��N�N�0�04�W�
�0F�0F�/G�I���!�'�3�/�/��N�N�0�04�W�
�0F�0F�/G�I������ � '���s� 3�(��9�%)� $�	��3�B�O�
���
%�
%�%�f�-��H�"�L�L�N����j�j��o���c�3�'�'��O�O�$�$'�!,�S�!9�)-�$(�	���N�N�Q��%� 0�04�S�	�0B�0B�/C�E��327�%+�&�O��N�N�$�$(��L�$9�$9�#:�<�
�328�I���#�#��
������
��C�
!�	329�330�	��
�s+�EI�B4I�,I�J�I>�8J�>Jc�D�[R"S5n[U5$)zFGet write replicas from LANGSMITH_RUNS_ENDPOINTS environment variable.�RUNS_ENDPOINTS)r�get_env_varr�)r�s r,�_get_write_replicas_from_envr��s����� 0�1�G�-�g�6�6r+c��SSKnU(aCURS5(dURS5(a[R"S5egg)zECheck if endpoint environment variables conflict with runs endpoints.rN�LANGSMITH_ENDPOINT�LANGCHAIN_ENDPOINTz]You cannot provide both LANGSMITH_ENDPOINT / LANGCHAIN_ENDPOINT and LANGSMITH_RUNS_ENDPOINTS.)�os�getenvrr�)r�r�s  r,r�r��sF��
�
�2�9�9�1�2�2�b�i�i�@T�6U�6U��&�&�
,�331�	332�7V�vr+c�2�Uc333[5$[U5$)z(Convert replicas to WriteReplica format.)r�r�)rQs r,r�r��s����+�-�-���>�r+c	��URS5nUVs/sH5n[R"US[*S5[	U[*S54PM7 sn$s snf)zParse the dotted order string.r�N�%Y%m%dT%H%M%S%fZ)rr�strptimerr
)r��partsr"s   r,r�r��sp�����s�#�E���334�D�
���d�#5�%5�$5�6�8J�K���'�'�(�)�*�	335�����s�<Arac��U=(d$ [R"[R5nU=(d [	U5nURS5[
U5-$)z Create the current dotted order.r�)rr�rr�r�strftimer )r�r�st�id_s    r,r�r��sD��336�	1�x�|�|�H�L�L�1�B�337�338+�'��+�C�
�;�;�)�*�S��X�5�5r+c�R�\rSrSr%S\S'S\S'S\S'S\S'S\S'S\S'S	rg339)�ReplicaAuthi�z340str | Noner=r!r0r2r7r8r"N)r$r%r&r'r)r*r"r+r,r�r��s&��
��
���������r+r�c341�R�URS5nSU;al[[US5n[UURS5URS5URS5URS5URS5S9$SU;a[UUSSSSSS9$[USSSSSS9$)	Nr=r>r!r0r2r7r8)r=r!r0r2r7r8)r�rr5r�)rHr=r>s   r,r<r<�s����k�k�)�$�G�
����K����1�����H�H�Y�'�����/��h�h�{�+��(�(�?�3��8�8�H�%�
342�	343��G�����I�&�����
344�	345��������
�r+)rHr:r�r:)rcrr�r)346rCrBrqr�r?r<rOr�rNr�)r��!ls_schemas.ExtractedUsageMetadatar�r�)r�r<r��list[WriteReplica])r�r�)r�r�r�r�)rQr�r�r�)r�r r�zlist[tuple[datetime, UUID]])r�r�rr�r�r )rHr:r�r�)cr(�347__future__r�contextvarsr�r��logging�sys�	threading�urllib.parser��collections.abcrrrr�typingrr	r348rr�uuidr
�pydanticrrr�typing_extensionsrr�langsmith._internal._context�	_internalrg�	langsmithrrr�langsmith._internal._uuidrr�langsmith.clientrrrrr�langsmith.uuidr�	getLoggerr$rrr.r5r:�	frozensetrDr)rKr��internr\�encoder~r�r�r�r�r��objectr��Lockrb�349ContextVarrSr rVrfr_rrdrrr��RunBaser�r��	lru_cacher�r�r�r�r��_GLOBAL_CLIENTra�__all__r�r�r<r"r+r,�<module>r�s���$�"�����350���-�'�9�9��7�7�4�/�/�+��@�S�S�.�	�	�	�8�	$����� �)�5� ��)�5���9�E��,/8���8S�.T��^�T�� �����'7�&8��$>�?��5�<�<�W�E���Z�Z�#3�"4�H� =�>�����/�0��5�6���J�J�"2�!3�7�;�<���Z�Z�#3�"4�H� =�>���:�:�3�4���D�&�(�#�������
�"�"�8�H�\�,B�#C�D���
�	�%�/�/���
�>��d���
��v�x� �	�	���� )�'�"+� )�)2�Z1��Z1�
�Z1� �Z1��	Z1�351'�Z1�z�352+��&��.w353�j� � �w354�t_�_�D���Q��W� �W�t7�355��.����	�%�3�3��	�3��i�356 ��6�"�6�,:�6��6��*���
���r+
codekingpro/portable-devtools · Team Ai