diff --git a/ax/storage/sqa_store/decoder.py b/ax/storage/sqa_store/decoder.py index 3ba9ef21be3..92628b093f3 100644 --- a/ax/storage/sqa_store/decoder.py +++ b/ax/storage/sqa_store/decoder.py @@ -13,6 +13,7 @@ from typing import Any, Callable, cast, Union import pandas as pd +from ax.analysis.graphviz.graphviz_analysis import GraphvizAnalysisCard from ax.analysis.healthcheck.healthcheck_analysis import HealthcheckAnalysisCard from ax.analysis.markdown.markdown_analysis import MarkdownAnalysisCard from ax.analysis.plotly.plotly_analysis import PlotlyAnalysisCard @@ -1118,6 +1119,15 @@ def analysis_card_from_sqa( blob=blob, timestamp=analysis_card_sqa.timestamp, ) + if blob_annotation == "graphviz": + return GraphvizAnalysisCard( + name=analysis_card_sqa.name, + title=title, + subtitle=subtitle, + df=read_json(StringIO(analysis_card_sqa.dataframe_json)), + blob=blob, + timestamp=analysis_card_sqa.timestamp, + ) return AnalysisCard( name=analysis_card_sqa.name, title=title, diff --git a/ax/storage/sqa_store/encoder.py b/ax/storage/sqa_store/encoder.py index 16b7a58b043..00a9568caa7 100644 --- a/ax/storage/sqa_store/encoder.py +++ b/ax/storage/sqa_store/encoder.py @@ -10,6 +10,7 @@ from logging import Logger from typing import Any, cast +from ax.analysis.graphviz.graphviz_analysis import GraphvizAnalysisCard from ax.analysis.healthcheck.healthcheck_analysis import HealthcheckAnalysisCard from ax.analysis.markdown.markdown_analysis import MarkdownAnalysisCard from ax.analysis.plotly.plotly_analysis import PlotlyAnalysisCard @@ -1167,6 +1168,8 @@ def analysis_card_to_sqa( blob_annotation = "markdown" elif isinstance(card, HealthcheckAnalysisCard): blob_annotation = "healthcheck" + elif isinstance(card, GraphvizAnalysisCard): + blob_annotation = "graphviz" else: blob_annotation = "dataframe"