class_docstr: A variant of weakref.WeakKeyDictionary for unhashable numpy arrays.
  
  This datastructure will be used with numpy arrays as obj keys, therefore we
  do not use the __get__ / __set__ methods to avoid any conflict with the
  numpy fancy indexing syntax.
class_docstr_tok: ["A","variant","of","weakref.WeakKeyDictionary","for","unhashable","numpy","arrays",".","This","datastructure","will","be","used","with","numpy","arrays","as","obj","keys",",","therefore","we","do","not","use","the","__get__","\/","__set__","methods","to","avoid","any","conflict","with","the","numpy","fancy","indexing","syntax","."]
code: def set(self, obj, value):
      key = id(obj)
      try:
          ref, _ = self._data[key]
          if ref() is not obj:
              # In case of race condition with on_destroy: could never be
              # triggered by the joblib tests with CPython.
              raise KeyError(obj)
      except KeyError:
          # Insert the new entry in the mapping along with a weakref
          # callback to automatically delete the entry from the mapping
          # as soon as the object used as key is garbage collected.
          def on_destroy(_):
              del self._data[key]
  
          ref = weakref.ref(obj, on_destroy)
      self._data[key] = ref, value
  
imports: from mmap import mmap
  import errno
  import os
  import stat
  import threading
  import atexit
  import tempfile
  import time
  import warnings
  import weakref
  from uuid import uuid4
  from multiprocessing import util
  from pickle import whichmodule, loads, dumps, HIGHEST_PROTOCOL, PicklingError
  from .numpy_pickle import dump, load, load_temporary_memmap
  from .backports import make_memmap
  from .disk import delete_folder
  from .externals.loky.backend import resource_tracker
label_desc: Use image node_id 3 for calling the _WeakArrayKeyMap obj's underlying member method code with example usage: obj.set(obj, value) without return types