CoolFace
Apppublic

WalisonCruz/function-gemma

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
main.cpython-312.pyc445 linesDownload Raw Back to __pycache__
1267EiԜ���dZddlZddlZddlZddlZddlmZddlmZddl	Z3ddlZddl
Z	ddlmZddlmZmZmZmZddlmZddlmZmZddlmZdd	lmZdd4lm Z ddl!m"Z"ddl#m$Z$dd
l%m&Z&ddl'm(Z(dZ4dZ5de6e7fd�Z8de7de5jrde7dzddfd�Z:de7de6e7de6e7fd�Z;eGd�d��Z<de6e=de=e7e6e<ffd�Z>				d�de7dzde7dzd e?d!e7d"e@d#e@deAej�e=ffd$�ZC	d�de7dzd%e7dzd&e"d'e6e7dzfd(�ZDde7d)e7d&e"de7fd*�ZEd+�ZFd,�ZGd-e6ede7dzddfd.�ZHde7de7d)e=e7efde?dzde7dzddfd/�ZIde6ede7dzddfd0�ZJde7de7d1e7de6e=fd2�ZKde7de6e7fd3�ZLde7de7de6e7fd4�ZMd)e6e7d5e7de6e7fd6�ZNde6e7fd7�ZOde7de=fd8�ZPde7de7de=fd9�ZQd:e6j�fd;�ZSd<ZTd=ZUe7j�ej�g�>�e8j�d?�@�5ZYe9j�d�A�5Z[ej��Z]e10j�dBe]dC�dDe]dE�dF��Z_e11j�dGdH�I�Zae12j�dJdKdKdLe@ej�j�dM���N�Zee13j��5e14j�dOdP�Q�Zhe15j�dRgd�S�Zie16j�d�T�Zjddd�eggdO�U�Zke17j�dV�e18j�dWdH�X�Zne19j�dYddZd[d\d]�^�Zpe20j�d_dd`gd�S�Zqe21j�dad�X�Zre22j�dbd�X�Zse23j�dcdddedf�g�Ztddd�e24j�gdh�d�i�Zve25j�d\�j�Zxe26j�g�Zze27j�g�Z{e28j�e"��Z|e29j�d�Z}e30j�eYj�geSeze[ete{eve}epgddk�l�e31j�eYj�ge�jeadmddk�n�e32j�ex�jgeDeaehe|e{gekehe|gdmdk�o�e33j�ex�jgdp�eagdmdk�q�e34j�eYj�ea�jgeDeaehe|e{gekehe|gdmddk�r��jeFeae|geqdmddk�r��jeEeaete|geegdmdkd�s��je�jeagevgdmdkd�t��je�j35eageigdmdkd�s�e36j�ek�jgeFeae|geqdmddk�r�e37j�et�jek�jgeEeaete|geedmdkd�s�du�Z�e38j�ei�jge�eigekejgdmdkd�s�en�jeGenexdkd�v�ek�j
e�jeke|ge|dkd�v��jeEeaete|geedmdkd�s�eh�j
eDeaehe|gekehe|gdkddm�w�e39�je:dx�y�e40�jeHdz�y�e41�jeId{�y�e42�jeJd|�y�e43�jeKd}�y�e44�jeLd~�y�e45�jeMd�y�e46�jeOd��y�e47�jePd��y�e48�jeQd��y�e49j�i�Z�d�e50�jfd��Z�d��Z�ex�je�eage�dmdk�o�e51�jeYj�ek�je��jep�je}�jeq�jer�jes�jet�jg	eaekepeze}eqeresete|g52dmd���d���Z�ej5e53�jeYj�ea�jei�jeh�je|�je��jgeaeiehe|gdmd���d���Z�ddd�ddd�eY�j#d�d���5e$�j�ddd�eY�j#dOd���5e(�j�ddd�eY�j#d�d���5e&�j�ddd�eY�j#d�d���5e �j�ddd�e�j$d��Z�e�eY_�e�e(_�e�e&_�e�e _�e�d�k(r0eY�j+e�j,e�j.gd�d�gdH���yy#e)$rLddlZddl*mZmZmZmZddl+mZddl,mZmZddl-mZdd	l.mZdd54l/m Z ddl0m"Z"ddl1m$Z$dd
l2m&Z&ddl3m(Z(Y�	�_wxYw#1swY��xYw#1swY��mxYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��bxYw#1swY��@xYw#1swY��xYw)�z!The main page for the Trackio UI.�N)�	dataclass)�Any)�TrackioAudio�TrackioImage�TrackioVideo�get_project_media_path)�
SQLiteStorage)�LogEntry�UploadEntry)�fns)�ColoredCheckboxGroup)�55files_page)�RunSelection)�56media_page)�run_detail_page)�run_pageu?57## Start logging with Trackio 🤗58 59To start logging to this Trackio dashboard, first make sure you have the Trackio library installed. You can do this by running:60 61```bash62pip install trackio63```64 65Then, start logging to this Trackio dashboard by passing in the `space_id` to `trackio.init()`:66 67```python68import trackio69trackio.init(project="my-project", space_id="{}")70```71 72Then call `trackio.log()` to log metrics.73 74```python75for i in range(10):76    trackio.log({{"loss": 1/(i+1)}})77```78 79Finally, call `trackio.finish()` to finish the run.80 81```python82trackio.finish()83```84u�85## Start logging with Trackio 🤗86 87You can create a new project by calling `trackio.init()`:88 89```python90import trackio91trackio.init(project="my-project")92 ```93 94Then call `trackio.log()` to log metrics.95 96```python97for i in range(10):98    trackio.log({"loss": 1/(i+1)})99```100 101Finally, call `trackio.finish()` to finish the run.102 103```python104trackio.finish()105```106 107Read the [Trackio documentation](https://huggingface.co/docs/trackio/en/index) for more examples.108�returnc�4�|sgStj|�S�N�r	�get_runs��projects �:/usr/local/lib/python3.12/dist-packages/trackio/ui/main.pyrrks����	��!�!�'�*�*�r�uploaded_db�hf_tokenc���tj|�tj|�}t	j109tjj|�d��tj|d|�y)zR110    Uploads the database of a local Trackio project to a Hugging Face Space.111    T)�exist_ok�pathN)112r�check_hf_token_has_write_accessr	�get_project_db_path�os�makedirsr �dirname�shutil�copy)rrr�db_project_paths    r�upload_db_to_spacer)qsP���'�'��1�#�7�7��@�O��K�K�������0�4�@�113�K�K��F�#�_�5r�runsc���|r|sddgSt�}|D]}tj||�}|s�tj|�}|jd��j}|D�cgc]}|tjvs�|��}}|j|���|jd�|jd�tjt|��}ddg}	|D]}114|115|	vs�|	j|116��|	Scc}w)z?Get all available metrics across all runs for x-axis selection.�step�time�number��include)�setr	�get_logs�pd�	DataFrame�
select_dtypes�columns�utils�
RESERVED_KEYS�update�add�sort_metrics_by_prefix�list�append)rr*�all_metrics�run�metrics�df�numeric_cols�c�sorted_metrics�result�metrics           r�get_available_metricsrG}s����$������%�K����(�(��#�6������g�&�B��+�+�H�+�=�E�E�L�'3�T�|�!�q��@S�@S�7S�A�|�L�T����|�,�
��O�O�F���O�O�F���1�1�$�{�2C�D�N��f�
�F� ������M�M�&�!�!��M��Us�&C:�>C:c�2�eZdZUedzed<eed<eed<y)�	MediaDataN�caption�	file_path�type)�__name__�117__module__�__qualname__�str�__annotations__�rrrIrI�s��
�4�Z���N�118
�IrrI�logsc	� �i}t|d���}|D]�}|j�D]�\}}t|t�s�|j	d�}|t119jk(s'|tjk(s|tjk(s�b||vrg||<	ttj|j	d�z||j	d���}||j|�����|S#t$r}td|�d|���Yd}~��d}~wwxYw)	Nc�&�|jdd�S)Nr,r)�get)�xs r�<lambda>zextract_media.<locals>.<lambda>�s��a�e�e�F�A�&6r)�key�_typerKrJ)rKrLrJzMedia currently unavailable: z: )�sorted�items�120isinstance�dictrVr�TYPErrrIr7�	MEDIA_DIRr=�	Exception�print)rS�media_by_key�logrY�valuerL�121media_data�es        r�
extract_mediarh�s��/1�L��$�6�7�D����)�)�+�J�C���%��&��y�y��)���L�-�-�-��|�0�0�0��|�0�0�0��,�.�,.��S�)�J�%.�&+�o�o��	�	�+�8N�&N�!%�$)�I�I�i�$8�&�122123%�S�)�0�0��<�!&��(���%�J�� =�c�U�"�Q�C�H�I�I��J�s�AC)�)	D
�2D�D
r,Fr?�smoothing_granularity�x_axis�log_scale_x�log_scale_yc	��|r|sytj||�}|syt|�}tj|�}d|j124vrt
t|��|d<|dk(rbd|j125vrTtj|d�|d<|dj�}	|d|	z126jj�|d<d}127n128|dk(rd}129n|}130|rn|131|j132vr`||133}|dkj�r0tjtj|d�dz�||134<ntj|�||135<|r�|j!d��j136}|D�
cgc]}
|
t"j$vs�|
|137k7s�|
��}}
|D]q}||j138vs�||}|dkj�r0tjtj|d�dz�||<�Ztj|�||<�s|dkDr�|j!d��j139}|D�
cgc]}
|
t"j$vs�|
��}}
|j'�}||d	<d140|d<|j'�}t)dt|t|���}||j+|d
d��j-�||<|�d�|d	<d|d<tj.||gd
��}|141|d<||fS||d	<d142|d<|143|d<||fScc}
wcc}
w)N)NNr,r-�	timestampr�r.r/r?�original�	data_type�T)�window�center�min_periods�	_smoothed�smoothed��ignore_indexrj)r	r2rhr3r4r6�range�len�to_datetime�min�dt�
total_seconds�any�np�log10�maximumr5r7r8r'�max�rolling�mean�concat)rr?rirjrkrlrS�mediarA�first_timestamp�x_column�x_valsrBrC�y_cols�y_col�y_vals�df_original�df_smoothed�window_size�combined_dfs                     r�
load_run_datar��s����#���!�!�'�3�/�D����$��E�	���d�	�B�
�R�Z�Z���3�r�7�^��6�144�
���K�2�:�:�5��.�.��K��9��;���[�/�-�-�/����o��7�;�;�I�I�K��6�145���	�6�	������x�2�:�:�-��H����a�K�����8�8�B�J�J�v�q�$9�A�$=�>�B�x�L��8�8�F�+�B�x�L���'�'��'�9�A�A��#�146�#�!�q��0C�0C�'C��X�
�A�|�	�147��E���148149�"��E����a�K�$�$�&� "������F�A�)>��)B� C�B�u�I� "���� 0�B�u�I�
��q� ��'�'��'�9�A�A��#/�P�<�a�1�E�<O�<O�3O��<��P��g�g�i�� ��E��#-��K� ��g�g�i���!�S�!6��B��@�A����%�
�W�K��!�W�
D�
�T�V�	�L�!�150!$�u�I�.��E��#-��K� ��i�i��k� :��N�� (��H���E�!�!���5�	�$��;����8���5�y���I151��Qs�'K7�?K7�K7�&K<�>K<�filter_text�	selection�selected_runs_from_urlc�T�|�g}n!t|�}|r|D�cgc]	}||vs�|��}}d}|r|D�cgc]	}||vs�|��}}|j||�}|rtj|�nt	j152�t	jdt|��d���|fScc}wcc}w)N�Runs (�))�label)r�update_choicesr�run_checkbox_update�gr�skip�Textboxr{)rr�r�r�r*�r�	preferred�153did_changes        r�refresh_runsr�s��������� ���#�8�t�!�{�a�'7�A�t�D�8��I�� $�D��1��-C�(C�Q��	�D��)�)�$�	�:�J�.8����	�*�b�g�g�i�154155156�6�#�d�)��A�.�/�����9��Es�	B �B �	B%�B%r@c�D�tj|||j�Sr)r7�generate_embed_code�selected)rr@r�s   r�generate_embedr�!s���$�$�W�g�y�7I�7I�J�Jrc�b�|j}t||�}tjd|d��S)z:Update x-axis dropdown choices based on available metrics.�X-axisr,�r��choicesre)r�rGr��Dropdown)rr�r*�available_metricss    r�update_x_axis_choicesr�%s4�����D�-�g�t�<��
�;�;��!���rc�^�|rtjd��Stjd��S)NT)�activeF)r��Timer)�cb_values r�toggle_timerr�0s#����x�x�t�$�$��x�x�u�%�%r�uploadsc��tj|�|D]9}t|d|d|d|d��}tj|dd|��;y)	a157    Uploads media files to a Trackio dashboard. Each entry in the list is a tuple of the project, run, and media file to be uploaded.158    Also handles uplaoding project-level files to the project's files directory (if the run and step are not provided).159    rr?r,�
relative_path)rr?r,r��
uploaded_filer N)rr!rr&r')r�r�upload�160media_paths    r�bulk_upload_mediar�7s^��161�'�'��1���+��9�%��u�
���� ��1�	162163�	���F�?�+�F�3�Z�@�rc�`�tj|�tj||||��y)a164    Note: this method is not used in the latest versions of Trackio (replaced by bulk_log) but165    is kept for backwards compatibility for users who are connecting to a newer version of166    a Trackio Spaces dashboard with an older version of Trackio installed locally.167    )rr?r@r,N)rr!r	rd)rr?r@r,rs     rrdrdGs&���'�'��1����g�3��d�Krc	��tj|�i}|D]}|d|df}||vr	ggdd�||<||dj|d�||dj|jd��|jd�s�l||d��u|d||d<��|j	�D]+\\}}}tj|||d|d|d�	��-y)168z�169    Logs a list of metrics to a Trackio dashboard. Each entry in the list is a dictionary of the project, run, a dictionary of metrics, and optionally, a step and config.170    rr?N)r@�steps�configr@r�r,r�)rr?�metrics_listr�r�)rr!r=rVr\r	�bulk_log)rSr�logs_by_run�	log_entryrYrr?�datas        rr�r�Ws���'�'��1��K��	���#�Y�u�%5�6���k�!�+-��d�K�K����C���#�*�*�9�Y�+?�@��C���!�(�(����v�)>�?��=�=��"�{�3�'7��'A�'I�)2�8�)<�K���X�&��!,� 1� 1� 3����#��������i���w�-���>�	171�!4r�metric_namec�0�tj|||�S)z�172    Get all values for a specific metric in a project/run.173    Returns a list of dictionaries with timestamp, step, and value.174    )r	�get_metric_values)rr?r�s   rr�r�ts���*�*�7�C��E�Erc�,�tj|�S)zL175    Get all runs for a given project.176    Returns a list of run names.177    rrs r�get_runs_for_projectr��s���!�!�'�*�*rc�.�tj||�S)zZ178    Get all metrics for a given project and run.179    Returns a list of metric names.180    )r	�get_all_metrics_for_run)rr?s  r�get_metrics_for_runr��s���0�0��#�>�>r�filter_patternc�^�|j�s|S	tj|tj�}|D�cgc]}|j	|�s�|��c}Scc}w#tj181$r:|D�cgc]%}|j
�|j
�vs�$|��'ncc}wc}cYSwxYw)z�182    Filter metrics using regex pattern.183 184    Args:185        metrics: List of metric names to filter186        filter_pattern: Regex pattern to match against metric names187 188    Returns:189        List of metric names that match the pattern190    )�strip�re�compile�191IGNORECASE�search�error�lower)r@r��patternrFs    r�filter_metrics_by_regexr��s������!���192��*�*�^�R�]�]�;��%,�G�W�6����v�0F��W�G�G��G��
�8�8�193�!(�194�!(�v�N�,@�,@�,B�f�l�l�n�,T�F���195�	196�197�s:�(A�A�A�A�A�B,�6%B!�B!� 	B,�+B,c�*�tj�S)zE198    Get all project names.199    Returns a list of project names.200    )r	�get_projectsrRrr�get_all_projectsr��s��201�%�%�'�'rc���tj|�}|s|dgdd�Stj|�}|t|�||rt	|j��d�Sdd�S)z�202    Get a summary of a project including number of runs and recent activity.203 204    Args:205        project: Project name206 207    Returns:208        Dictionary with project summary information209    rN)r�num_runsr*�
last_activity)r	r�get_max_steps_for_runsr{r��values)rr*�210last_stepss   r�get_project_summaryr��st���!�!�'�*�D��"��2�PT�U�U��5�5�g�>�J����I��5?��Z�.�.�0�1�	��FJ�	�rc�L�tj||�}tj||�}|s	||dgddd�Stj|�}|r|djd�nd}d|jvr|dj�n
t|�dz211}||t|�|||d�S)z�212    Get a summary of a specific run including metrics and configuration.213 214    Args:215        project: Project name216        run: Run name217 218    Returns:219        Dictionary with run summary information220    rN)rr?�num_logsr@r��	last_stepr�r,ro)	r	r2r�r3r4rVr6r�r{)rr?rSr@rAr�r�s       r�get_run_summaryr��s����!�!�'�3�/�D��3�3�G�S�A�G��������
221�	222�223���d�	�B�&*�T�!�W�[�[��
"��F�$*�b�j�j�$8��6�224��� �c�$�i�!�m�I�����I����
�r�requestc�&�|jjd�}|xdk(rtjdd��}n4dk(rtjdd��}n	tjdd��}|jjdd�}|jjd	d�}|r|j	d225�ng}|jjd�}|jjd�}|jjd
�}|�t|�nd}	|�t|�nd}226|jjd�}|�t
|�nd}|dk(rtjd��}
n	tjd��}
g||||
|	|227g|fS)N�sidebar�	collapsedFT)�open�visible�hiddenr@�r*�,�navbar�xmin�xmax�	smoothing�228�r�)�query_paramsrVr��Sidebar�split�float�int�Navbar)r��
sidebar_paramr��
metrics_param�229runs_param�
selected_runs�navbar_param�x_min_param�x_max_param�x_min�x_max�smoothing_param�smoothing_valuer�s              r�	configurer�sm���(�(�,�,�Y�7�M�230�
��j�j�e�T�:�G�
��j�j�e�U�;�G�
��j�j�d�D�9�G��(�(�,�,�Y��;�M��%�%�)�)�&�"�5�J�-7�J�$�$�S�)�R�M��'�'�+�+�H�5�L��&�&�*�*�6�2�K��&�&�*�*�6�2�K�"-�"9�E�+��t�E�"-�"9�E�+��t�E��*�*�.�.�{�;�O�.=�.I�c�/�*�r�O�231�
��Y�Y�u�-�F�
��Y�Y�t�,�F�	�����	�����ra�232.logo-light { display: block; } 233.logo-dark { display: none; }234.dark .logo-light { display: none; }235.dark .logo-dark { display: block; }236.dark .caption-label { color: white; }237 238.info-container {239    position: relative;240    display: inline;241}242.info-checkbox {243    position: absolute;244    opacity: 0;245    pointer-events: none;246}247.info-icon {248    border-bottom: 1px dotted;249    cursor: pointer;250    user-select: none;251    color: var(--color-accent);252}253.info-expandable {254    display: none;255    opacity: 0;256    transition: opacity 0.2s ease-in-out;257}258.info-checkbox:checked ~ .info-expandable {259    display: inline;260    opacity: 1;261}262.info-icon:hover { opacity: 0.8; }263.accent-link { font-weight: bold; }264 265.media-gallery .fixed-height { min-height: 275px; }266.media-group, .media-group > div { background: none; }267.media-group .tabs { padding: 0.5em; }268.media-tab { max-height: 500px; overflow-y: scroll; }269.media-audio-accordion > button { 270    border-bottom-width: 1px;271    padding-bottom: 3px;272}273.media-audio-item {274    border-width: 1px !important;275    border-radius: 0.5em;276}277.media-audio-row {278    gap: 0.25em;279    margin-bottom: 0.25em;280}281 282.tab-like-container {283    visibility: hidden;284}285a�286<script>287function setCookie(name, value, days) {288    var expires = "";289    if (days) {290        var date = new Date();291        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));292        expires = "; expires=" + date.toUTCString();293    }294    document.cookie = name + "=" + (value || "") + expires + "; path=/; SameSite=Lax";295}296 297function getCookie(name) {298    var nameEQ = name + "=";299    var ca = document.cookie.split(';');300    for(var i=0;i < ca.length;i++) {301        var c = ca[i];302        while (c.charAt(0)==' ') c = c.substring(1,c.length);303        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);304    }305    return null;306}307 308(function() {309    const urlParams = new URLSearchParams(window.location.search);310    const writeToken = urlParams.get('write_token');311    const footerParam = urlParams.get('footer');312    313    if (writeToken) {314        setCookie('trackio_write_token', writeToken, 7);315                316        // Only remove write_token from URL if not in iframe317        // In iframes, keep it in URL as cookies may be blocked318        const inIframe = window.self !== window.top;319        if (!inIframe) {320            urlParams.delete('write_token');321            const newUrl = window.location.pathname + 322                (urlParams.toString() ? '?' + urlParams.toString() : '') + 323                window.location.hash;324            window.history.replaceState({}, document.title, newUrl);325        }326    }327    328    if (footerParam === 'false') {329        const style = document.createElement('style');330        style.textContent = 'footer { display: none !important; }';331        document.head.appendChild(style);332    }333})();334</script>335)�pathszTrackio Dashboard)�title)r�z336                <img src='�lightz<' width='80%' class='logo-light'>337                <img src='�darkz9' width='80%' class='logo-dark'>            338            �ProjectT)r��allow_custom_valuezEmbed this view��html�339SPACE_HOST)r��	max_lines�lines�languager��RunszType to filter...)r��placeholderzGroup by...r�r�)r��colorsr�z<hr>zRefresh metrics realtime)r�rezSmoothing Factor�r�roz0 = no smoothing)r��minimumr�rer,�infor�r-zLog scale X-axiszLog scale Y-axiszMetric Filter (regex)ze.g., loss|ndcg@10|gpur�zEFilter metrics using regex patterns. Leave empty to show all metrics.)r�rrer))�Metricsr�)zMedia & Tablesz/media)rz/runs)�Filesz/files)re�main_page_name)re�private)�fn�outputs�queue�api_visibilityr�)rr�
show_progressrr)r�inputsrr rc�R�tjtj���S)N)r)r�r�r�get_project_inforRrrrXrX�s��2�;�;�C�$8�$8�$:�;r)rrr r)rr!rr rr�rr!rr rr)r!rr rrc��tjt|���tjt|���fS)Nr�)r��
CheckboxGroup�bool�Group)�group_by_dds r�toggle_group_viewr*%s3������k�):�%:�;��H�H�T�+�.�/�340�	341r)rr!rrr)rr!rrrr r))r�api_namer�rdr�r�r�r�r�r�r��select_datac��|jSr)�index)r,s r�update_x_limr/~s��� � � rc�4�|siStj|�S)zFCheck the last step for each run to detect when new data is available.)r	r�rs r�update_last_stepsr1�s����I��3�3�G�<�<r)�triggersr!r rc342��+�g}343|j�}|D])}t||||||�\}
}|
��|344j|
��+|345r�|dkDr�g}g}|346D]S}
|
|
ddk(}|
|
ddk(}|js|j|�|jr�C|j|��U||z}|rt	j347|d��nt	j��+n,t	j348|349d���+nt	j��+�+jr�tj�sYtj�x}r)tjtj|��ytjt�ytjd�yd}|350r5|351djs&d	|352dj vr|353dd	j"d}�+j%d354��j }|D�cgc]}|tj&vs�|��}}|r||vr|j)|�|r|D�cgc]	}||vs�|��}}|r%|j+�rt-t/|�|�}tj0t/|��\}}|	r|	j2n|}tj4||dkD�}d}|D�]�}||}t7�+fd�|d
D��t7�+fd�|dj9�D��z}|dkDr|�d|�d�n|} tj:| dd|��ddg��5|d
r�tj<d|�d�d��5|d
D]�}!�+j?|!g��}"d|"j vrdnd}#tj@|"||!|#|�\}$}%|"jsttjB|$||!|!jEd�d|#|||!d|��ddd g|%d!�"�
}&|&jGtHtJd#|���$�|&jMd%�tJd&|���$�|d'z
}��	ddd�|d�rltO|djQ��D�]L}'|d|'}(t7�+fd(�|(D��})|)dkDr|'�d|)�d�n|'}*tj:|*dd|�d)|'��ddg��5tj<d|�d)|'��d��5|(D]�}!�+j?|!g��}"d|"j vrdnd}#tj@|"||!|#|�\}$}%|"jsttjB|$||!|!jEd�d|#|||!d|��ddd g|%d!�"�
}&|&jGtHtJd#|���$�|&jMd*�tJd&|���$�|d'z
}��	ddd�ddd���Oddd����ycc}wcc}w#1swY���xYw#1swY�7xYw#1swY���xYw#1swY��&xYw)+NrrqrprwTrxz*Waiting for runs to appear...*r,rjr.r/c3�\�K�|]#}�j|g��jsd���%y�w���subsetroN��dropna�empty��.0�m�	master_dfs  �r�	<genexpr>z#update_dashboard.<locals>.<genexpr>�s2�����#�5�A� �'�'��s�'�3�9�9��5���),�direct_metricsc3�F�K�|]}t�fd�|D�����y�w)c3�^�K�|]$}�j|g��jr�!d���&y�wr5r8r;s  �rr?z-update_dashboard.<locals>.<genexpr>.<genexpr>�s*�����Q�w�!�i�.>�.>�q�c�.>�.J�.P�.P�A�w�s�"-�-N)�sum)r<r@r>s  �rr?z#update_dashboard.<locals>.<genexpr>�s$������?�G��Q�w�Q�Q�?�s�!�	subgroups� (r��355accordion-rer�)r�r�rY�preserved_by_keyzrow-z-direct�row)rY�orientationr6r?�/�����zplot-�356fullscreen�exporti�)rW�y�y_title�color�	color_map�colors_in_legendrrYrH�buttons�x_lim�	min_widthzselect-)rrYc��yrrRrRrrrXz"update_dashboard.<locals>.<lambda>1s��Drzdouble-roc3�\�K�|]#}�j|g��jsd���%y�wr5r8r;s  �rr?z#update_dashboard.<locals>.<genexpr>;s2�����2�%5��#,�#3�#3�A�3�#3�#?�#E�#E��%5�r@�-c��yrrRrRrrrXz"update_dashboard.<locals>.<lambda>rs��Dr))r'r�r=r:r3r�r4r	r�r7�	get_spacer��Markdown�INSTRUCTIONS_SPACES�format�INSTRUCTIONS_LOCALr6�ilocr5r8�remover�r�r<� order_metrics_by_plot_preferencer��get_color_mappingrDr��	Accordion�	Draggabler9�357downsample�LinePlotr��selectr/rU�double_clickr[�keys),rr*ri�metrics_subset�x_lim_valuerjrkrl�
metric_filterr��dfs�
original_runsr?rA�_�original_dfs�smoothed_dfs�
original_data�
smoothed_data�all_dfs�space_idr�rBrC�ordered_groups�nested_metric_groups�all_runsrR�358metric_idx�359group_name�360group_data�total_plot_count�group_labelr��	metric_dfrQ�downsampled_df�
updated_x_lim�plot�
subgroup_name�subgroup_metrics�subgroup_plot_count�subgroup_labelr>s,                                           @r�update_dashboardr��s����N���	�	��
��C�!���3�V�[�+��E�B���~��361362�2����$�q�(�!��!���B�$&�r�+��*�'D�$E�M�$&�r�+��*�'D�$E�M�(�.�.�$�+�+�M�:�(�.�.�$�+�+�M�:�
�'��5��=D�B�I�I�g�D�9�"�,�,�.��363�I�I�c��=�	�����I��?�?� �-�-�/�$���0�0�8�0��K�K� 3� :� :�8� D�E�364
��K�K� 2�3�
����=�>�����s�1�v�|�|��C��F�N�N�(B��1�v�h�'�,�,�Q�/�H� �.�.�x�.�@�H�H��#/�P�<�a�1�E�<O�<O�3O��<��P���L�0�����)��'3�K�|�!�q�N�7J�A�|�L�K��]�0�0�2�2�4��3E�}�U�L�/4�/U�/U����0365�,��,�)2�9�$�$�}���+�+�H�6K�a�6O�P�	��366�(�J�-�j�9�J�"�#�#�$4�5�#� ���)�+�6�=�=�?���	 ��$�a�'��,�b�!1� 2�!�4��
����!�� ���-�")�6�!2�	��.�/����"�:�,�g�6�E��,6�6F�+G�K�(1�(8�(8��
�(8�(N�I�-2�i�6G�6G�-G�E�T�E�<A�<L�<L� )� (� +� %� +�=�9�N�M�$-�?�?�')�{�{�$2�&.�&1�,7�,=�,=�c�,B�2�,F�*/�.7�5B�*5�*/�367�|�(<�59�-9�8�,D�*7�.1�("��!%���$0�,1�*1�*��(>�!,�!"�368!%� 1� 1�$0�,1�*1�*��(>�!2�!"�369'�!�O�J�I,H��R�k�*�)/�370�;�0G�0L�0L�0N�)O�
�+5�k�+B�=�+Q�(�.1�2�%5�2�/�+� 3�Q�6� -�o�R�0C�/D�A�F�!.�'� �\�\�"0�!%�",�Z�L��-�� I�.5�v�->�	�"$���&*�:�,�a�
��$G�,1�"�4D�K�09�0@�0@��
�0@�0V�I�16�)�:K�:K�1K��QU�%*�EJ�DT�DT�(1�(0�(3�(-�(3�E&�$A�N�M�,5�?�?�/1�{�{�,:�.6�.9�4?�4E�4E�c�4J�2�4N�27�6?�=J�2=�27�371�|�0D�=A�5A�8�4L�2?�69�0*��)-���,8�49�29�*��0F�)4�)*�372)-�(9�(9�,8�49�29�*��0F�):�)*�373%/�!�O�J�M4D�	"�
��*P�c��#)��#Q��374L�H���|"�"��
�����so�,V�V�'	V�1V�!W�CV"�A:W�V;	�*CV/�9V;	�W�"V,�'W�/V8�4V;	�;W
�W�W	c
��|sy|xs375t�}tj|||�}|j�D�]�\}}t	j376||j�}tj�5tjdt|�d|�d|��dg��}tj|�dt|��d�dd	|�d|��d377g��5t	j�}	t|j�D�378�cic]\}379}||380��381}}382}|D�cgc]#}|	|j!|d�t|	�z��%}
}t#|||
d
t|��d�d|�d|��d��}tj$|j&gtj(|t*tj,|�gt*|t.gddd��tj$|j0gtj2|t*tj,|�gt*|t.gddd��ddd�ddd����ycc}}383wcc}w#1swY� xYw#1swY��xYw)Nz	Show/Hidezshow-cb-rYre)r�rerYrHrFr�FrGr�)r�rYrHrr�z	group-cb-)r�rerr�rYrHr�rr$)rr�group_runs_by_configr\r7�ordered_subsetr�r�r(�Checkboxr'rdr{�get_color_palette�	enumerater�rVr
�on�input�handle_group_checkbox_change�run_selection_state�State�run_cb�change�handle_group_toggle)r�	group_keyr�r��groupsr�r*�ordered_current�
show_group_cb�
color_palette�ir?�choice_indicesr�group_cbs               r�render_grouped_runsr�zsN����!�3�\�^�I��-�-�g�y�+�N�F�%�|�|�~���t�"'�"6�"6�t�Y�=O�=O�"P���X�X�Z�$&�K�K�)�"�?�3�&�y�k��5�'�:�*1��	%�M���� �'��C��I�;�a�0�"�(���1�U�G�<�*0��	�).�(?�(?�(A�
�1:�9�;L�;L�1M�*�1M�v�q�#�C��F�1M�'�*�(,�	"�(,��*� .� 2� 2�3�� :�S��=O� O��(,�	�"�$8�$(�"1�#)�$*�3�t�9�+�Q�"7�"+�I�;�a��w� ?�-1�
$�����%�^�^�,�"�?�?� (� 3� "�����$�!4� (� &�%�384+3�+4�"'��$���*�1�1�2�"�6�6� -� 3� "�����$�385&9�(�F�$K�*2�+4�"'��W� �Z� .��$*��"���� �Z�sD�4AH;�
-H/�:
H$�H/�(H*386�6CH/�H;�$H/�/H8�4H;�;I	�Media)�show_in_navbar�Runr� �__main__�gradio�settings)�
allowed_paths�footer_links�387show_error)rr,FFr)��__doc__r#r��secretsr&�dataclassesr�typingrr�r��numpyr��pandasr3�
trackio.utilsr7�
trackio.mediarrrr�trackio.sqlite_storager	�trackio.typehintsr388r�389trackio.uir�&trackio.ui.components.colored_checkboxr
�trackio.ui.filesr� trackio.ui.helpers.run_selectionr�trackio.ui.media_pager�trackio.ui.run_detailr�trackio.ui.runsr�ImportErrorr��sqlite_storage�	typehints�ui�ui.components.colored_checkbox�ui.files�ui.helpers.run_selection�
ui.media_page�
ui.run_detail�ui.runsr]r_r<rPr�FileDatar)rGrIr^rhr�r'�tupler4r�r�r�r�r�r�rdr�r�r�r�r�r�r�r��Requestr�CSS�HEAD�set_static_pathsr`�Blocks�demor�r��
get_logo_urls�	logo_urlsr\�logor��390project_dd�Code�environrV�391embed_coder(r��run_tb�run_group_by_dd�grouped_runs_panelr��HTMLr��realtime_cb�Slider�smoothing_slider�	x_axis_dd�log_scale_x_cb�log_scale_y_cb�metric_filter_tbr�r�r��timerr�rkr�r�rUr��loadr��tickr��then�update_navbar_value�get_group_by_fieldsr�r*�handle_run_checkbox_change�apir��392SelectDatar/r1�renderr�r��route�
token_urlsafe�write_tokenrM�launch�TRACKIO_LOGO_DIR�TRACKIO_DIRrRrr�<module>r�s���'�	�	��
�!�����!!�!���5�7��K�+�=�0�5�(�(��<��6+��c��+�	6�
�	6�!�{�{�	6�69�D�j�	6�	�	6��3��d�3�i��D��I��6�������T�393��t�C��i��,@�'A��:"#����
L�
�4�Z�L�	�t��L��L�
�	L�394�L��
L��2�<�<����L�f04�	�
�4�Z���t�����!��I��,�	�2K�C�K�#�K�,�K�3�K��&�
A�t�K�0�
A�C�$�J�
A�4�
A� 
L�
�
L�	�
L��#�s�(�^�
L���*�	
L�395�D�j�
L�396�

L� 397398�x�.�399��D�j�400�401�402�:	F�
�	F�	�	F��	F�403�$�Z�		F�+�
�+�	�#�Y�+�?�
�?�	�?�404�#�Y�?�405�T�#�Y�406��407��S�	�408�.(�$�s�)�(������0#�S�#�s�#�t�#�L#�r�z�z�#�L6��p2��j����5�?�?�+�,��R�Y�Y�(�)�T�	�����	�7�'�E�'�'�)�	��r�{�{��$�W�-�.�/�$�V�,�-�.
�
�409��!�R�[�[�y�T�J�410��R�W�W�#�����������5�6�411412��R�X�X�Z��R�Z�Z�f�:M�N�F�)�b�k�k�
�r�QU�V�O�!)����%�!8���&�b��6�J��������!�b�k�k�(B�$�O��$�2�9�9�$�����#�
413�� �B�K�K���V�$��414�	�415%����+=�U�K��$����+=�U�K��%�2�:�:�)�0��X�	416��Q417 �^�R�Y�Y�418���F�
�B�H�H�1��E��R�X�X�b�\�N�%�R�X�X�b�\��"�"�(�(�<�>�2���B�H�H�T�N�E�	�B�E�E�	
��������"����419�� ��420�B�E�E�	
���������� �
�421�B�E�E�	������F�$7�9O�P���!4�5�� �
�422�B�E�E�	����;���� ��423�B�E�E�	
���J�%�%�&���F�$7�9O�P���!4�5��� ���d� ��/�0���� �
���d���,�.A�B���� ��
���d�����|���� ��
���d��"�"��|� �!�� ��
��424�B�E�E�	���� ��/�0���� ��425�B�E�E�	�	 �	 �&�-�-�0���,�.A�B��� ���426�427�B�E�E�	�	�	� ��� ��+�,�� ��������� �����L�L��)�)��+�,�#� �����d���,�.A�B��� ��
���L�L���F�$7�8���!4�5� ���
���B�F�F��%���B�F�F��$���B�F�F�����B�F�F�����B�F�F��$���B�F�F��'���B�F�F��&���B�F�F��#���B�F�F��&���B�F�F��"��428����"��J�!�"�-�-�!�=�429�J�J���|��� ����R�Y�Y��I�I��M�M�����#�#��L�L�����!�!��!�!��#�#�430431�
����������432���3�6L4�7�6L4�\433�	�����	�	��!�!��&�&����#�*�*��!�!�
����9L�M�"��434 435�H	�436 437�H	�438�c*�V439�Z�Z���Z�.��J����/�	�Z�Z��u�Z�-��H�O�O��.�	�Z�Z��e�Z�,��O����-�	�Z�Z���Z�.��J����/�$�g�#�#�B�'�����"���)���$�440���z���K�K��-�-�u�/@�/@�A��441�+������E&�!����-�/��C�#�5�(�-� � �!!��t�Z��#442 �	��`443�	��c*�)��V/�.��-�-��,�,��.�.�s��A444f�8h�Bg&�=g�B&g&�;Q0h�+A)g3�h�8h
�'h�h'�h4�A
g�g�g#�g&�&g0	�+h�3g=	�8h�h445�
h�h$�'h1�4h>