code: def main():
      p = argparse.ArgumentParser(usage=(__doc__ or "").strip())
      p.add_argument(
          "--use-timestamp",
          action="store_true",
          default=False,
          help="don't rewrite npz file if it is newer than sources",
      )
      p.add_argument("dirname")  # for Meson: 'boost' or 'gsl'
      p.add_argument(
          "-o",
          "--outdir",
          type=str,
          help="Relative path to the output directory",
      )
      args = p.parse_args()
  
      if not args.outdir:
          raise ValueError("Missing `--outdir` argument to makenpz.py")
      else:
          inp = os.path.join(
              os.path.abspath(os.path.dirname(__file__)),
              "..",
              "tests",
              "data",
              args.dirname,
          )
          outdir_abs = os.path.join(os.getcwd(), args.outdir)
          outp = os.path.join(outdir_abs, args.dirname + ".npz")
  
      # Skip rebuilding if no sources
      if os.path.isfile(outp) and not os.path.isdir(inp):
          return
  
      # Find source files
      files = []
      for dirpath, dirnames, filenames in os.walk(inp):
          dirnames.sort()
          filenames.sort()
          for fn in filenames:
              if fn.endswith(".txt"):
                  key = dirpath[len(inp) + 1 :] + "-" + fn[:-4]
                  key = key.strip("-")
                  files.append((key, os.path.join(dirpath, fn)))
  
      # Check if changes required
      if args.use_timestamp and os.path.isfile(outp):
          try:
              old_data = np.load(outp)
              try:
                  changed = set(old_data.keys()) != {
                      key for key, _ in files
                  }
              finally:
                  old_data.close()
          except OSError:
              # corrupted file
              changed = True
  
          changed = changed or any(newer(fn, outp) for key, fn in files)
          changed = changed or newer(__file__, outp)
          if not changed:
              return
  
      data = {}
      for key, fn in files:
          data[key] = np.loadtxt(fn)
  
      np.savez_compressed(outp, **data)
  
imports: import os
  import numpy
  import argparse
  from stat import ST_MTIME
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types