Source code for ccvm_simulators.post_processor.factory

from .post_processor import MethodType
from .adam import PostProcessorAdam
from .asgd import PostProcessorASGD
from .bfgs import PostProcessorBFGS
from .lbfgs import PostProcessorLBFGS
from .grad_descent import PostProcessorGradDescent


[docs] class PostProcessorFactory: """The Factory Class"""
[docs] @staticmethod def create_postprocessor(method): """Create the relevant post processor from given method. Args: method (MethodType): The type of method for post-processing. Raises: AssertionError: Invalid method type is provided. Returns: PostProcessor: A post processor object depending on the given method. """ if method.lower() == MethodType.BFGS.value: return PostProcessorBFGS() elif method.lower() == MethodType.LBFGS.value: return PostProcessorLBFGS() elif method.lower() == MethodType.Adam.value: return PostProcessorAdam() elif method.lower() == MethodType.ASGD.value: return PostProcessorASGD() elif method.lower() == MethodType.GradDescent.value: return PostProcessorGradDescent() raise AssertionError(f"Method type is not valid. Provided: {method}")