'subclasses MUST override this method to return a key which identifies
this instance; this key MUST be able to be used as a dictionary key
the key is intended to be shared by multiple instances of the cache,
but only those which represent the same underlying data; for example,
the LocalCache uses the tex_root value as its key, so that all
documents with the same tex_root share the same cache instance
NB this method is called in TWO DISTINCT ways and subclass
implementations MUST be able to generate the same response for both or
else the behavior of the instance-tracking cannot be guaranteed.
1)  This method is called from __new__ with the args and kwargs
passed to the constructor; subclasses SHOULD derive the key
from those args
2)  This method is called from __del__ without the args and kwargs
passed to the construtor; subclasses MUST ensure that the same
key derived in #1 can be derived in this case from information
stored in the object'

def _get_inst_key(self, *args, **kwargs):

    raise NotImplemented
