class_docstr: Generic supertype for cache implementations.
  
  Defines a dict-like mapping with a maximum size, where as well as mapping
  to a value, each key also maps to a score. When a write would cause the
  dict to exceed its maximum size, it first evicts the existing key with
  the smallest score, then adds the new key to the map.
  
  A key has the following lifecycle:
  
  1. key is written for the first time, the key is given the score
     self.new_entry(key, value)
  2. whenever an existing key is read or written, self.on_access(key, value,
     score) is called. This returns a new score for the key.
  3. When a key is evicted, self.on_evict(key, value, score) is called.
  
  The cache will be in a valid state in all of these cases.
  
  Implementations are expected to implement new_entry and optionally
  on_access and on_evict to implement a specific scoring strategy.
docstr: Called when a key is written that does not currently appear in the
  map.
  
  Returns the score to associate with the key.
docstr_tok: ["Called","when","a","key","is","written","that","does","not","currently","appear","in","the","map",".","Returns","the","score","to","associate","with","the","key","."]
code: def new_entry(self, key, value):
      """Called when a key is written that does not currently appear in the
      map.
  
      Returns the score to associate with the key.
      """
      raise NotImplementedError()
  
imports: from __future__ import absolute_import, division, print_function
  import attr
label_desc: Use image node_id 12 for calling the GenericCache obj's underlying member method code with example usage: obj.new_entry(key, value) without return types