def __getattr__(cls, name):
    'Backup attribute lookup method into custom namespaces.\n\n        Some ReFrame built-in types are stored under their own sub-namespaces.\n        This method will perform an attribute lookup on these sub-namespaces\n        if a call to the default :func:`__getattribute__` method fails to\n        retrieve the requested class attribute.\n        '
    try:
        var_space = super().__getattribute__('_rfm_var_space')
        return var_space.vars[name]
    except AttributeError:
        'Catch early access attempt to the variable space.'
    except KeyError:
        'Requested name not in variable space.'
    try:
        param_space = super().__getattribute__('_rfm_param_space')
        return param_space.params[name]
    except AttributeError:
        'Catch early access attempt to the parameter space.'
    except KeyError:
        'Requested name not in parameter space.'
    raise AttributeError(f'class {cls.__qualname__!r} has no attribute {name!r}') from None
Backup attribute lookup method into custom namespaces.

Some ReFrame built-in types are stored under their own sub-namespaces.
This method will perform an attribute lookup on these sub-namespaces
if a call to the default :func:`__getattribute__` method fails to
retrieve the requested class attribute.
def __getattr__(cls, name):
    'Backup attribute lookup method into custom namespaces.\n\n        Some ReFrame built-in types are stored under their own sub-namespaces.\n        This method will perform an attribute lookup on these sub-namespaces\n        if a call to the default :func:`__getattribute__` method fails to\n        retrieve the requested class attribute.\n        '
    try:
        var_space = super().__getattribute__('_rfm_var_space')
        return var_space.vars[name]
    except AttributeError:
        'Catch early access attempt to the variable space.'
    except KeyError:
        'Requested name not in variable space.'
    try:
        param_space = super().__getattribute__('_rfm_param_space')
        return param_space.params[name]
    except AttributeError:
        'Catch early access attempt to the parameter space.'
    except KeyError:
        'Requested name not in parameter space.'
    raise AttributeError(f'class {cls.__qualname__!r} has no attribute {name!r}') from None