def __new__(metacls, name, bases, namespace, **kwargs):
    'Remove directives from the class namespace.\n\n        It does not make sense to have some directives available after the\n        class was created or even at the instance level (e.g. doing\n        ``self.parameter([1, 2, 3])`` does not make sense). So here, we\n        intercept those directives out of the namespace before the class is\n        constructed.\n        '
    directives = ['parameter', 'variable', 'bind', 'run_before', 'run_after', 'require_deps', 'required', 'deferrable', 'sanity_function', 'final', 'performance_function']
    for b in directives:
        namespace.pop(b, None)
    for item in namespace.pop('_rfm_ext_bound'):
        namespace.reset(item)
    return super().__new__(metacls, name, bases, dict(namespace), **kwargs)
Remove directives from the class namespace.

It does not make sense to have some directives available after the
class was created or even at the instance level (e.g. doing
``self.parameter([1, 2, 3])`` does not make sense). So here, we
intercept those directives out of the namespace before the class is
constructed.
def __new__(metacls, name, bases, namespace, **kwargs):
    'Remove directives from the class namespace.\n\n        It does not make sense to have some directives available after the\n        class was created or even at the instance level (e.g. doing\n        ``self.parameter([1, 2, 3])`` does not make sense). So here, we\n        intercept those directives out of the namespace before the class is\n        constructed.\n        '
    directives = ['parameter', 'variable', 'bind', 'run_before', 'run_after', 'require_deps', 'required', 'deferrable', 'sanity_function', 'final', 'performance_function']
    for b in directives:
        namespace.pop(b, None)
    for item in namespace.pop('_rfm_ext_bound'):
        namespace.reset(item)
    return super().__new__(metacls, name, bases, dict(namespace), **kwargs)