CoolFace
Apppublic

beatricechen107/Pathology_TGH

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
ui.cpython-311.pyc170 linesDownload Raw Back to __pycache__
1�

2:��h�?��*�ddlZddlZddlZddlmZddlZddlZddl	Z3ej��Z	ddlm
Z
ddlmZmZmZmZn#ddlm
Z
ddlmZmZmZmZYnxYwdZdejfd�Zdeefd	�Zd4edeedeefd�Zd5edzd
edzdedefd�ZdOd�Zd�Zd�Z d�Z!dedzddfd�Z"d6edej#dedzddfd�Z$d7ed
ede%eefde&dzdedzddfd�Z'deededeefd�Z(deedeefd�Z)dejfd �Z*ej+d!d"e�#��5Z,ej-d�$��5Z.ej/d%e�d&���Z0ej1d'd(�)��Z2ej3d*d+�,��Z4ej5d*gd(d-�.��Z6ej7d/��ej8d0d(�1��Z9ej8d2d(�1��Z:ej1d3dd4gd�5��Z;ej3d6d7d8d9�:��Z<ddd��n#1swxYwYej=d;�<��Z>ej?g��Z@ej?d��ZAejBe,jCge*e@e.e0g�=��ejBe,jCgee2d>�?��ejBe>jDgee2e4eAge6e4gd>�@��ejBe,jCe2jEgee2e4ge6e4gd>�@��ejBe,jCe2jEe6jEge e2e6ge;d>�@��e9�Ee!e9e>dA�B��e6�FdC�eA�=��e4�Fee2e4ge6�D��ejGe$dE�F��ejGe'dG�F��ej?d��ZHej?i��ZIdHejJfdI�ZKdJ�ZLe>�DeLe2e6geId>�@��ejMe,jCe6jEeIjEe:jEeHjEe;jEe<jEge2e6e:e@eHe;e<gd>�K��dL���ZNddd��n#1swxYwYeOdMkre,�Pegdd(�N��dSdS)P�N)�Any)�
SQLiteStorage)�
RESERVED_KEYS�TRACKIO_LOGO_DIR�8downsample�get_color_mappingz_9#run-cb .wrap {10    gap: 2px;11}12#run-cb .wrap label {13    line-height: 1;14    padding: 6px;15}16�requestc�17�tj�d��}tj��}|j�d��x}rd}nd}|r|dnd}t
jd||d||r	d|�d|�d	�nd�18��S)N�TRACKIO_DATASET_ID�projectFTr�Projectz<&#x21bb; Synced to <a href='https://huggingface.co/datasets/z' target='_blank'>z</a> every 5 min)�label�choices�value�allow_custom_value�interactive�info)�os�environ�getr�get_projects�query_params�gr�Dropdown)r	�19dataset_id�projectsrrs     �I/home/jma/anaconda3/envs/mSTAR/lib/python3.11/site-packages/trackio/ui.pyrr#s������� 4�5�5�J��)�+�+�H��&�*�*�9�5�5�5�w�4������!)�3�(�1�+�+�t��
�;��������G�J�G�G�jt�G�G�G�G�
�	�	�	�	��returnc�2�|sgStj|��S�N)r�get_runs)rs rr"r"7s �����	��!�'�*�*�*rr�runsc���|r|sddgSt��}|D]i}tj||��}|rPtj|��}|�d���j}d�|D��}|�|���j|�d��|�d��tt|����}ddg}|D]}	|	|vr|�|	���|S)z?Get all available metrics across all runs for x-axis selection.�step�time�number��includec�$�g|]
}|tv�|��S��r��.0�cs  r�20<listcomp>z)get_available_metrics.<locals>.<listcomp>Hs"��N�N�N�!�q�
�7M�7M�A�7M�7M�7Mr)�setr�get_metrics�pd�	DataFrame�
select_dtypes�columns�update�add�sort_metrics_by_prefix�list�append)21rr#�all_metrics�run�metrics�df�numeric_cols�sorted_metrics�result�metrics22          r�get_available_metricsrD=s��� �$� ������%�%�K��-�-���+�G�S�9�9���	-���g�&�&�B��+�+�H�+�=�=�E�L�N�N�|�N�N�N�L����|�,�,�,���O�O�F�����O�O�F����,�D��,=�,=�>�>�N��f�
�F� �"�"�������M�M�&�!�!�!���Mrr=�	smoothing�x_axisc	��|r|sdStj||��}|sdStj|��}d|jvrtt
|����|d<|dkrhd|jvr_tj|d��|d<|d���}|d|z23j	�24��|d<d}n|dkrd}n|}|r�|�d���j}d�|D��}|���}	|�d�|	d<d	|	d25<|���}26tdtdt
|��dz����}|27|�|d
d������|28|<|�d�|29d<d|30d31<tj|	|32gd
���}||d<|S||d<d	|d33<||d<|S)Nr%r&�	timestampr'r(c�$�g|]
}|tv�|��Sr+r,r-s  rr0z!load_run_data.<locals>.<listcomp>r�"��J�J�J�a�1�M�3I�3I��3I�3I�3Ir�	_originalr=�original�	data_type��34T�)�window�center�min_periods�	_smoothed�smoothed��ignore_indexrF)rr2r3r4r6�range�len�to_datetime�min�dt�
total_secondsr5�copy�max�rolling�mean�concat)
rr=rErFr>r?�first_timestamp�x_columnr@�df_original�df_smoothed�window_size�combined_dfs
             r�
