code: def array_like(
      pos,
      name,
      dtype=np.double,
      ndim=None,
      maxdim=None,
      shape=None,
      order="C",
      contiguous=False,
  ):
      def inner(func):
          @wraps(func)
          def wrapper(*args, **kwargs):
              if pos < len(args):
                  arg = args[pos]
                  arg = v.array_like(
                      arg,
                      name,
                      dtype,
                      ndim,
                      maxdim,
                      shape,
                      order,
                      contiguous,
                  )
                  if pos == 0:
                      args = (arg,) + args[1:]
                  else:
                      args = args[:pos] + (arg,) + args[pos + 1 :]
              else:
                  arg = kwargs[name]
                  arg = v.array_like(
                      arg,
                      name,
                      dtype,
                      ndim,
                      maxdim,
                      shape,
                      order,
                      contiguous,
                  )
                  kwargs[name] = arg
  
              return func(*args, **kwargs)
  
          return wrapper
  
      return inner
  
imports: from functools import wraps
  import numpy
  import statsmodels.tools.validation.validation
label_desc: Use image node_id 1 for calling a global function with example usage: array_like(pos, name, dtype, ndim, maxdim, shape, order, contiguous) and returns: inner, wrapper, func