'Open the object.
This implementation opens the data file representing the object, reads
the associated metadata in the extended attributes, additionally
combining metadata from fast-POST `.meta` files.
.. note::
An implementation is allowed to raise any of the following
exceptions, but is only required to raise `DiskFileNotExist` when
the object representation does not exist.
:raises DiskFileCollision: on name mis-match with metadata
:raises DiskFileNotExist: if the object does not exist
:raises DiskFileDeleted: if the object was previously deleted
:raises DiskFileQuarantined: if while reading metadata of the file
some data did pass cross checks
:returns: itself for use as a context manager'

def open(self):

    try:
        files = os.listdir(self._datadir)
    except OSError as err:
        if (err.errno == errno.ENOTDIR):
            raise self._quarantine(os.path.join(self._datadir, 'made-up-filename'), ('Expected    directory,    found    file    at    %s' % self._datadir))
        elif (err.errno != errno.ENOENT):
            raise DiskFileError(('Error    listing    directory    %s:    %s' % (self._datadir, err)))
        files = []
    file_info = self._get_ondisk_files(files)
    self._data_file = file_info.get('data_file')
    if (not self._data_file):
        raise self._construct_exception_from_ts_file(**file_info)
    self._fp = self._construct_from_data_file(**file_info)
    self._metadata = (self._metadata or {})
    return self