load_run_datari[s����#���t��'���5�5�G����t�	��g�	�	�B�
�R�Z����3�r�7�7�^�^��6�35�
����K�2�:�5�5��.��K��9�9��;���[�/�-�-�/�/����o��7�;�I�I�K�K��6�36����	�6�	�	���������'�'��'�9�9�A��J�J�<�J�J�J���g�g�i�i�� #�.�.�.��E��#-��K� ��g�g�i�i���!�S��S��W�W��]�3�3�4�4����%�
�W�K��!�W�
D�
D�
�T�V�V�	�L�!�37!$�.�.�.��E��#-��K� ��i��k� :��N�N�N�� (��H������5�	�$��;����8���	rFc�,��|�g}d}n.t|��}t|��}�r�fd�|D��}|s/tj||���tjd|�d����fStj|���tjd|�d����fS)Nrc���g|]}�|v�|��	Sr+r+�r.�r�filter_texts  �rr0zupdate_runs.<locals>.<listcomp>�s#���8�8�8�!�{�a�'7�'7�A�'7�'7�'7r�rrzRuns (�))r)r)r"rYr�
CheckboxGroup�Textbox)rrn�user_interacted_with_runsr#�num_runss `   r�update_runsru�s������������� � ���t�9�9���	9�8�8�8�8�t�8�8�8�D�$�V����D�9�9�9�2�:�&�8�&�&�&�<38�<39�<40�41�	42����-�-�-�r�z�@T��@T�@T�@T�/U�/U�/U�U�Urc�j��t|��}�fd�|D��}tj||���S)Nc���g|]}�|v�|��	Sr+r+rls  �rr0zfilter_runs.<locals>.<listcomp>�s#���0�0�0�!�{�a�/�/�A�/�/�/rro)r"rrq)rrnr#s ` r�filter_runsrx�s?����G���D�0�0�0�0�t�0�0�0�D�
��D��5�5�5�5rc�P�t||��}tjd|d���S)z:Update x-axis dropdown choices based on available metrics.�X-axisr%�rrr)rDrr)rr#�available_metricss   r�update_x_axis_choicesr}�s4��-�g�t�<�<��
�;��!�����rc�Z�|rtjd���Stjd���S)NT)�activeF)r�Timer)�cb_values r�toggle_timerr��s0���&��x�t�$�$�$�$��x�u�%�%�%�%r�hf_tokenc���tjd��dk�rH|�td���t�|��}|dd}tjd��}tjd��}d�|d	D��}||d43kr||vrtd���|dd
kr�d}|d
dD]k}|dddkr%|dd44|�d|��krd|dvrd}n3|dddkr |dd45|krd|dvrd}n�l|std���dS|ddkrtd���dSdS)N�SYSTEM�spacesz:Expected a HF_TOKEN to be provided when logging to a Space�auth�accessToken�SPACE_AUTHOR_NAME�SPACE_REPO_NAMEc��g|]46}|d��S)�namer+)r.�os  rr0zcheck_auth.<locals>.<listcomp>�s��/�/�/�a��&�	�/�/�/r�orgsr�znExpected the provided hf_token to be the user owner of the space, or be a member of the org owner of the space�role�fineGrainedF�scoped�entity�type�space�/z47repo.write�permissionsT�userzaExpected the provided hf_token with fine grained permissions to provide write access to the space�writez;Expected the provided hf_token to provide write permissions)r�getenv�PermissionError�HfApi�whoami)r��who�access_token�48owner_name�	repo_namer��matched�items        r�49check_authr��s���	�y����h�&�&���!�L���
��l�l�8�$�$���6�{�=�1���Y�2�3�3�50��I�/�0�0�	�0�/�3�v�;�/�/�/����V��$�$��4�)?�)?�!�A���
����=�0�0��G�$�]�3�H�=�
�
����N�6�*�g�5�5��X��v�.�Z�2M�2M�)�2M�2M�M�M�$��]�(;�;�;�"�G��E���N�6�*�f�4�4��X��v�.�*�<�<�$��]�(;�;�;�"�G��E���
�%�w����
�
�51�&�
!�W�
,�
,�!�M���
�S'�&�P-�
,r�uploaded_dbc�V�t|��tj|��}tj�|��rt
jd|�d����tjtj�	|��d���tj|d|��dS)Nz1Trackio database file already exists for project z, cannot overwrite.T)�exist_ok�path)r�r�get_project_db_pathrr��existsr�Error�makedirs�dirname�shutilr^)rr�r��db_project_paths    r�upload_db_to_spacer��s����x����#�7��@�@�O�	�w�~�~�o�&�&�52��h�\��\�\�\�53�54�	55��K������0�0�4�@�@�@�@�56�K��F�#�_�5�5�5�5�5rr>r%c�T�t|��tj||||���dS)N)rr=r>r%)r�r�log)rr=r>r%r�s     rr�r��s2���x������g�3��d�K�K�K�K�K�Kr�filter_patternc���������s|S	tj�tj����fd�|D��S#tj$r�fd�|D��cYSwxYw)z�57    Filter metrics using regex pattern.58 59    Args:60        metrics: List of metric names to filter61        filter_pattern: Regex pattern to match against metric names62 63    Returns:64        List of metric names that match the pattern65    c�>��g|]}��|���|��Sr+)�search)r.rC�patterns  �rr0z+filter_metrics_by_regex.<locals>.<listcomp>s*���G�G�G�6����v�0F�0F�G��G�G�Grc�d��g|],}����|���v�*|��-Sr+)�lower)r.rCr�s  �rr0z+filter_metrics_by_regex.<locals>.<listcomp>
s>���66�67�68��N�,@�,@�,B�,B�f�l�l�n�n�,T�,T�F�,T�,T�,Tr)�strip�re�compile�69IGNORECASE�error)r>r�r�s `@r�filter_metrics_by_regexr��s��������!�!����70��*�^�R�]�;�;��G�G�G�G�W�G�G�G�G��
�8�71�72�73�74�75�76�77�!(�78�79�80�	81�	82�	83�84���s�,A�A'�&A'c���g}g}|D]1}d|vr|�|���|�|���2|���i}|D]A}|�d��d}||vrg||<||�|���Bg}t|�����D]*}|�t||�����+||zS)z�85    Sort metrics by grouping prefixes together.86    Metrics without prefixes come first, then grouped by prefix.87 88    Example:89    Input: ["train/loss", "loss", "train/acc", "val/loss"]90    Output: ["loss", "train/acc", "train/loss", "val/loss"]91    r�r)r;�sort�split�sorted�keys�extend)r>�	no_prefix�with_prefixrC�
prefix_groups�prefix�sorted_with_prefixs       rr9r9s���I��K��%�%���&�=�=����v�&�&�&�&����V�$�$�$�$�
�N�N�����M��-�-�����c�"�"�1�%����&�&�$&�M�&�!��f��$�$�V�,�,�,�,�����+�+�-�-�.�.�A�A���!�!�&��v�)>�"?�"?�@�@�@�@��)�)�)rc��|j�d��}|j�d��dk}|xdkrtjdd���}n3dkrtjdd���}n	tjdd���}|rtjd	t92�d93���}ntjd	t94�d���}|j�d��x}r|�d
��||fSg||fS)N�sidebar�__theme�dark�	collapsedFT)�open�visible�hidden�<img src='/gradio_api/file=z5/trackio_logo_type_dark_transparent.png' width='80%'>�6/trackio_logo_type_light_transparent.png' width='80%'>r>�,)rrr�Sidebar�Markdownrr�)r	�
sidebar_param�	dark_moder��logor>s      r�	configurer�4s���(�,�,�Y�7�7�M��$�(�(��3�3�v�=�I�95�
�[�[�[�[��j�e�T�:�:�:�G�G�
�X�X��j�e�U�;�;�;�G�G�
��j�d�D�9�9�9�G��96��{�q�*:�q�q�q�97�98����{�r�*:�r�r�r�99�100���&�*�*�9�5�5�5�w�!��}�}�S�!�!�7�D�0�0��7�D� � r�citruszTrackio Dashboard)�theme�title�css)r�r�r�r
T)rr�RunszType to filter...)r�placeholderzrun-cb)rrr�elem_idz<hr>zRefresh metrics realtime)rrzSmooth metricsrzr&r{zMetric Filter (regex)ze.g., loss|ndcg@10|gpu�zEFilter metrics using regex patterns. Leave empty to show all metrics.)rr�rrrP)r)�fn�outputsr�)r�r��
show_progress)r��inputsr�r�r�)r�r�r��api_namec��dS)NTr+r+rr�<lambda>r��s��4�r)r�r�r�r�)r�r�r��select_datac��|jSr!)�index)r�s r�update_x_limr��s��� � rc�8�|r|siStj||��S)zHUpdate the last step from all runs to detect when new data is available.)r�get_max_steps_for_runs)rr#s  r�update_last_stepsr��s)���	�d�	��I��3�G�T�B�B�Br)�triggersr�r�c�h��g}|���}|D]+}	t||	||��}101|102�|�|103���,|rtj|d���}ntj��}|jrdSd}|r5|djs(d|djvr|ddjd}|�	d���j}
d�|
D��}
�r�fd	�|
D��}
|r1|�104��rtt|
��|��}
tt|
����}
t||��}tjd105���5t#|
��D]�\}}|�|g���}d
|jvrd
nd}|js3tjt)|||||��|||||d|��d|dd���}|�t,t.d|�����|�d�t.d|�������	ddd��dS#1swxYwYdS)NTrVr%rrFr'r(c�$�g|]
}|tv�|��Sr+r,r-s  rr0z$update_dashboard.<locals>.<listcomp>�rJrc���g|]}|�v�|��	Sr+r+)r.r/�metrics_subsets  �rr0z$update_dashboard.<locals>.<listcomp>�s#���K�K�K�!�q�N�7J�7J�A�7J�7J�7Jr�row)�key)�subsetr=zplot-i�)106�x�y�color�	color_mapr�r��preserved_by_key�x_lim�show_fullscreen_button�	min_widthzselect-)r�r�c��dSr!r+r+rrr�z"update_dashboard.<locals>.<lambda>s��D�rzdouble-)r^rir;r3rbr4�emptyr6�ilocr5r�r�r:r9rr�Row�	enumerate�dropna�LinePlotr�selectr�r��double_click)rr#rEr��x_lim_valuerF�
metric_filter�dfs�
original_runsr=r?�	master_dfrdr@r��107metric_idx�metric_name�	metric_dfr��plots   `                r�update_dashboardr�s����0���	�	���
��	�	�C��w��Y��?�?�B��~��108�109�2������	'��	�#�D�9�9�9�I�I�����I��?�	��F����	0�s�1�v�|�	0��C��F�N�(B�(B��1�v�h�'�,�Q�/�H� �.�.�x�.�@�@�H��J�J�<�J�J�J���	L�K�K�K�K�|�K�K�K�L��	V�]�0�0�2�2�	V�2�4��3E�3E�}�U�U�L�-�d�<�.@�.@�A�A��%�m�Y�?�?�	�
�V��
�
�
�	�	�+4�\�+B�+B�
�
�'�110�K�%�,�,�[�M�,�B�B�	�!&�)�*;�!;�!;����� ����;�"�%�x��e�[���#�%�#�"+�)�0�J�0�0�)-�)�/3�"%����D����L�%�=S�z�=S�=S��T�T�T��!�!� �L�%�5K�z�5K�5K�"�����)
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�B:H'�'H+�.H+�__main__)�
allowed_paths�show_api�111show_error)F)Qrr�r��typingr�gradior�huggingface_hub�hf�pandasr3r��trackio.sqlite_storager�
trackio.utilsrrrr�sqlite_storage�utilsr��Requestrr:�strr"rD�boolrirurxr}r�r��FileDatar��dict�intr�r�r9r��Blocks�demor�r�r�r�r�112project_ddrr�run_tbrq�run_cb�HTML�Checkbox�realtime_cb�smoothing_cb�	x_axis_dd�metric_filter_tbr��timer�Stater��user_interacted_with_run_cb�on�load�tick�change�input�apir��113last_steps�114SelectDatar�r��renderr�__name__�launchr+rr�<module>r@sN��	�	�	�	�	�	�	�	�
�
�
�
����������������������115�116��117U�4�4�4�4�4�4���������������U�,�,�,�,�,�,�T�T�T�T�T�T�T�T�T�T�T�T�T�T�������"�*�����(+��c��+�+�+�+��3��d�3�i��D��I�����<.�3��:�.�C�$�J�.�4�.�QT�.�.�.�.�bV�V�V�V�"6�6�6����&�&�&�,��t��,��,�,�,�,�^1186�
�1196�!�{�1206�69�D�j�1216�	�1226�1236�1246�1256�L�
�L�	�L��#�s�(�^�L���*�	L�126�D�j�L�127�
L�L�L�L�128�T�#�Y�129��130��S�	�131�132�133�134�.*�D��I�*�$�s�)�*�*�*�*�D!�r�z�!�!�!�!�4�R�Y�X�%8�c�B�B�B�u�d�	����	�	�	�135�7��r�{�r�*:�r�r�r�136�137��!�R�[�y�T�J�J�J�138����&�6I�J�J�J��!��!��"�$��139�140�141��	�������!�b�k�(B�$�O�O�O��"�r�{�)9��F�F�F���B�K���V�$��142�143�144�	�145&�2�:�)�0��X�	146�147�148��#149�150�151�152�153�154�155�156�157�158�159����160�161�162�163�0
�B�H�1����E��R�X�b�\�\�N�"*�"�(�5�/�/��	�B�E�4�9�+�)�n�g�t�-L�M�M�M�M�	�B�E�	
������	����164�B�E�	�����F�$?�@��� ������165�B�E�	
��J�%�&���F�#��� ������166�B�E�	
��J�%�v�}�5� ��F�#��������������	�����L�L��<�+������L�L���F�#�������B�F��%������B�F�������167
�B�H�T�N�N�E����"���J�!�"�-�!�!�!�!�C�C�C�168�J�J���F�#���	�����R�Y��I��M������L����#�169�
�������170��'���*9�9�+��*9�yu�u�u�u�u�u�u�u�u�u�u����u�u�u�u�p�z����K�K�/�0�5�T�K�R�R�R�R�R��sC�A�A�.O'�B*G6�*O'�6G:	�:O'�=G:	�>GO'�'O+�.O+