code: def make_dl_shape(shape, order=None, strides=None):
      null = ctypes.cast(0, ctypes.POINTER(ctypes.c_int64))
      if isinstance(shape, int):
          shape = [shape]
      ndim = len(shape)
      if ndim == 0:
          shape = null
          strides = null
      else:
          shape = (ctypes.c_int64 * ndim)(*shape)
          if order == "C":
              size = 1
              strides = []
              for i in range(ndim - 1, -1, -1):
                  strides.append(size)
                  size *= shape[i]
              strides = (ctypes.c_int64 * ndim)(*strides)
          elif order == "F":
              size = 1
              strides = []
              for i in range(ndim):
                  strides.append(size)
                  size *= shape[i]
              strides = (ctypes.c_int64 * ndim)(*strides)
          elif strides is not None:
              strides = (ctypes.c_int64 * ndim)(*strides)
          else:
              strides = null
      return ndim, shape, strides
  
imports: import sys
  import ctypes
  from enum import IntEnum
label_desc: Use image node_id 2 for calling a global function with example usage: make_dl_shape(shape, order, strides) and returns: ndim,  shape,  strides