From 82a9db1aa617bbc094dd2ddcd10ff0a9bdfac01a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 19 Feb 2022 09:07:40 +0530 Subject: [PATCH] EPUB 3 metadata: Fix non-integer series index being sometimes represented using exponential notation --- src/calibre/ebooks/metadata/opf3.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/opf3.py b/src/calibre/ebooks/metadata/opf3.py index d1e45c00f8..4da93c3e9d 100644 --- a/src/calibre/ebooks/metadata/opf3.py +++ b/src/calibre/ebooks/metadata/opf3.py @@ -6,12 +6,14 @@ import json import re from collections import defaultdict, namedtuple from contextlib import suppress -from operator import attrgetter from functools import wraps from lxml import etree +from operator import attrgetter from calibre import prints -from calibre.ebooks.metadata import authors_to_string, check_isbn, string_to_authors +from calibre.ebooks.metadata import ( + authors_to_string, check_isbn, fmt_sidx, string_to_authors +) from calibre.ebooks.metadata.book.base import Metadata from calibre.ebooks.metadata.book.json_codec import ( decode_is_multiple, encode_is_multiple, object_to_unicode @@ -828,7 +830,7 @@ def set_series(root, prefixes, refines, series, series_index): for meta in XPath('./opf:metadata/opf:meta[@property="belongs-to-collection"]')(root): remove_element(meta, refines) if series: - create_series(root, refines, series, '%.2g' % series_index) + create_series(root, refines, series, fmt_sidx(series_index)) # }}} # User metadata {{{