@classmethod
def get_transit_from(cls, state, auto_inverse=False):
    """
        Return a set with the states having a transition to given `state`.

        If `auto_inverse` is set to True then a tuple is returned containing the smallest set from:

        * (States allowed to transit to given `state`, True)
        * (States not allowed to transit to given `state`, False)
        """
    valid = cls.INVERSE_TRANSITIONS[state]
    if not auto_inverse:
        return valid
    not_valid = cls.ALL_STATES - valid
    return (not_valid, False) if len(valid) > len(not_valid) else (valid, True)
