From 438e2eca7248c787fef906155ec3ebccadda04ca Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 16 Nov 2025 13:22:34 +0530 Subject: [PATCH] calibredb list: Fix identifier values not being shown. Fixes #2131557 [calibredb list --fields identifiers](https://bugs.launchpad.net/calibre/+bug/2131557) --- src/calibre/db/cli/cmd_list.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/calibre/db/cli/cmd_list.py b/src/calibre/db/cli/cmd_list.py index 0b9395d635..4ebbdcfa1b 100644 --- a/src/calibre/db/cli/cmd_list.py +++ b/src/calibre/db/cli/cmd_list.py @@ -101,7 +101,7 @@ def implementation( def stringify(data, metadata, for_machine): - for field, m in iteritems(metadata): + for field, m in metadata.items(): if field == 'authors': data[field] = { k: authors_to_string(v) @@ -117,15 +117,21 @@ def stringify(data, metadata, for_machine): elif not for_machine: ism = m['is_multiple'] if ism: - data[field] = { - k: ism['list_to_ui'].join(v) - for k, v in iteritems(data[field]) - } - if field == 'formats': + if field == 'identifiers': data[field] = { - k: '[' + v + ']' + k: ism['list_to_ui'].join(f'{key}:{val}' for key, val in v.items()) + for k, v in data[field].items() + } + else: + data[field] = { + k: ism['list_to_ui'].join(v) for k, v in iteritems(data[field]) } + if field == 'formats': + data[field] = { + k: '[' + v + ']' + for k, v in iteritems(data[field]) + } def as_machine_data(book_ids, data, metadata):