code: def _get_output_chunks_from_func_arguments(args):
      """Determine what the desired output chunks are.
  
      It is assumed a tuple of tuples of integers is defining chunk sizes. If
      a tuple like this is not found then arguments are checked for array-like
      objects with a ``.chunks`` attribute.
  
      """
      chunked_args = [arg for arg in args if hasattr(arg, "chunks")]
      tuple_args = [arg for arg in args if _is_chunk_tuple(arg)]
      if not tuple_args and not chunked_args:
          raise RuntimeError(
              "Cannot determine desired output chunksize for cached function."
          )
      new_chunks = (
          tuple_args[-1] if tuple_args else chunked_args[0].chunks
      )
      return new_chunks
  
imports: from __future__ import annotations
  import hashlib
  import os
  import shutil
  import warnings
  from datetime import datetime
  from functools import update_wrapper
  from glob import glob
  from typing import Any, Callable, Optional, Union
  import dask
  import numpy
  import xarray
  from dask import array
  from pyorbital.astronomy import cos_zen
  from pyorbital.astronomy import get_alt_az
  from pyorbital.orbital import get_observer_look
  from pyresample.geometry import AreaDefinition, StackedAreaDefinition, SwathDefinition
  import satpy
  from satpy.utils import PerformanceWarning, get_satpos, ignore_invalid_float_warnings
label_desc: Use image node_id 1 for calling a global function with example usage: _get_output_chunks_from_func_arguments(args) and returns: new_chunks