code: def add(self, name: str, sig: Tuple, obj: object) -> None:
          
          if self._cache_directory is not None:
              if name in self._cache:
                  os.remove(os.path.join(self._cache_directory, self._cache[name].loc))
              fname = os.path.join(self._cache_directory, str(uuid.uuid4()))
              with open(fname, 'wb') as f:
                  pickle.dump(obj, f)
              self._cache[name] = _PickleJar.CacheEntry(sig, fname)
              self._update()
docs: Add a file to the cache
          :param name: name of the object to be pickled
          :param sig: signature for object
          :param obj: object to pickle