code: def pairwise_polygon_distance(
      polygons1: GeoSeries, polygons2: GeoSeries
  ):
      """Compute distance between (multi)polygon-(multi)polygon pairs.
  
      The distance between two (multi)polygons is defined as the shortest
      distance between any edge of the first (multi)polygon and any edge
      of the second (multi)polygon. If two (multi)polygons intersect, the
      distance is 0.
  
      This algorithm computes distance pairwise. The ith row in the result is
      the distance between the ith (multi)polygon in `polygons1` and the ith
      (multi)polygon in `polygons2`.
  
      Parameters
      ----------
      polygons1 : GeoSeries
          The (multi)polygons to compute the distance from.
      polygons2 : GeoSeries
          The (multi)polygons to compute the distance from.
      Returns
      -------
      distance : cudf.Series
  
      Notes
      -----
      `polygons1` and `polygons2` must contain only polygons.
  
      Examples
      --------
      Compute distance between polygons:
  
      >>> from shapely.geometry import Polygon, MultiPolygon
      >>> s0 = cuspatial.GeoSeries([
      ...     Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)])])
      >>> s1 = cuspatial.GeoSeries([
      ...     Polygon([(2, 2), (3, 2), (3, 3), (2, 2)])])
      >>> cuspatial.pairwise_polygon_distance(s0, s1)
      0    1.414214
      dtype: float64
  
      Compute distance between multipolygons:
      >>> s0 = cuspatial.GeoSeries([
      ...     MultiPolygon([
      ...         Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]),
      ...         Polygon([(2, 0), (3, 0), (3, 1), (2, 0)])])])
      >>> s1 = cuspatial.GeoSeries([
      ...     MultiPolygon([
      ...         Polygon([(-1, 0), (-2, 0), (-2, -1), (-1, -1), (-1, 0)]),
      ...         Polygon([(0, -1), (1, -1), (1, -2), (0, -2), (0, -1)])])])
      >>> cuspatial.pairwise_polygon_distance(s0, s1)
      0    1.0
      dtype: float64
      """
  
      if len(polygons1) != len(polygons2):
          raise ValueError("Unmatched input geoseries length.")
  
      if len(polygons1) == 0:
          return cudf.Series(dtype=polygons1.lines.xy.dtype)
  
      if not contains_only_polygons(polygons1):
          raise ValueError(
              "`polygons1` array must contain only polygons"
          )
  
      if not contains_only_polygons(polygons2):
          raise ValueError(
              "`polygons2` array must contain only polygons"
          )
  
      polygon1_column = polygons1.polygons.column()
      polygon2_column = polygons2.polygons.column()
  
      return Series._from_data(
          {
              None: c_pairwise_polygon_distance(
                  polygon1_column, polygon2_column
              )
          }
      )
  
file_path: cuspatial/python/cuspatial/cuspatial/core/spatial/distance.py
imports: import cudf
  from cudf import DataFrame, Series
  from cudf.core.column import as_column
  from cuspatial._lib.distance import directed_hausdorff_distance, haversine_distance, pairwise_linestring_distance, pairwise_linestring_polygon_distance, pairwise_point_distance, pairwise_point_linestring_distance, pairwise_point_polygon_distance, pairwise_polygon_distance
  from cuspatial._lib.types import CollectionType
  from cuspatial.core.geoseries import GeoSeries
  from cuspatial.utils.column_utils import contains_only_linestrings, contains_only_multipoints, contains_only_points, contains_only_polygons
label_desc: Use image node_id 8 for calling a global function with example usage: pairwise_polygon_distance(polygons1, polygons2) and returns: Series, cudf