code: def _vectorize_point(
      *args_positions, manipulate_input=_manipulate_input
  ):
      """Check point type and transform in iterable if not the case.
  
      Parameters
      ----------
      args_positions : tuple
          Position and corresponding argument name. A tuple for each position.
  
      Notes
      -----
      Explicitly defining args_positions and args names ensures it works for all
      combinations of input calling.
      """
  
      def _dec(func):
          @functools.wraps(func)
          def _wrapped(*args, **kwargs):
              args = list(args)
              for pos, name in args_positions:
                  if name in kwargs:
                      kwargs[name] = manipulate_input(kwargs[name])
                  else:
                      args[pos] = manipulate_input(args[pos])
  
              return func(*args, **kwargs)
  
          return _wrapped
  
      return _dec
  
imports: import functools
  import itertools
  from abc import ABC, abstractmethod
label_desc: Use image node_id 3 for calling a global function with example usage: _vectorize_point() and returns: _dec, _wrapped, func