mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make get_item_id() faster
This commit is contained in:
parent
2a9e0209ed
commit
8340c9994d
@ -926,11 +926,13 @@ class Cache:
|
|||||||
@read_api
|
@read_api
|
||||||
def get_item_id(self, field, item_name):
|
def get_item_id(self, field, item_name):
|
||||||
' Return the item id for item_name (case-insensitive) or None if not found '
|
' Return the item id for item_name (case-insensitive) or None if not found '
|
||||||
|
q = icu_lower(item_name)
|
||||||
try:
|
try:
|
||||||
rmap = {icu_lower(v) if isinstance(v, str) else v:k for k, v in iteritems(self.fields[field].table.id_map)}
|
for item_id, item_val in self.fields[field].table.id_map.items():
|
||||||
|
if icu_lower(item_val) == q:
|
||||||
|
return item_id
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return None
|
return None
|
||||||
return rmap.get(icu_lower(item_name) if isinstance(item_name, str) else item_name, None)
|
|
||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
def get_item_ids(self, field, item_names):
|
def get_item_ids(self, field, item_names):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user