#################################################################################
#   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.          #
#                                                                               #
#   Licensed under the Apache License, Version 2.0 (the "License").             #
#   You may not use this file except in compliance with the License.            #
#   You may obtain a copy of the License at                                     #
#                                                                               #
#       http://www.apache.org/licenses/LICENSE-2.0                              #
#                                                                               #
#   Unless required by applicable law or agreed to in writing, software         #
#   distributed under the License is distributed on an "AS IS" BASIS,           #
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    #
#   See the License for the specific language governing permissions and         #
#   limitations under the License.                                              #
#################################################################################
"""A class for converter interface"""
import abc
from typing import Dict, Any

# Python 2 and 3 compatible interface class
ABC = abc.ABCMeta('ABC', (object,), {})


class StateConverterInterface(ABC):
    """
    StateConverterInterface class
    """
    @abc.abstractmethod
    def convert(self) -> Dict[str, Any]:
        """
        Convert to dict format

        Returns:
            Dict[str, Any]: dict with key as str and value as Any
        """
        raise NotImplementedError("Converter must implement convert!")