docs: def get_shapes_intersecting_geometry(
      feed: "Feed", geometry, geo_shapes=None, *, geometrized: bool = False
  ) -> DataFrame:
      """
      Return the slice of ``feed.shapes`` that contains all shapes that
      intersect the given Shapely geometry, e.g. a Polygon or LineString.
  
      Parameters
      ----------
      feed : Feed
      geometry : Shapley geometry, e.g. a Polygon
          Specified in WGS84 coordinates
      geo_shapes : GeoPandas GeoDataFrame
          The output of :func:`geometrize_shapes`
      geometrize : boolean
          If ``True``, then return the shapes DataFrame as a GeoDataFrame
          of the form output by :func:`geometrize_shapes`
  
      Returns
      -------
      DataFrame or GeoDataFrame
  
      Notes
      -----
      - Requires GeoPandas
      - Specifying ``geo_shapes`` will skip the first step of the
        algorithm, namely, geometrizing ``feed.shapes``
      - Assume the following feed attributes are not ``None``:
  
          * ``feed.shapes``, if ``geo_shapes`` is not given
  
      """
      if geo_shapes is not None:
          f = geo_shapes.copy()
      else:
          f = geometrize_shapes(feed.shapes)
  
      cols = f.columns
      f["hit"] = f["geometry"].intersects(geometry)
      f = f[f["hit"]][cols]
  
      if geometrized:
          return f
      else:
          return ungeometrize_shapes(f)