class_docstr: A variable client for updating variables from a remote source.
code: def __init__(
      self,
      client: core.VariableSource,
      variables: Mapping[str, Sequence[tf.Variable]],
      update_period: int = 1,
  ):
      self._keys = list(variables.keys())
      self._variables = tree.flatten(list(variables.values()))
      self._call_counter = 0
      self._update_period = update_period
      self._client = client
      self._request = lambda: client.get_variables(self._keys)
  
      # Create a single background thread to fetch variables without necessarily
      # blocking the actor.
      self._executor = futures.ThreadPoolExecutor(max_workers=1)
      self._async_request = lambda: self._executor.submit(self._request)
  
      # Initialize this client's future to None to indicate to the `update()`
      # method that there is no pending/running request.
      self._future: Optional[futures.Future] = None
  
file_path: acme/acme/tf/variable_utils.py
imports: from concurrent import futures
  from typing import Mapping, Optional, Sequence
  from acme import core
  import tensorflow
  import tree
label_desc: Use image node_id 1 to create a new VariableClient object  with example: obj = VariableClient(client, variables, update_period)