You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. To provide actionable feedback to users, the implementation will capture and expose detailed error information from the vendor's API.
Implementation Details:
Stateful Error Tracking: The BaseAccountAccessor class will be made stateful to store diagnostic information. An instance variable, self.sequence_issues, will be initialized as an empty dictionary: {}.
Populating Issues During Scoring: During the execution of get_sequence_complexity, after polling is complete, if any sequence returns a non-empty issues array, this data will be captured. The self.sequence_issues dictionary will be populated by mapping the sbol3.Sequence object to the list of issue objects returned by the API.
# Example of populating the dictionary within get_sequence_complexityforconstructinscored_constructs:
sbol_sequence=self.id_to_sequence_map[construct['id']]
ifconstruct['score_data']['issues']:
self.sequence_issues[sbol_sequence] =construct['score_data']['issues']
# Also log this information immediatelylogging.warning(f"Sequence {sbol_sequence.display_id} failed scoring with issues: {construct['score_data']['issues']}")
Public Accessor Method: A new public method, get_sequence_issues(), will be added to the BaseAccountAccessor class. This method will simply return the self.sequence_issues dictionary, allowing programmatic access to the specific reasons for synthesis failure after a scoring run.
1. To provide actionable feedback to users, the implementation will capture and expose detailed error information from the vendor's API.
Implementation Details:
Stateful Error Tracking: The
BaseAccountAccessorclass will be made stateful to store diagnostic information. An instance variable,self.sequence_issues, will be initialized as an empty dictionary:{}.Populating Issues During Scoring: During the execution of
get_sequence_complexity, after polling is complete, if any sequence returns a non-emptyissuesarray, this data will be captured. Theself.sequence_issuesdictionary will be populated by mapping thesbol3.Sequenceobject to the list of issue objects returned by the API.Public Accessor Method: A new public method,
get_sequence_issues(), will be added to theBaseAccountAccessorclass. This method will simply return theself.sequence_issuesdictionary, allowing programmatic access to the specific reasons for synthesis failure after a scoring run.