docstr: Disjoint is the opposite of contains, so just implement contains
  and then negate the result.
  
  Used by:
  (Point, Polygon)
  (Polygon, Point)
docstr_tok: ["Disjoint","is","the","opposite","of","contains",",","so","just","implement","contains","and","then","negate","the","result",".","Used","by",":","(","Point",",","Polygon",")","(","Polygon",",","Point",")"]
code: def _preprocess(self, lhs, rhs):
      """Disjoint is the opposite of contains, so just implement contains
      and then negate the result.
  
      Used by:
      (Point, Polygon)
      (Polygon, Point)
      """
      return ~_basic_contains_any(lhs, rhs)
  
imports: from cuspatial.core.binpreds.basic_predicates import _basic_contains_any, _basic_equals_any, _basic_intersects
  from cuspatial.core.binpreds.binpred_interface import BinPred, NotImplementedPredicate
  from cuspatial.core.binpreds.feature_intersects import IntersectsPredicateBase
  from cuspatial.utils.binpred_utils import LineString, MultiPoint, Point, Polygon
label_desc: Use image node_id 1 for calling the DisjointByWayOfContains obj's underlying member method code with example usage: obj._preprocess(lhs, rhs) and returns: unknown