'Return absolute path to the e-book file of format `format`. You should
almost never use this, as it breaks the threadsafe promise of this API.
Instead use, :meth:`copy_format_to`.
Currently used only in calibredb list, the viewer, edit book,
compare_format to original format, open with and the catalogs (via
get_data_as_dict()).
Apart from the viewer, open with and edit book, I don\'t believe any of
the others do any file write I/O with the results of this call.'

@read_api
def format_abspath(self, book_id, fmt):

    fmt = (fmt or u'').upper()
    try:
        path = self._field_for(u'path', book_id).replace(u'/', os.sep)
    except:
        return None
    if path:
        if (fmt == u'__COVER_INTERNAL__'):
            return self.backend.cover_abspath(book_id, path)
        else:
            try:
                name = self.fields[u'formats'].format_fname(book_id, fmt)
            except:
                return None
            if name:
                return self.backend.format_abspath(book_id, fmt, name, path)
