def translate(self, value):
        """Translate value to enum instance.

        If value is already enum instance, check if this value belongs to base
        enum.

        """
        if self._check_if_already_proper(value):
            return value

        try:
            return self.search_table[value]
        except KeyError:
            raise ValueError("Value {value} doesn't match any state.".format(
                value=value
            ))
Translate value to enum instance.

        If value is already enum instance, check if this value belongs to base
        enum.