Skip to content

Commit 57787c9

Browse files
shrutipatel31facebook-github-bot
authored andcommitted
Add encoder/decoder support for NotApplicableAnalysisCard (#5036)
Summary: Add SQA storage support for the new NotApplicableStateAnalysisCard class: - encoder.py: Add NotApplicableStateAnalysisCard check with blob_annotation='not_applicable_state' - decoder.py: Add decoding logic for blob_annotation='not_applicable_state' This allows NotApplicableStateAnalysisCard instances to be saved and loaded from the database correctly. Differential Revision: D96248247
1 parent 1e1fb7c commit 57787c9

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

ax/storage/sqa_store/decoder.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
AnalysisCardBase,
2525
AnalysisCardGroup,
2626
ErrorAnalysisCard,
27+
NotApplicableStateAnalysisCard,
2728
)
2829
from ax.core.arm import Arm
2930
from ax.core.auxiliary import AuxiliaryExperiment, AuxiliaryExperimentPurpose
@@ -1167,6 +1168,15 @@ def analysis_card_from_sqa(
11671168
blob = none_throws(analysis_card_sqa.blob)
11681169
blob_annotation = analysis_card_sqa.blob_annotation
11691170

1171+
if blob_annotation == "not_applicable_state":
1172+
return NotApplicableStateAnalysisCard(
1173+
name=analysis_card_sqa.name,
1174+
title=title,
1175+
subtitle=subtitle,
1176+
df=read_json(StringIO(analysis_card_sqa.dataframe_json)),
1177+
blob=blob,
1178+
timestamp=analysis_card_sqa.timestamp,
1179+
)
11701180
if blob_annotation == "error":
11711181
return ErrorAnalysisCard(
11721182
name=analysis_card_sqa.name,

ax/storage/sqa_store/encoder.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
AnalysisCardBase,
2020
AnalysisCardGroup,
2121
ErrorAnalysisCard,
22+
NotApplicableStateAnalysisCard,
2223
)
2324
from ax.core.arm import Arm
2425
from ax.core.auxiliary import AuxiliaryExperiment, AuxiliaryExperimentPurpose
@@ -1261,7 +1262,9 @@ def analysis_card_to_sqa(
12611262

12621263
card = assert_is_instance(analysis_card, AnalysisCard)
12631264

1264-
if isinstance(card, ErrorAnalysisCard):
1265+
if isinstance(card, NotApplicableStateAnalysisCard):
1266+
blob_annotation = "not_applicable_state"
1267+
elif isinstance(card, ErrorAnalysisCard):
12651268
blob_annotation = "error"
12661269
elif isinstance(card, PlotlyAnalysisCard):
12671270
blob_annotation = "plotly"

0 commit comments

Comments
 (0)