mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Changed from a context manager to a function
This commit is contained in:
parent
d86c664e69
commit
53417325af
@ -147,7 +147,6 @@ class FormatterFunction:
|
||||
def only_in_gui_error(self):
|
||||
raise ValueError(_('The function {} can be used only in the GUI').format(self.name))
|
||||
|
||||
@contextmanager
|
||||
def get_database(self, mi):
|
||||
proxy = mi.get('_proxy_metadata', None)
|
||||
if proxy is None:
|
||||
@ -164,7 +163,7 @@ class FormatterFunction:
|
||||
db = wr()
|
||||
if db is None:
|
||||
raise ValueError(_('In function {}: The database has been closed').format(self.name))
|
||||
yield db
|
||||
return db
|
||||
|
||||
|
||||
class BuiltinFormatterFunction(FormatterFunction):
|
||||
@ -1291,8 +1290,7 @@ class BuiltinAnnotationCount(BuiltinFormatterFunction):
|
||||
'This function works only in the GUI.')
|
||||
|
||||
def evaluate(self, formatter, kwargs, mi, locals):
|
||||
with self.get_database(mi) as db:
|
||||
c = db.new_api.annotation_count_for_book(mi.id)
|
||||
c = self.get_database(mi).new_api.annotation_count_for_book(mi.id)
|
||||
return '' if c == 0 else str(c)
|
||||
|
||||
|
||||
@ -1306,8 +1304,7 @@ class BuiltinIsMarked(BuiltinFormatterFunction):
|
||||
"marks. Returns '' if the book is not marked.")
|
||||
|
||||
def evaluate(self, formatter, kwargs, mi, locals):
|
||||
with self.get_database(mi) as db:
|
||||
c = db.data.get_marked(mi.id)
|
||||
c = self.get_database(mi).data.get_marked(mi.id)
|
||||
return c if c else ''
|
||||
|
||||
|
||||
@ -1870,7 +1867,7 @@ class BuiltinVirtualLibraries(BuiltinFormatterFunction):
|
||||
'column\'s value in your save/send templates')
|
||||
|
||||
def evaluate(self, formatter, kwargs, mi, locals_):
|
||||
with self.get_database(mi) as db:
|
||||
db = self.get_database(mi)
|
||||
try:
|
||||
a = db.data.get_virtual_libraries_for_books((mi.id,))
|
||||
return ', '.join(a[mi.id])
|
||||
@ -1888,8 +1885,7 @@ class BuiltinCurrentVirtualLibraryName(BuiltinFormatterFunction):
|
||||
'Example: "program: current_virtual_library_name()".')
|
||||
|
||||
def evaluate(self, formatter, kwargs, mi, locals):
|
||||
with self.get_database(mi) as db:
|
||||
return db.data.get_base_restriction_name()
|
||||
return self.get_database(mi).data.get_base_restriction_name()
|
||||
|
||||
|
||||
class BuiltinUserCategories(BuiltinFormatterFunction):
|
||||
@ -2065,8 +2061,7 @@ class BuiltinCheckYesNo(BuiltinFormatterFunction):
|
||||
|
||||
def evaluate(self, formatter, kwargs, mi, locals, field, is_undefined, is_false, is_true):
|
||||
# 'field' is a lookup name, not a value
|
||||
with self.get_database(mi) as db:
|
||||
if field not in db.field_metadata:
|
||||
if field not in self.get_database(mi).field_metadata:
|
||||
raise ValueError(_("The column {} doesn't exist").format(field))
|
||||
res = getattr(mi, field, None)
|
||||
if res is None:
|
||||
@ -2263,13 +2258,12 @@ class BuiltinBookCount(BuiltinFormatterFunction):
|
||||
if (not tweaks.get('allow_template_database_functions_in_composites', False) and
|
||||
formatter.global_vars.get(rendering_composite_name, None)):
|
||||
raise ValueError(_('The book_count() function cannot be used in a composite column'))
|
||||
with self.get_database(mi) as db:
|
||||
db = self.get_database(mi)
|
||||
try:
|
||||
ids = db.search_getting_ids(query, None, use_virtual_library=use_vl != '0')
|
||||
return len(ids)
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
self.only_in_gui_error()
|
||||
|
||||
|
||||
class BuiltinBookValues(BuiltinFormatterFunction):
|
||||
@ -2287,7 +2281,7 @@ class BuiltinBookValues(BuiltinFormatterFunction):
|
||||
if (not tweaks.get('allow_template_database_functions_in_composites', False) and
|
||||
formatter.global_vars.get(rendering_composite_name, None)):
|
||||
raise ValueError(_('The book_values() function cannot be used in a composite column'))
|
||||
with self.get_database(mi) as db:
|
||||
db = self.get_database(mi)
|
||||
if column not in db.field_metadata:
|
||||
raise ValueError(_("The column {} doesn't exist").format(column))
|
||||
try:
|
||||
|
Loading…
x
Reference in New Issue
Block a user