Source code for ccvm_simulators.ccvmplotlib.problem_metadata.problem_metadata_factory

from ccvm_simulators.ccvmplotlib.problem_metadata.problem_metadata import (
    ProblemMetadata,
    ProblemType,
)
from ccvm_simulators.ccvmplotlib.problem_metadata import BoxQPMetadata


[docs] class ProblemMetadataFactory: """A Factory class to create a problem specific metadata class."""
[docs] @staticmethod def create_problem_metadata(problem: str) -> ProblemMetadata: """A method to create a problem-specific Metadata class. This is a factory method that identifies the type of a problem and produces an appropriate Problem Metadata object. Args: problem (str): A problem type. Raises: AssertionError: Raises an error if an unsupported problem is given. Returns: ProblemMetadata: A problem-specific Metadata object. """ try: if ProblemType(problem) == ProblemType.BoxQP: return BoxQPMetadata(ProblemType(problem)) else: raise AssertionError(f'"{problem}" problem type is not supported.') except AssertionError as e: print(e)