class_docstr: Deque implementation using a numpy array as a circular buffer.
docstr: Deque using a numpy array as a circular buffer, with FIFO evictions.
  
  Args:
    maxlen: Maximum length of the deque before beginning to evict the oldest
      entries. If np.inf, deque size is unlimited and the array will grow
      automatically.
    dtype: Data type of deque elements.
docstr_tok: ["Deque","using","a","numpy","array","as","a","circular","buffer",",","with","FIFO","evictions",".","Args",":","maxlen",":","Maximum","length","of","the","deque","before","beginning","to","evict","the","oldest","entries",".","If","np.inf",",","deque","size","is","unlimited","and","the","array","will","grow","automatically",".","dtype",":","Data","type","of","deque","elements","."]
code: def __init__(self, maxlen: types.Int, dtype: np.dtype):
      """Deque using a numpy array as a circular buffer, with FIFO evictions.
  
      Args:
        maxlen: Maximum length of the deque before beginning to evict the oldest
          entries. If np.inf, deque size is unlimited and the array will grow
          automatically.
        dtype: Data type of deque elements.
      """
      self._start_index = np.int64(0)
      self._len = np.int64(0)
      self._maxlen = np.array(maxlen)
      initial_len = 10 if np.isinf(self._maxlen) else self._maxlen
      self._buffer = np.zeros(shape=(initial_len,), dtype=dtype)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  from typing import Any, Iterable, Optional, Text
  import gin
  import numpy
  import six
  from tf_agents.metrics import py_metric
  from tf_agents.trajectories import trajectory
  from tf_agents.typing import types
  from tf_agents.utils import nest_utils
  from tf_agents.utils import numpy_storage
label_desc: Use image node_id 1 to create a new NumpyDeque object from inherited base classes: numpy_storage with example: obj = NumpyDeque(maxlen, dtype)