code: def _compute_predicate(self, lhs, rhs, preprocessor_result):
      if contains_only_points(rhs):
          # Special case in GeoPandas, points are not contained
          # in the boundary of a polygon, so only return true if
          # the points are contained_properly.
          contains = _basic_contains_count(lhs, rhs).reset_index(
              drop=True
          )
          return contains > 0
      elif contains_only_linestrings(rhs):
          return self._compute_polygon_linestring_contains(
              lhs, rhs, preprocessor_result
          )
      elif contains_only_polygons(rhs):
          return self._compute_polygon_polygon_contains(
              lhs, rhs, preprocessor_result
          )
      else:
          raise NotImplementedError(
              "Invalid rhs for contains operation"
          )
  
imports: from typing import TypeVar
  import cudf
  from cuspatial.core.binpreds.basic_predicates import _basic_contains_count, _basic_equals_any, _basic_equals_count, _basic_intersects, _basic_intersects_pli
  from cuspatial.core.binpreds.binpred_interface import BinPred, ImpossiblePredicate, NotImplementedPredicate
  from cuspatial.core.binpreds.contains_geometry_processor import ContainsGeometryProcessor
  from cuspatial.utils.binpred_utils import LineString, MultiPoint, Point, Polygon, _open_polygon_rings, _pli_lines_to_multipoints, _pli_points_to_multipoints, _points_and_lines_to_multipoints, _zero_series
  from cuspatial.utils.column_utils import contains_only_linestrings, contains_only_points, contains_only_polygons
label_desc: Use image node_id 7 for calling the ContainsPredicate obj's underlying member method code with example usage: obj._compute_predicate(lhs, rhs, preprocessor_result) and returns: unknown, self, self