<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_filter_type(target):
 # type: (Any) -> Union[bool, Text] """ Returns whether the specified object can be registered as a filter. :return: Returns ``True`` if the object is a filter. Otherwise, returns a string indicating why it is not valid. """

    if not is_class(target):
        return 'not a class'

    if not issubclass(target, BaseFilter):
        return 'does not extend BaseFilter'

    if is_abstract(target):
        return 'abstract class'

    return True