{% extends 'base.html' %} {% from "components/run_outcome.html" import outcome_badge %} {% block title %}IvoryOS | Experiment Results{% endblock %} {% block body %}

Workflow: {{ workflow.id }} - {{ workflow.name }} {{ outcome_badge(workflow, running_run_id) }}

View execution timelines, download raw datasets and check detailed step information.

{% if config_results and config_results.rows %} {% set row_looks = { 'done': ('text-bg-success', 'done'), 'running': ('text-bg-primary', 'running'), 'stopped': ('text-bg-warning', 'stopped mid-row'), 'failed': ('text-bg-danger', 'failed'), 'pending': ('text-bg-secondary', 'not run'), } %}

Config table results

Every row of the table and what became of it. Rows that ran show the values their last steps used and what they returned.

{% for column in config_results.columns %}{% endfor %} {% for output in config_results.outputs %}{% endfor %} {% for row in config_results.rows %} {% set look = row_looks.get(row.status, ('text-bg-secondary', row.status)) %} {# with batches, a line where each batch begins #} {# a value that cannot run is marked in red, the reason on hover #} {% set invalid = row.invalid or {} %} {% for column in config_results.columns %} {% if column in invalid %} {% else %} {% endif %} {% endfor %} {% for output in config_results.outputs %}{% endfor %} {% endfor %}
#Status{{ column }}{{ output }}
{# a row that ran links to its iteration's details below #} {% if row.iteration %}{{ row.row }}{% else %}{{ row.row }}{% endif %} {{ look[1] }} {{ row['values'].get(column, '') }}{{ row['values'].get(column, '') }}{{ row.outputs.get(output, '') }}
{% if config_changes %}
Edited during the run ({{ config_changes | length }})
    {% for time, change in config_changes %}
  • {{ time | replace('T', ' ') }}{{ change }}
  • {% endfor %}
{% endif %}
{% endif %}

Loading...
Loading plot data...

Optimizer Plots

{% if grouped.prep %}

Prep

{% for phase in grouped.prep %}
{% include "components/step_card.html" %}
{% endfor %}
{% endif %} {% for repeat_index, phase_list in grouped.script.items()|sort %}

Iteration {{ repeat_index }}

{% for phase in phase_list %}
{% include "components/step_card.html" %}
{% endfor %}
{% endfor %} {% if grouped.cleanup %}

Cleanup

{% for phase in grouped.cleanup %}
{% include "components/step_card.html" %}
{% endfor %}
{% endif %}
{# plotly is already loaded globally from base.html #} {% endblock %}