@classmethod
def is_yaml_tag_supported(cls, yaml_tag):
    """
        Implementing classes should return True if they are able to decode yaml objects with this yaml tag.
        Default implementation relies on class attribute `__yaml_tag_suffix__` if provided, either manually or through
        the `@yaml_info` decorator.

        :param yaml_tag:
        :return:
        """
    if hasattr(cls, '__yaml_tag_suffix__'
        ) and cls.__yaml_tag_suffix__ is not None:
        if '__yaml_tag_suffix__' in cls.__dict__:
            return cls.__yaml_tag_suffix__ == yaml_tag
        else:
            raise TypeError(
                '`__yaml_tag_suffix__` field is not redefined by class {}, cannot inherit from YamlAbleproperly.'
                .format(cls))
    else:
        raise NotImplementedError(
            "class {} does not seem to have a non-None '__yaml_tag_suffix__' field. You can either create one manually or by decorating your class with @yaml_info. Alternately you should override the 'is_yaml_tag_supported' method from YamlAble."
            .format(cls))
