From ca01ac7326dab7b6964c9a3276886ab81bcfa49a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 15 Sep 2022 08:41:39 +0530 Subject: [PATCH] Dont raise a KeyError in get_item_id() when the field does not exist --- src/calibre/db/cache.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 5990a5e2bc..a0890994c8 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -810,7 +810,10 @@ class Cache: @read_api def get_item_id(self, field, item_name): ' Return the item id for item_name (case-insensitive) ' - rmap = {icu_lower(v) if isinstance(v, str) else v:k for k, v in iteritems(self.fields[field].table.id_map)} + try: + rmap = {icu_lower(v) if isinstance(v, str) else v:k for k, v in iteritems(self.fields[field].table.id_map)} + except KeyError: + rmap = {} return rmap.get(icu_lower(item_name) if isinstance(item_name, str) else item_name, None) @read_api