class_docstr: ## Cache
  
  This maintains a key-value cache and queues push values and pop them in the same order.
  The queues are useful since we have multiple attention layers.
class_docstr_tok: ["#","#","Cache","This","maintains","a","key-value","cache","and","queues","push","values","and","pop","them","in","the","same","order",".","The","queues","are","useful","since","we","have","multiple","attention","layers","."]
docstr: ### Push a value to a queue
  
  :param name: is the name of the queue
  :param value: is the value to be pushed
docstr_tok: ["#","#","#","Push","a","value","to","a","queue",":","param","name",":","is","the","name","of","the","queue",":","param","value",":","is","the","value","to","be","pushed"]
code: def push(self, name: str, value: Any):
      """
      ### Push a value to a queue
  
      :param name: is the name of the queue
      :param value: is the value to be pushed
      """
  
      # Create an empty queue if it's not present
      if name not in self._cache:
          self._cache[name] = []
  
      # Push to the queue
      self._cache[name].append(value)
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/neox/utils/cache.py
imports: from typing import Any
label_desc: Use image node_id 3 for calling the Cache obj's underlying member method code with example usage: obj.push(name, value) without return types