from parsl.app.errors import ParslError


class OptionalModuleMissing(ParslError):
    ''' Error raised when a required module is missing for a optional/extra component
    '''

    def __init__(self, module_names, reason):
        self.module_names = module_names
        self.reason = reason

    def __repr__(self):
        return "The functionality requested requires a missing optional module:{0},  Reason:{1}".format(
            self.module_names, self.reason
        )

from parsl.app.errors import ParslError

from typing import List


class OptionalModuleMissing(ParslError):
    ''' Error raised when a required module is missing for a optional/extra component
    '''

    def __init__(self, module_names: List[str], reason: str):
        self.module_names = module_names
        self.reason = reason

    def __str__(self) -> str:
        return "The functionality requested requires missing optional modules {0}, because: {1}".format(
            self.module_names, self.reason
        )

Rework __repr__ and __str__ for OptionalModuleMissing (#2025)