code: def register(
      backend: str,
      *,
      real: bool = False,
      low_dimensional_input: bool = False,
      attack: bool = True,
  ) -> Callable[[Callable], Callable]:
      def decorator(
          f: Callable[[Any], ModelAndData]
      ) -> Callable[[Any], ModelAndData]:
          @functools.wraps(f)
          def model(request: Any) -> ModelAndData:
              if request.config.option.backend != backend:
                  pytest.skip()
              return f(request)
  
          global models
          global real_models
  
          models[model.__name__] = CallableModelAndDataAndDescription(
              model_fn=model,
              real=real,
              low_dimensional_input=low_dimensional_input,
          )
          if attack:
              models_for_attacks.append(model.__name__)
          return model
  
      return decorator
  
imports: from typing import Optional, Callable, Tuple, Dict, Any, List, NamedTuple
  import functools
  import pytest
  import eagerpy
  import foolbox
  import foolbox
label_desc: Use image node_id 3 for calling a global function with example usage: register(backend) and returns: decorator, model, f