mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-04-23 06:31:30 +02:00
Removed iteritems and itervalues, which are redundant
This commit is contained in:
@@ -9,7 +9,7 @@ import urllib.parse
|
||||
|
||||
from ebook_converter import relpath, guess_type, prints, force_unicode
|
||||
from ebook_converter.utils.config_base import tweaks
|
||||
from ebook_converter.polyglot.builtins import iteritems, itervalues, as_unicode
|
||||
from ebook_converter.polyglot.builtins import as_unicode
|
||||
from ebook_converter.polyglot.urllib import unquote
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ def remove_bracketed_text(src, brackets=None):
|
||||
counts = Counter()
|
||||
buf = []
|
||||
src = force_unicode(src)
|
||||
rmap = {v: k for k, v in iteritems(brackets)}
|
||||
rmap = {v: k for k, v in brackets.items()}
|
||||
for char in src:
|
||||
if char in brackets:
|
||||
counts[char] += 1
|
||||
@@ -57,7 +57,7 @@ def remove_bracketed_text(src, brackets=None):
|
||||
idx = rmap[char]
|
||||
if counts[idx] > 0:
|
||||
counts[idx] -= 1
|
||||
elif sum(itervalues(counts)) < 1:
|
||||
elif sum(counts.values()) < 1:
|
||||
buf.append(char)
|
||||
return ''.join(buf)
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ from ebook_converter.ebooks.metadata.book import (SC_COPYABLE_FIELDS,
|
||||
TOP_LEVEL_IDENTIFIERS, ALL_METADATA_FIELDS)
|
||||
from ebook_converter.library.field_metadata import FieldMetadata
|
||||
from ebook_converter.utils.icu import sort_key
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -253,7 +252,7 @@ class Metadata(object):
|
||||
Set all identifiers. Note that if you previously set ISBN, calling
|
||||
this method will delete it.
|
||||
'''
|
||||
cleaned = {ck(k):cv(v) for k, v in iteritems(identifiers) if k and v}
|
||||
cleaned = {ck(k):cv(v) for k, v in identifiers.items() if k and v}
|
||||
object.__getattribute__(self, '_data')['identifiers'] = cleaned
|
||||
|
||||
def set_identifier(self, typ, val):
|
||||
@@ -394,7 +393,7 @@ class Metadata(object):
|
||||
return
|
||||
|
||||
um = {}
|
||||
for key, meta in iteritems(metadata):
|
||||
for key, meta in metadata.items():
|
||||
m = meta.copy()
|
||||
if '#value#' not in m:
|
||||
if m['datatype'] == 'text' and m['is_multiple']:
|
||||
@@ -574,7 +573,7 @@ class Metadata(object):
|
||||
if callable(getattr(other, 'get_identifiers', None)):
|
||||
d = self.get_identifiers()
|
||||
s = other.get_identifiers()
|
||||
d.update([v for v in iteritems(s) if v[1] is not None])
|
||||
d.update([v for v in s.items() if v[1] is not None])
|
||||
self.set_identifiers(d)
|
||||
else:
|
||||
# other structure not Metadata. Copy the top-level identifiers
|
||||
@@ -748,7 +747,7 @@ class Metadata(object):
|
||||
fmt('Rights', str(self.rights))
|
||||
if self.identifiers:
|
||||
fmt('Identifiers', ', '.join(['%s:%s'%(k, v) for k, v in
|
||||
iteritems(self.identifiers)]))
|
||||
self.identifiers.items()]))
|
||||
if self.comments:
|
||||
fmt('Comments', self.comments)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ from ebook_converter.ebooks.metadata.book import SERIALIZABLE_FIELDS
|
||||
from ebook_converter.constants import filesystem_encoding, preferred_encoding
|
||||
from ebook_converter.library.field_metadata import FieldMetadata
|
||||
from ebook_converter import isbytestring
|
||||
from ebook_converter.polyglot.builtins import iteritems, itervalues, as_bytes
|
||||
from ebook_converter.polyglot.builtins import as_bytes
|
||||
from ebook_converter.polyglot.binary import as_base64_unicode, from_base64_bytes
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ class JsonCodec(object):
|
||||
def encode_metadata_attr(self, book, key):
|
||||
if key == 'user_metadata':
|
||||
meta = book.get_all_user_metadata(make_copy=True)
|
||||
for fm in itervalues(meta):
|
||||
for fm in meta.values():
|
||||
if fm['datatype'] == 'datetime':
|
||||
fm['#value#'] = datetime_to_string(fm['#value#'])
|
||||
encode_is_multiple(fm)
|
||||
@@ -186,7 +186,7 @@ class JsonCodec(object):
|
||||
def raw_to_book(self, json_book, book_class, prefix):
|
||||
try:
|
||||
book = book_class(prefix, json_book.get('lpath', None))
|
||||
for key,val in iteritems(json_book):
|
||||
for key,val in json_book.items():
|
||||
meta = self.decode_metadata(key, val)
|
||||
if key == 'user_metadata':
|
||||
book.set_all_user_metadata(meta)
|
||||
@@ -203,7 +203,7 @@ class JsonCodec(object):
|
||||
if key == 'classifiers':
|
||||
key = 'identifiers'
|
||||
if key == 'user_metadata':
|
||||
for fm in itervalues(value):
|
||||
for fm in value.values():
|
||||
if fm['datatype'] == 'datetime':
|
||||
fm['#value#'] = string_to_datetime(fm['#value#'])
|
||||
decode_is_multiple(fm)
|
||||
|
||||
@@ -13,7 +13,6 @@ from ebook_converter.ebooks.metadata.book.base import Metadata
|
||||
from ebook_converter.ebooks.chardet import xml_to_unicode
|
||||
from ebook_converter import replace_entities, isbytestring
|
||||
from ebook_converter.utils.date import parse_date, is_date_undefined
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -54,8 +53,8 @@ META_NAMES = {
|
||||
'comments': ('comments', 'dc.description'),
|
||||
'tags': ('tags',),
|
||||
}
|
||||
rmap_comment = {v:k for k, v in iteritems(COMMENT_NAMES)}
|
||||
rmap_meta = {v:k for k, l in iteritems(META_NAMES) for v in l}
|
||||
rmap_comment = {v:k for k, v in COMMENT_NAMES.items()}
|
||||
rmap_meta = {v:k for k, l in META_NAMES.items() for v in l}
|
||||
|
||||
|
||||
# Extract an HTML attribute value, supports both single and double quotes and
|
||||
@@ -230,7 +229,7 @@ def get_metadata_(src, encoding=None):
|
||||
mi.tags = tags
|
||||
|
||||
# IDENTIFIERS
|
||||
for (k,v) in iteritems(meta_tag_ids):
|
||||
for (k,v) in meta_tag_ids.items():
|
||||
v = [x.strip() for x in v if x.strip()]
|
||||
if v:
|
||||
mi.set_identifier(k, v[0])
|
||||
|
||||
@@ -27,7 +27,6 @@ from ebook_converter import prints, guess_type
|
||||
from ebook_converter.utils.cleantext import clean_ascii_chars, clean_xml_chars
|
||||
from ebook_converter.utils.config import tweaks
|
||||
from ebook_converter.utils.xml_parse import safe_xml_fromstring
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
from ebook_converter.polyglot.urllib import unquote
|
||||
|
||||
|
||||
@@ -970,7 +969,7 @@ class OPF(object): # {{{
|
||||
'descendant::*[local-name() = "identifier" and text()]')(
|
||||
self.metadata):
|
||||
found_scheme = False
|
||||
for attr, val in iteritems(x.attrib):
|
||||
for attr, val in x.attrib.items():
|
||||
if attr.endswith('scheme'):
|
||||
typ = val.lower()
|
||||
val = etree.tostring(x, with_tail=False, encoding='unicode',
|
||||
@@ -1003,7 +1002,7 @@ class OPF(object): # {{{
|
||||
self.metadata):
|
||||
xid = x.get('id', None)
|
||||
is_package_identifier = uuid_id is not None and uuid_id == xid
|
||||
typ = {val.lower() for attr, val in iteritems(x.attrib) if attr.endswith('scheme')}
|
||||
typ = {val.lower() for attr, val in x.attrib.items() if attr.endswith('scheme')}
|
||||
if is_package_identifier:
|
||||
typ = tuple(typ)
|
||||
if typ and typ[0] in identifiers:
|
||||
@@ -1012,7 +1011,7 @@ class OPF(object): # {{{
|
||||
if typ and not (typ & {'calibre', 'uuid'}):
|
||||
x.getparent().remove(x)
|
||||
|
||||
for typ, val in iteritems(identifiers):
|
||||
for typ, val in identifiers.items():
|
||||
attrib = {'{%s}scheme'%self.NAMESPACES['opf']: typ.upper()}
|
||||
self.set_text(self.create_metadata_element(
|
||||
'identifier', attrib=attrib), str(val))
|
||||
@@ -1134,7 +1133,7 @@ class OPF(object): # {{{
|
||||
def page_progression_direction(self):
|
||||
spine = self.XPath('descendant::*[re:match(name(), "spine", "i")][1]')(self.root)
|
||||
if spine:
|
||||
for k, v in iteritems(spine[0].attrib):
|
||||
for k, v in spine[0].attrib.items():
|
||||
if k == 'page-progression-direction' or k.endswith('}page-progression-direction'):
|
||||
return v
|
||||
|
||||
@@ -1501,7 +1500,7 @@ class OPFCreator(Metadata):
|
||||
a(DC_ELEM('description', self.comments))
|
||||
if self.publisher:
|
||||
a(DC_ELEM('publisher', self.publisher))
|
||||
for key, val in iteritems(self.get_identifiers()):
|
||||
for key, val in self.get_identifiers().items():
|
||||
a(DC_ELEM('identifier', val, opf_attrs={'scheme':key.upper()}))
|
||||
if self.rights:
|
||||
a(DC_ELEM('rights', self.rights))
|
||||
@@ -1627,7 +1626,7 @@ def metadata_to_opf(mi, as_string=True, default_lang=None):
|
||||
try:
|
||||
elem = metadata.makeelement(tag, attrib=attrib)
|
||||
except ValueError:
|
||||
elem = metadata.makeelement(tag, attrib={k:clean_xml_chars(v) for k, v in iteritems(attrib)})
|
||||
elem = metadata.makeelement(tag, attrib={k:clean_xml_chars(v) for k, v in attrib.items()})
|
||||
elem.tail = '\n'+(' '*8)
|
||||
if text:
|
||||
try:
|
||||
@@ -1648,7 +1647,7 @@ def metadata_to_opf(mi, as_string=True, default_lang=None):
|
||||
factory(DC('description'), clean_ascii_chars(mi.comments))
|
||||
if mi.publisher:
|
||||
factory(DC('publisher'), mi.publisher)
|
||||
for key, val in iteritems(mi.get_identifiers()):
|
||||
for key, val in mi.get_identifiers().items():
|
||||
factory(DC('identifier'), val, scheme=key.upper())
|
||||
if mi.rights:
|
||||
factory(DC('rights'), mi.rights)
|
||||
|
||||
@@ -2,7 +2,6 @@ import json
|
||||
import re
|
||||
from collections import defaultdict, namedtuple
|
||||
from functools import wraps
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
from lxml import etree
|
||||
|
||||
@@ -185,9 +184,9 @@ def ensure_prefix(root, prefixes, prefix, value=None):
|
||||
if prefixes is None:
|
||||
prefixes = read_prefixes(root)
|
||||
prefixes[prefix] = value or reserved_prefixes[prefix]
|
||||
prefixes = {k:v for k, v in iteritems(prefixes) if reserved_prefixes.get(k) != v}
|
||||
prefixes = {k:v for k, v in prefixes.items() if reserved_prefixes.get(k) != v}
|
||||
if prefixes:
|
||||
root.set('prefix', ' '.join('%s: %s' % (k, v) for k, v in iteritems(prefixes)))
|
||||
root.set('prefix', ' '.join('%s: %s' % (k, v) for k, v in prefixes.items()))
|
||||
else:
|
||||
root.attrib.pop('prefix', None)
|
||||
|
||||
@@ -294,7 +293,7 @@ def set_identifiers(root, prefixes, refines, new_identifiers, force_identifiers=
|
||||
remove_element(ident, refines)
|
||||
continue
|
||||
metadata = XPath('./opf:metadata')(root)[0]
|
||||
for scheme, val in iteritems(new_identifiers):
|
||||
for scheme, val in new_identifiers.items():
|
||||
ident = metadata.makeelement(DC('identifier'))
|
||||
ident.text = '%s:%s' % (scheme, val)
|
||||
if package_identifier is None:
|
||||
@@ -850,7 +849,7 @@ set_author_link_map = dict_writer('author_link_map')
|
||||
def deserialize_user_metadata(val):
|
||||
val = json.loads(val, object_hook=from_json)
|
||||
ans = {}
|
||||
for name, fm in iteritems(val):
|
||||
for name, fm in val.items():
|
||||
decode_is_multiple(fm)
|
||||
ans[name] = fm
|
||||
return ans
|
||||
@@ -965,7 +964,7 @@ def read_metadata(root, ver=None, return_extra_data=False):
|
||||
prefixes, refines = read_prefixes(root), read_refines(root)
|
||||
identifiers = read_identifiers(root, prefixes, refines)
|
||||
ids = {}
|
||||
for key, vals in iteritems(identifiers):
|
||||
for key, vals in identifiers.items():
|
||||
if key == 'calibre':
|
||||
ans.application_id = vals[0]
|
||||
elif key == 'uuid':
|
||||
@@ -1003,7 +1002,7 @@ def read_metadata(root, ver=None, return_extra_data=False):
|
||||
ans.series, ans.series_index = s, si
|
||||
ans.author_link_map = read_author_link_map(root, prefixes, refines) or ans.author_link_map
|
||||
ans.user_categories = read_user_categories(root, prefixes, refines) or ans.user_categories
|
||||
for name, fm in iteritems((read_user_metadata(root, prefixes, refines) or {})):
|
||||
for name, fm in (read_user_metadata(root, prefixes, refines) or {}).items():
|
||||
ans.set_user_metadata(name, fm)
|
||||
if return_extra_data:
|
||||
ans = ans, ver, read_raster_cover(root, prefixes, refines), first_spine_item(root, prefixes, refines)
|
||||
|
||||
@@ -10,7 +10,6 @@ from ebook_converter.ptempfile import TemporaryDirectory
|
||||
from ebook_converter.ebooks.metadata import (
|
||||
MetaInformation, string_to_authors, check_isbn, check_doi)
|
||||
from ebook_converter.utils.ipc.simple_worker import fork_job, WorkerError
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -157,9 +156,9 @@ def get_metadata(stream, cover=True):
|
||||
|
||||
# Look for recognizable identifiers in the info dict, if they were not
|
||||
# found in the XMP metadata
|
||||
for scheme, check_func in iteritems({'doi':check_doi, 'isbn':check_isbn}):
|
||||
for scheme, check_func in {'doi':check_doi, 'isbn':check_isbn}.items():
|
||||
if scheme not in mi.get_identifiers():
|
||||
for k, v in iteritems(info):
|
||||
for k, v in info.items():
|
||||
if k != 'xmp_metadata':
|
||||
val = check_func(v)
|
||||
if val:
|
||||
|
||||
@@ -12,7 +12,6 @@ from ebook_converter.ebooks.metadata.book.base import Metadata
|
||||
from ebook_converter.ebooks.metadata.opf2 import dump_dict
|
||||
from ebook_converter.utils.date import parse_date, isoformat, now
|
||||
from ebook_converter.utils.localization import canonicalize_lang, lang_as_iso639_1
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -320,7 +319,7 @@ def metadata_from_xmp_packet(raw_bytes):
|
||||
identifiers[scheme] = val
|
||||
|
||||
# Check Dublin Core for recognizable identifier types
|
||||
for scheme, check_func in iteritems({'doi':check_doi, 'isbn':check_isbn}):
|
||||
for scheme, check_func in {'doi':check_doi, 'isbn':check_isbn}.items():
|
||||
if scheme not in identifiers:
|
||||
val = check_func(first_simple('//dc:identifier', root))
|
||||
if val:
|
||||
@@ -404,7 +403,7 @@ def create_identifiers(xmp, identifiers):
|
||||
xmp.append(xmpid)
|
||||
bag = xmpid.makeelement(expand('rdf:Bag'))
|
||||
xmpid.append(bag)
|
||||
for scheme, value in iteritems(identifiers):
|
||||
for scheme, value in identifiers.items():
|
||||
li = bag.makeelement(expand('rdf:li'))
|
||||
li.set(expand('rdf:parseType'), 'Resource')
|
||||
bag.append(li)
|
||||
@@ -440,7 +439,7 @@ def create_user_metadata(calibre, all_user_metadata):
|
||||
calibre.append(s)
|
||||
bag = s.makeelement(expand('rdf:Bag'))
|
||||
s.append(bag)
|
||||
for name, fm in iteritems(all_user_metadata):
|
||||
for name, fm in all_user_metadata.items():
|
||||
try:
|
||||
fm = copy.copy(fm)
|
||||
encode_is_multiple(fm)
|
||||
@@ -470,12 +469,12 @@ def metadata_to_xmp_packet(mi):
|
||||
dc = rdf.makeelement(expand('rdf:Description'), nsmap=nsmap('dc'))
|
||||
dc.set(expand('rdf:about'), '')
|
||||
rdf.append(dc)
|
||||
for prop, tag in iteritems({'title':'dc:title', 'comments':'dc:description'}):
|
||||
for prop, tag in {'title':'dc:title', 'comments':'dc:description'}.items():
|
||||
val = mi.get(prop) or ''
|
||||
create_alt_property(dc, tag, val)
|
||||
for prop, (tag, ordered) in iteritems({
|
||||
'authors':('dc:creator', True), 'tags':('dc:subject', False), 'publisher':('dc:publisher', False),
|
||||
}):
|
||||
for prop, (tag, ordered) in {'authors': ('dc:creator', True),
|
||||
'tags': ('dc:subject', False),
|
||||
'publisher': ('dc:publisher', False)}.items():
|
||||
val = mi.get(prop) or ()
|
||||
if isinstance(val, (str, bytes)):
|
||||
val = [val]
|
||||
@@ -499,9 +498,9 @@ def metadata_to_xmp_packet(mi):
|
||||
identifiers = mi.get_identifiers()
|
||||
if identifiers:
|
||||
create_identifiers(xmp, identifiers)
|
||||
for scheme, val in iteritems(identifiers):
|
||||
for scheme, val in identifiers.items():
|
||||
if scheme in {'isbn', 'doi'}:
|
||||
for prefix, parent in iteritems(extra_ids):
|
||||
for prefix, parent in extra_ids.items():
|
||||
ie = parent.makeelement(expand('%s:%s'%(prefix, scheme)))
|
||||
ie.text = val
|
||||
parent.append(ie)
|
||||
@@ -549,7 +548,7 @@ def find_used_namespaces(elem):
|
||||
|
||||
def find_preferred_prefix(namespace, elems):
|
||||
for elem in elems:
|
||||
ans = {v:k for k, v in iteritems(elem.nsmap)}.get(namespace, None)
|
||||
ans = {v:k for k, v in elem.nsmap.items()}.get(namespace, None)
|
||||
if ans is not None:
|
||||
return ans
|
||||
return find_preferred_prefix(namespace, elem.iterchildren(etree.Element))
|
||||
@@ -561,7 +560,7 @@ def find_nsmap(elems):
|
||||
used_namespaces |= find_used_namespaces(elem)
|
||||
ans = {}
|
||||
used_namespaces -= {NS_MAP['xml'], NS_MAP['x'], None, NS_MAP['rdf']}
|
||||
rmap = {v:k for k, v in iteritems(NS_MAP)}
|
||||
rmap = {v:k for k, v in NS_MAP.items()}
|
||||
i = 0
|
||||
for ns in used_namespaces:
|
||||
if ns in rmap:
|
||||
|
||||
Reference in New Issue
Block a user