code: def zip_expand(x, y):
      # handle singleton list case
      if isinstance(x, list) and len(x) == 1:
          x = x[0]
      if isinstance(y, list) and len(y) == 1:
          y = y[0]
  
      if isinstance(x, list) and isinstance(y, list):
          return list(zip(x, y))
      elif isinstance(x, list):
          return [[i, y] for i in x]
      elif isinstance(y, list):
          return [[x, j] for j in y]
      else:
          return [[x, y]]
  
file_path: pyvips/tests/helpers/helpers.py
imports: import os
  import sys
  import tempfile
  import pytest
  import pyvips
label_desc: Use image node_id 1 for calling a global function with example usage: zip_expand(x, y) and returns: list, unknown, unknown, list