code: def compute_x_bounds(self, df):
      col = df[self.geometry]
      if isinstance(col.dtype, gpd_GeometryDtype):
          # geopandas
          if self._cached_bounds is None:
              self._cached_bounds = col.total_bounds
          bounds = self._cached_bounds[::2]
      else:
          # spatialpandas
          bounds = col.array.total_bounds_x
      return self.maybe_expand_bounds(bounds)
  
imports: from __future__ import annotations
  from packaging.version import Version
  import numpy
  from toolz import memoize
  from datashader.glyphs.glyph import Glyph
  from datashader.utils import isreal, ngjit
  from numba import cuda
label_desc: Use image node_id 9 for calling the _GeometryLike obj's underlying member method code with example usage: obj.compute_x_bounds(df) and returns: self