code: def shape(window, height=-1, width=-1):
      """The shape of a window.
  
      height and width arguments are optional if there are no negative
      values in the window.
  
      Parameters
      ----------
      window: Window
          The input window.
      height, width : int, optional
          The number of rows or columns in the array that the window
          targets.
  
      Returns
      -------
      num_rows, num_cols
          The number of rows and columns of the window.
      """
      evaluated = evaluate(window, height, width)
      return evaluated.height, evaluated.width
  
imports: import collections
  from collections.abc import Iterable
  import functools
  import math
  import warnings
  from affine import Affine
  import attr
  import numpy
  from rasterio.errors import WindowError, RasterioDeprecationWarning
  from rasterio.transform import rowcol, guard_transform
label_desc: Use image node_id 16 for calling a global function with example usage: shape(window, height, width) and returns: evaluated,  evaluated