Try something like this test program (which works):
Code:
from calibre.ebooks.metadata.book.base import Metadata
from calibre.library.database2 import LibraryDatabase2
from calibre.utils.config import prefs
class MyMetadata(Metadata):
def __init__(self, mi):
Metadata.__init__(self, None)
self.smart_update(mi, replace_metadata=True)
def mm_print(self, attr):
print attr, '=', getattr(self, attr, 'not found')
src = prefs['library_path']
db = LibraryDatabase2(src)
my_mi = MyMetadata(db.get_metadata(1283, index_is_id=True))
print my_mi
my_mi.mm_print('application_id')