def make_tag_decorator(known_tags):

    def tag(*tags):
        """
        Tag a test method with the given tags.
        Can be used in conjunction with the --tags command-line argument
        for runtests.py.
        """
        for t in tags:
            if t not in known_tags:
                raise ValueError("unknown tag: %r" % (t,))

        def decorate(func):
            if (not callable(func) or isinstance(func, type)
                or not func.__name__.startswith('test_')):
                raise TypeError("@tag(...) should be used on test methods")
            try:
                s = func.tags
            except AttributeError:
                s = func.tags = set()
            s.update(tags)
            return func
        return decorate

    return tag
Returns whether the given `step` should be included in the wizard; it
dataset/ETHPy150Open numba/numba/numba/testing/main.py/make_tag_decorator--crossover with--dataset/ETHPy150Open Bouke/django-two-factor-auth/two_factor/views/utils.py/IdempotentSessionWizardView.is_step_visible