From 8e22f1c7ceda04dcda39a00862a83077e487a473 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sat, 19 Oct 2024 11:34:05 +0100 Subject: [PATCH] Fix error check in field_list_count(). Also speeds it up a bit. --- src/calibre/utils/formatter.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 3049e64cb3..0e4c703aa9 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -1349,11 +1349,9 @@ class _Interpreter: def do_node_field_list_count(self, prog): name = field_metadata.search_term_to_field_key(self.expr(prog.expression)) - if not self.parent_book.has_key(name): - self.error(_("'{0}' is not a field").format(name), prog.line_number) res = getattr(self.parent_book, name, None) - if not isinstance(res, (list, tuple, set, dict)): - self.error(_("Field '{0}' is not a list").format(name), prog.line_number) + if res is None or not isinstance(res, (list, tuple, set, dict)): + self.error(_("Field '{0}' is either not a field or not a list").format(name), prog.line_number) ans = str(len(res)) if self.break_reporter: self.break_reporter(prog.node_name, ans, prog.line_number)