code: def fft2(
      a,
      s=None,
      axes=(-2, -1),
      overwrite_input=False,
      planner_effort=None,
      threads=None,
      auto_align_input=True,
      auto_contiguous=True,
      avoid_copy=False,
      norm=None,
  ):
      """Return a :class:`pyfftw.FFTW` object representing a 2D FFT.
  
      The first three arguments are as per :func:`numpy.fft.fft2`;
      the rest of the arguments are documented
      :ref:`in the module docs <builders_args>`.
      """
  
      inverse = False
      real = False
      planner_effort = _default_effort(planner_effort)
      threads = _default_threads(threads)
  
      return _Xfftn(
          a,
          s,
          axes,
          overwrite_input,
          planner_effort,
          threads,
          auto_align_input,
          auto_contiguous,
          avoid_copy,
          inverse,
          real,
          **_norm_args(norm),
      )
  
file_path: py-fftw/pyfftw/builders/builders.py
imports: from ._utils import _precook_1d_args, _Xfftn, _norm_args, _default_effort, _default_threads
label_desc: Use image node_id 3 for calling a global function with example usage: fft2(a, s, axes, overwrite_input, planner_effort, threads, auto_align_input, auto_contiguous, avoid_copy, norm) and returns: _Xfftn