code: def fill(
      self,
      rows=10,
      rows_offset=0,
      cols=-1,
      full_cols=-1,
      cols_offset=0,
      light=False,
      force=False,
  ):
      assert self._id is not None
      if not force and self._data is not None and rows <= len(self):
          return
      req_params = {
          "row_count": rows,
          "row_offset": rows_offset,
          "column_count": cols,
          "full_column_count": full_cols,
          "column_offset": cols_offset,
      }
      if light:
          endpoint = "/3/Frames/%s/light"
      else:
          endpoint = "/3/Frames/%s"
      res = h2o.api("GET " + endpoint % self._id, data=req_params)[
          "frames"
      ][0]
      self._l = rows
      self._nrows = res["rows"]
      self._ncols = res["total_column_count"]
      self._names = [c["label"] for c in res["columns"]]
      self._types = dict(
          zip(self._names, [c["type"] for c in res["columns"]])
      )
      self._fill_data(res)
      return res
  
imports: from h2o.utils.compatibility import *
  from collections import OrderedDict
  import copy
  import gc
  import inspect
  import math
  import time
  import numbers
  import tabulate
  import h2o
  from h2o.backend.connection import H2OConnectionError
  from h2o.utils.shared_utils import _is_fr, _py_tmp_key
  from h2o.model.model_base import ModelBase
  from h2o.expr_optimizer import optimize
label_desc: Use image node_id 20 for calling the H2OCache obj's underlying member method code with example usage: obj.fill(rows, rows_offset, cols, full_cols, cols_offset, light, force) and returns: res