code: def get_or(self, cache_key, callback, *args, **kwargs):
          
          cached = self.cache.get(cache_key)
          if cached is not None:
              return cached
          else:
              try:
                  output = callback(*args, **kwargs)
              except MyCapytain.errors.UnknownCollection as E:
                  raise UnknownCollection(str(E))
              except Exception as E:
                  raise E
              self.cache.set(cache_key, output, self.TIMEOUT)
              return output
docs: Get or set the cache using callback and arguments
  
          :param cache_key: Cache key for given resource
          :param callback: Callback if object does not exist
          :param args: Ordered Argument for the callback
          :param kwargs: Keyword argument for the callback
          :return: Output of the callback