Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
pytest_plugin.cpython-313.pyc87 linesDownload Raw Back to __pycache__
1�

2��j�4���SrSSKrSSKrSSKrSSKrSSKrSSKJr SSK	J3r4 SSKJr SSK
r
SSKJr SSKJr \R("\5rSrS	r\
R2R5S55(aSrOSr\
R:"S
S9S5r\
R:S5r"SS5r Sr!S\"S\#S\"4Sjr$S\"S\#S\"4Sjr%S\&S\&S\'\"S\&4Sjr(S\S\"4Sjr)g) zLangSmith Pytest hooks.�N)�defaultdict)�Lock)�Any)�utils)�testc��URSS5nURSSSSS9 g	![a [R	S5 g	f=f)6zYSet a boolean flag for LangSmith output.7 8Skip if --langsmith-output is already defined.9�	langsmith�	LangSmith�--langsmith-output�10store_trueFz'Use LangSmith output (requires 'rich').)�action�default�helpzCLangSmith output flag cannot be added because it's already defined.N)�getgroup�	addoption�11ValueError�logger�warning)�parser�groups  �]D:\code\apps\devtools\python\user_packages\Python313\site-packages\langsmith/pytest_plugin.py�pytest_addoptionrsT��12
13�����[�9��
��� ���:�		�	14���15����Q�	16�17�s�$'�A	�A	c��^�[U4SjS55(aZ[U4SjS55(dTRSS5 [U4SjS55(dTRSS	5 g18g19g20)zHandle output arguments.c3�,># �UH	oT;v� M g7f�N�)�.0�opt�argss  �r�	<genexpr>�&_handle_output_args.<locals>.<genexpr>+s����219�"8�3�$�;�"8���)rc3�,># �UH	oT;v� M g7frr�r�ars  �rr r!-s����.�g���9�g�r")�-qqrr&c3�,># �UH	oT;v� M g7frrr$s  �rr r!0s����=�&<���9�&<�r")�-sz--capture=nor(N)�any�insert�rs`r�_handle_output_argsr,)s^���22�239�"8�249�9�9��.�g�.�.�.��K�K��5�!��=�&<�=�=�=��K�K��4� �>�:�z7.c��[U5 g)zCCall immediately after command line options are parsed (pytest v7).N�r,)�configrs  r�pytest_cmdline_preparser16�25���D�!r-c��[U5 g)zHandle args in pytest v8+.Nr/r+s r�pytest_load_initial_conftestsr4<r2r-T)�hookwrapperc#�# �URS5nU(GaU(aURO0n[USS5nSU;a UbURS5nUb0UESU0EnURn[S	0UD6"U5UlUbSUR;aX0RS'Ub�SURR;at[UR5"URRS-URRURRURRS9Ul	Sv� g![R26a N�f=f7f)27zEApply LangSmith tracking to tests marked with @pytest.mark.langsmith.r	�_requestN�experiment_metadata�langsmith_experiment_metadata�request)r:)�argnames�initialnames�
names_closure�name2fixturedefsr)�get_closest_marker�kwargs�getattr�getfixturevalue�pytest�FixtureLookupError�obj�ls_test�funcargs�_fixtureinfor;�typer<r=r>)�item�markerr@�request_objr8�
original_funcs      r�pytest_runtest_callrNAsF����
$�
$�[�
1�F�
�#)����b���d�J��5�� ��.�;�3J�
�&1�&A�&A�3�'�#�'�2�S��S�(=�?R�S�F����
��$�V�$�]�3����"�y��
�
�'E�'2�M�M�)�$��"�y��8I�8I�8R�8R�'R� $�T�%6�%6� 7��*�*�3�3�l�B�!�.�.�;�;�"�/�/�=�=�!%�!2�!2�!C�!C�	!�D��28���,�,�
��
�s+�AE�D=�$CE�=E�E�E�Ec�2�URS5(agg)z7Remove the short test-status character outputs ("./F").r)�rPrPN)�	getoption)�reportr0s  r�pytest_report_teststatusrSes��29���,�-�-��.r-c�V�\rSrSrSrSrSrSrSrSr	Sr30S	\4S31jrSr
SrS
rg)�LangSmithPlugin�nz'Plugin for rendering LangSmith results.c�^�SSKJn SSKJn [	[325Ul0Ul0Ul[5Ul33U"5UlU"UR5URSS9Ul
URR5 URRRS5 g)zInitialize.r)�Console)�Live�34)�console�refresh_per_secondzCollecting tests...N)�rich.consolerX�	rich.liverYr�list�test_suites�test_suite_urls�process_statusr�status_lockr[�generate_tables�live�start�print)�selfrXrYs   r�__init__�LangSmithPlugin.__init__qs���(�"�&�t�,���!��� ����6����y����� � �"�D�L�L�R�35��	�	
�	�	�����	�	����� 5�6r-c��[5UlURH(nURRUR5 M* g)zHCall after collection phase is completed and session.items is populated.N)�set�collected_nodeids�items�add�nodeid)rh�sessionrJs   r�pytest_collection_finish�(LangSmithPlugin.pytest_collection_finish�s2��!$�����M�M�D��"�"�&�&�t�{�{�3�"r-c�@�URURU5 g)z&Group a test case with its test suite.N)r`�append)rh�36test_suite�37process_ids   r�add_process_to_test_suite�)LangSmithPlugin.add_process_to_test_suite�s������$�+�+�J�7r-c�z�UR(d%URRRS5 UR URRU05n[
UU/SQS9URU'SSS5 URRUR55 g!,(df   N8=f)zUpdate test results.zRunning tests...)�feedback�inputs�reference_outputs�outputs)�unpackN)	rbrer[rgrc�get�_merge_statuses�updaterd)rhrw�status�current_statuss    r�update_process_status�%LangSmithPlugin.update_process_status�s����"�"��I�I���#�#�$6�7�
�
�
�!�0�0�4�4�Z��D�N�.=���M�/�D���38�+��	
�	�	����-�-�/�0��
�s�7B,�,39B:c�,�URUSS05 g)z/Initialize live display when first test starts.r��runningN)r�)rhrps  r�pytest_runtest_logstart�'LangSmithPlugin.pytest_runtest_logstart�s���"�"�6�H�i�+@�Ar-c��SSKJn /nURH%nURU5nUR	U5 M' U"U6nU$)u~Generate a collection of tables—one per suite.40 41Returns a 'Group' object so it can be rendered simultaneously by Rich Live.42r)�Group)r]r�r`�_generate_tableru)rhr��tables�43suite_name�tablers      rrd�LangSmithPlugin.generate_tables�sH��44	'����*�*�J��(�(��4�E��M�M�%� �+��v����r-r�c��^�SSKJn URUnSUSURUS3nU"USS9nUR	S5 UR	S	5 UR	S455 UR	S5 UR	S5 UR	S
5 UR	S5 [S5n[S5n[R"5n/n	[[5n46UVs0sHo�URU_M nnUR5H�up�U
RSU5U
RSU5-47nU	RU5 U
RS05R5H;unn[U[[[ 45(dM(X�RU5 M= [#[USS35U5n[#[U
RSS55U5nM� [%SUR'555n[%SUR'555nUU-(a UUU--nUS:XaSOSnSUSUSSUS3nOS nU	(a[%U	5[U	5-SS3nOS!nU48(a'S"R)S#U49R555nOS$n[#U[U55nUR*R,Xg--50S%-m[#TS&5mUR5GH>up�S'SSS(S).RU
RSS5S*5nU
RSU5U
RSU5-51nS"R)U4S+jU
RS05R555n[/U
RS,055n[/U
RS-055n[/U
RS.055nUR1[3[5U5TS/9[7UTS/9[7UTS/9[7UTS/9T*S0SUSU
RSS5SUS3UUSS35 GMA UR1S1S1S1S1S1S1S15 UR1S2S1S1S1UUU5 U$s snf)3zGenerate results table.r)�TablezTest Suite: [bold]z$[/bold]52LangSmith URL: [bright_cyan]z[/bright_cyan]�left)�title�
title_justify�Test�InputszRef outputs�Outputs�Status�Feedback�Durationr��duration�end_time�53start_timer{z.2f�s�queuedc3�H# �UHoRS5S:Hv� M g7f)r��passedN�r��rr�s  rr �2LangSmithPlugin._generate_table.<locals>.<genexpr>�����X�@W�1�5�5��?�h�6�@W��� "c3�H# �UHoRS5S:Hv� M g7f)r��failedNr�r�s  rr r��r�r���green�red�[�]z.0%z[/z54Passed: --z--s�55c3�^# �UH#upUS[U5[U5-3v� M% g7f)�: N)�sum�len)r�k�vs   rr r��s.���+�6O�d�a�1�#�R��A���Q���(�)�6O�s�+-z--���yellow�cyan)r�r�r��skipped�whitec3�># �UH6up[UTS9S[U[5(a[U5OU3v� M8 g7f)��max_lenr�N)�_abbreviate�56isinstance�bool�int)rr�r��max_dynamic_col_widths   �rr r��sD����!�>�D�A��q�*?�@�A��j�YZ�\`�Na�Na�C��F�gh�Ci�j�>�s�>Ar|r}r~r�NrPz[bold]Averages[/bold])�57rich.tabler�r`ra�58add_columnr��timerr_rbrnr�rur��floatr�r��maxr��values�joinr[�width�_dumps_with_fallback�add_row�_abbreviate_test_name�strr�)rhr�r��process_idsr�r��59max_status�max_duration�now�	durations�numeric_feedbacks�pid�suite_statusesr�r�r�r��passed_count�failed_count�rate�color�aggregate_status�aggregate_duration�aggregate_feedback�status_colorr{r|r}r~r�s                             @rr��LangSmithPlugin._generate_table�sv���$��&�&�z�2��&�z�l�3�!�1�1�*�=�>�n�P���E��8��
���� �
����"�
����'�
����#�
����"�
����$�
����$���]�60��:����i�i�k���	�'��-��CN�O�;�C�t�2�2�3�7�7�;��O�)�/�/�1�K�C��z�z�*�c�2�V�Z�Z��c�5R�R�H����X�&��61�62�:�r�2�8�8�:���1��a�%��d�!3�4�4�%�(�/�/��2�;��s�h�s�^�1�#5�6��E�L��S����H�h�!?�@�*�M�J�2��X��@U�@U�@W�X�X���X��@U�@U�@W�X�X���,�&��<�,�#>�?�D�#�q�y�G�e�E�!"�5�'��4��*�B�u�g�Q�?��+���$'�	�N�S��^�$C�C�#H��!J��!&���!%���+�6G�6M�6M�6O�+�"��"&���<��-?�)@�A��!%���!3�!3�z�7P�!Q�VW� W�� #�$9�1� =��)�/�/�1�K�C�#�!��!�	�63�c�&�*�*�X�x�0�'�:�
��z�z�*�c�2�V�Z�Z��c�5R�R�H��y�y�!�"�J�J�z�2�6�<�<�>�!��H�*�&�*�*�X�r�*B�C�F� 4��64�65�.��3�!��+�6�:�:�i��+D�E�G��M�M�%�c�#�h�8M�N��F�,A�B��-�7L�M��G�-B�C�*�*�+���L�>��6�:�:�h��#A�"B�"�\�N�RS�T���C�.��"�66
�%2�>	�
�
�b�"�b�"�b�"�b�1�
�
�
�#�������	67����]Ps�+Q5c�|�SURlURRS5nU(a	SUlgg)z9Disable warning reporting and show no warnings in output.Fzwarnings-pluginc��grr)rr@s  r�<lambda>�2LangSmithPlugin.pytest_configure.<locals>.<lambda>s��tr-N)�option�showwarnings�
pluginmanager�68get_plugin�warning_summary)rhr0�reporters   r�pytest_configure� LangSmithPlugin.pytest_configures9��&+��
�
�"��'�'�2�2�3D�E���'C�H�$�r-c��URR5 URRRS5 g)z3Stop Rich Live rendering at the end of the session.z69Finishing up...N)re�stopr[rg)rhrqs  r�pytest_sessionfinish�$LangSmithPlugin.pytest_sessionfinish s)���	�	�����	�	����� 3�4r-)rmr[rerbrcrar`N)�__name__�70__module__�__qualname__�__firstlineno__�__doc__rirrrxr�r�rdr�r�r�r��__static_attributes__rr-rrUrUns>��1�7�$4�8�
1�B��f�#�f�PD�5r-rUc���URSS5 URS5(a�[RR	S5(d
Sn[U5e[RRS5(a
Sn[U5e[R"5(a
Sn[U5eURR[5S	5 S71URlgg)z Register the 'langsmith' marker.�markersz/langsmith: mark test to be tracked in LangSmithr�richzoMust have 'rich' installed to use --langsmith-output. Please install with: `pip install -U 'langsmith[pytest]'`�PYTEST_XDIST_TESTRUNUIDzq--langsmith-output not supported with pytest-xdist. Please remove the '--langsmith-output' option or '-n' option.z�--langsmith-output not supported when env varLANGSMITH_TEST_TRACKING='false'. Please remove the'--langsmith-output' option or enable test tracking.�langsmith_output_pluginFN)�addinivalue_linerQ�	importlib�util�	find_specr�os�environr��ls_utils�test_tracking_is_disabledr��registerrUr�r�)r0�msgs  rr�r�&s���72����D�����,�-�-��~�~�'�'��/�/�L�
��S�/�!�
�:�:�>�>�3�4�4�P�
��S�/�!��-�-�/�/�+�
��S�/�!����%�%�o�&7�9R�S�%*��
�
�"�/.r-�xr��returnc�:�[U5U:�aUSUS-73S-$U$)N��...)r�)rr�s  rr�r�Es)��74�1�v�����7�Q�;��%�'�'��r-�	test_namec���[U5U:�aOURS5up#[SU-5U:�aSX1S-75*S-$U[SU-5-76nSX$*S-S-U-$U$)Nz::z.py::rr77z...::)r��split)rr��filer�file_lens     rr�r�Ls{��78�9�~����_�_�T�*�79���w��~���(��4�A�+�� 0�1�1�1��S��4��0�0���t�I�J�'�'�$�.��5�5��r-r��currentrc���UHhnURUS5=n(dMURU05n[U[5(a[U[5(a800UEUEX'MdXAU'Mj 0UEUE$r)�popr�r��dict)r�rr�path�path_update�path_currents      rr�r�Wsu���� �*�*�T�4�0�0�;�0�"�;�;�t�R�0�L��+�t�,�,��L�$�1O�1O� ?�<� ?�;� ?��
� +��
�
�!�g� �� � r-rEc�P�[R"U5$![a gf=f)N�unserializable)�json�dumps�	Exception)rEs rr�r�bs'�� ��z�z�#����� �� �s��81%�%)*r��importlib.utilr�r�loggingrr��collectionsr�	threadingr�typingrrCr	rr�langsmith.testing._internalrrF�	getLoggerr�rrr,�__version__�82startswithr1r4�hookimplrNrSrUr�r�r�r�r�rr_r�r�rr-r�<module>r's������	��#���
�'�7�	�	�	�8�	$��83�*!�84��� � ��&�&�"�"�85���T�"� 86�#� 87�F������u5�u5�p+�>�3�������S��3��3��!�D�!�4�!�D��I�!�$�!� �c� �c� r-
codekingpro/portable-devtools · Team Ai