code: def begin_access(self, cursor=None, offset=0, size=sys.maxsize, flags=0):
          
          if cursor:
              self._c = cursor
          # END update our cursor
  
          # reuse existing cursors if possible
          if self._c is not None and self._c.is_associated():
              res = self._c.use_region(offset, size, flags).is_valid()
              if res:
                  # if given size is too large or default, we computer a proper size
                  # If its smaller, we assume the combination between offset and size
                  # as chosen by the user is correct and use it !
                  # If not, the user is in trouble.
                  if size > self._c.file_size():
                      size = self._c.file_size() - offset
                  # END handle size
                  self._size = size
              # END set size
              return res
          # END use our cursor
          return False
docs: Call this before the first use of this instance. The method was already
          called by the constructor in case sufficient information was provided.
  
          For more information no the parameters, see the __init__ method
          :param path: if cursor is None the existing one will be used.
          :return: True if the buffer can be used