class_docstr: Stores useful variable tracking information.
  
  In essence, replaces collections, and this way
  we don't have to deal with `MetaGraphs`.
docstr: Update variables in GraphItem Info.
  
  Args:
      variables (Iterable[VariableType]): Iterable of variables to insert.
      replace (bool): Whether or not to overwrite existing contents.
docstr_tok: ["Update","variables","in","GraphItem","Info",".","Args",":","variables","(","Iterable","[","VariableType","]",")",":","Iterable","of","variables","to","insert",".","replace","(","bool",")",":","Whether","or","not","to","overwrite","existing","contents","."]
code: def update_variables(self, variables, replace=True):
      """
      Update variables in GraphItem Info.
  
      Args:
          variables (Iterable[VariableType]): Iterable of variables to insert.
          replace (bool): Whether or not to overwrite existing contents.
      """
      if replace:
          self.variables = []
      for v in variables:
          self._add_variable(v)
  
imports: import contextlib
  import copy
  import functools
  from collections import defaultdict
  from typing import Union, Callable
  from google.protobuf.any_pb2 import Any
  from tensorflow.core.framework.graph_pb2 import GraphDef
  from tensorflow.core.framework.variable_pb2 import VariableDef
  from tensorflow.core.protobuf.saver_pb2 import SaverDef
  from tensorflow.python.framework import ops
  from tensorflow.python.framework.importer import import_graph_def
  from tensorflow.python.ops.resource_variable_ops import _from_proto_fn
  from tensorflow.python.ops.variables import Variable
  from autodist.const import COLOCATION_PREFIX
  from autodist.kernel.common import op_info
  from autodist.kernel.common.utils import parse_name_scope, get_op_name
  from autodist.proto import graphitem_pb2
  from autodist.utils import logging
label_desc: Use image node_id 8 for calling the Info obj's underlying member method code with example usage: obj.update_variables(variables, replace) without return types