docs: def memoizedmethod(method):
      """
      Decorator that caches method result.
  
      Args:
          method (function): Method
  
      Returns:
          function: Memoized method.
  
      Notes:
          Target method class needs as "_cache" attribute (dict).
  
          It is the case of "ObjectIOBase" and all its subclasses.
      """
      method_name = method.__name__
  
      @wraps(method)
      def patched(self, *args, **kwargs):
          """Patched method"""
          # Gets value from cache
          try:
              return self._cache[method_name]
  
          # Evaluates and cache value
          except KeyError:
              result = self._cache[method_name] = method(
                  self, *args, **kwargs)
              return result
  
      return patched