diff --git a/src/calibre/ebooks/metadata/__init__.py b/src/calibre/ebooks/metadata/__init__.py index 3bb1c6c948..409b1c3c1f 100644 --- a/src/calibre/ebooks/metadata/__init__.py +++ b/src/calibre/ebooks/metadata/__init__.py @@ -7,7 +7,6 @@ __docformat__ = 'restructuredtext en' Provides abstraction for metadata reading.writing from a variety of ebook formats. """ import os, sys, re -from collections import namedtuple from urlparse import urlparse @@ -15,18 +14,6 @@ from calibre import relpath, guess_type, remove_bracketed_text, prints from calibre.utils.config_base import tweaks -OPFVersion = namedtuple('OPFVersion', 'major minor patch') - -def parse_opf_version(raw): - try: - v = list(map(int, raw.split('.'))) - except Exception: - v = [2, 0, 0] - while len(v) < 3: - v.append(0) - v = v[:3] - return OPFVersion(*v) - try: _author_pat = re.compile(tweaks['authors_split_regex']) except: diff --git a/src/calibre/ebooks/metadata/opf.py b/src/calibre/ebooks/metadata/opf.py index c8337ee13e..a0a9f963c9 100644 --- a/src/calibre/ebooks/metadata/opf.py +++ b/src/calibre/ebooks/metadata/opf.py @@ -5,9 +5,8 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -from calibre.ebooks.metadata import parse_opf_version from calibre.ebooks.metadata.opf2 import OPF, pretty_print -from calibre.ebooks.metadata.utils import parse_opf, normalize_languages, create_manifest_item +from calibre.ebooks.metadata.utils import parse_opf, normalize_languages, create_manifest_item, parse_opf_version from calibre.ebooks.metadata import MetaInformation class DummyFile(object): diff --git a/src/calibre/ebooks/metadata/utils.py b/src/calibre/ebooks/metadata/utils.py index 6e021defda..d778696ad6 100644 --- a/src/calibre/ebooks/metadata/utils.py +++ b/src/calibre/ebooks/metadata/utils.py @@ -4,6 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) +from collections import namedtuple from future_builtins import map from lxml import etree @@ -16,6 +17,18 @@ from calibre.utils.localization import lang_as_iso639_1 PARSER = etree.XMLParser(recover=True, no_network=True) +OPFVersion = namedtuple('OPFVersion', 'major minor patch') + +def parse_opf_version(raw): + try: + v = list(map(int, raw.split('.'))) + except Exception: + v = [2, 0, 0] + while len(v) < 3: + v.append(0) + v = v[:3] + return OPFVersion(*v) + def parse_opf(stream_or_path): stream = stream_or_path if not hasattr(stream, 'read'): diff --git a/src/calibre/ebooks/oeb/polish/container.py b/src/calibre/ebooks/oeb/polish/container.py index d7bf382970..a0dbd1551d 100644 --- a/src/calibre/ebooks/oeb/polish/container.py +++ b/src/calibre/ebooks/oeb/polish/container.py @@ -24,7 +24,7 @@ from calibre.ebooks.chardet import xml_to_unicode from calibre.ebooks.conversion.plugins.epub_input import ( ADOBE_OBFUSCATION, IDPF_OBFUSCATION, decrypt_font_data) from calibre.ebooks.conversion.preprocess import HTMLPreProcessor, CSSPreProcessor as cssp -from calibre.ebooks.metadata import parse_opf_version +from calibre.ebooks.metadata.utils import parse_opf_version from calibre.ebooks.mobi import MobiError from calibre.ebooks.mobi.reader.headers import MetadataHeader from calibre.ebooks.mobi.tweak import set_cover