mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-04-19 20:53:35 +02:00
Removed iteritems and itervalues, which are redundant
This commit is contained in:
@@ -11,7 +11,7 @@ from ebook_converter.ebooks.pdf.render.common import PAPER_SIZES
|
||||
from ebook_converter.utils.date import utcnow
|
||||
from ebook_converter.utils.localization import canonicalize_lang, lang_as_iso639_1
|
||||
from ebook_converter.utils.zipfile import ZipFile
|
||||
from ebook_converter.polyglot.builtins import iteritems, native_string_type
|
||||
from ebook_converter.polyglot.builtins import native_string_type
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -52,7 +52,7 @@ def create_skeleton(opts, namespaces=None):
|
||||
|
||||
def w(x):
|
||||
return '{%s}%s' % (namespaces['w'], x)
|
||||
dn = {k:v for k, v in iteritems(namespaces) if k in {'w', 'r', 'm', 've', 'o', 'wp', 'w10', 'wne', 'a', 'pic'}}
|
||||
dn = {k:v for k, v in namespaces.items() if k in {'w', 'r', 'm', 've', 'o', 'wp', 'w10', 'wne', 'a', 'pic'}}
|
||||
E = ElementMaker(namespace=dn['w'], nsmap=dn)
|
||||
doc = E.document()
|
||||
body = E.body()
|
||||
@@ -70,7 +70,7 @@ def create_skeleton(opts, namespaces=None):
|
||||
E.docGrid(**{w('linePitch'):"360"}),
|
||||
))
|
||||
|
||||
dn = {k:v for k, v in iteritems(namespaces) if k in tuple('wra') + ('wp',)}
|
||||
dn = {k:v for k, v in namespaces.items() if k in tuple('wra') + ('wp',)}
|
||||
E = ElementMaker(namespace=dn['w'], nsmap=dn)
|
||||
styles = E.styles(
|
||||
E.docDefaults(
|
||||
@@ -117,12 +117,11 @@ class DocumentRelationships(object):
|
||||
def __init__(self, namespace):
|
||||
self.rmap = {}
|
||||
self.namespace = namespace
|
||||
for typ, target in iteritems({
|
||||
namespace.names['STYLES']: 'styles.xml',
|
||||
namespace.names['NUMBERING']: 'numbering.xml',
|
||||
namespace.names['WEB_SETTINGS']: 'webSettings.xml',
|
||||
namespace.names['FONTS']: 'fontTable.xml',
|
||||
}):
|
||||
for typ, target in {namespace.names['STYLES']: 'styles.xml',
|
||||
namespace.names['NUMBERING']: 'numbering.xml',
|
||||
namespace.names['WEB_SETTINGS']: 'webSettings.xml',
|
||||
namespace.names['FONTS']: 'fontTable.xml',
|
||||
}.items():
|
||||
self.add_relationship(target, typ)
|
||||
|
||||
def get_relationship_id(self, target, rtype, target_mode=None):
|
||||
@@ -142,7 +141,7 @@ class DocumentRelationships(object):
|
||||
namespaces = self.namespace.namespaces
|
||||
E = ElementMaker(namespace=namespaces['pr'], nsmap={None:namespaces['pr']})
|
||||
relationships = E.Relationships()
|
||||
for (target, rtype, target_mode), rid in iteritems(self.rmap):
|
||||
for (target, rtype, target_mode), rid in self.rmap.items():
|
||||
r = E.Relationship(Id=rid, Type=rtype, Target=target)
|
||||
if target_mode is not None:
|
||||
r.set('TargetMode', target_mode)
|
||||
@@ -169,7 +168,7 @@ class DOCX(object):
|
||||
def contenttypes(self):
|
||||
E = ElementMaker(namespace=self.namespace.namespaces['ct'], nsmap={None:self.namespace.namespaces['ct']})
|
||||
types = E.Types()
|
||||
for partname, mt in iteritems({
|
||||
for partname, mt in {
|
||||
"/word/footnotes.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml",
|
||||
"/word/document.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml",
|
||||
"/word/numbering.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",
|
||||
@@ -181,15 +180,13 @@ class DOCX(object):
|
||||
"/word/webSettings.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml",
|
||||
"/docProps/core.xml": "application/vnd.openxmlformats-package.core-properties+xml",
|
||||
"/docProps/app.xml": "application/vnd.openxmlformats-officedocument.extended-properties+xml",
|
||||
}):
|
||||
}.items():
|
||||
types.append(E.Override(PartName=partname, ContentType=mt))
|
||||
added = {'png', 'gif', 'jpeg', 'jpg', 'svg', 'xml'}
|
||||
for ext in added:
|
||||
types.append(E.Default(Extension=ext, ContentType=guess_type('a.'+ext)[0]))
|
||||
for ext, mt in iteritems({
|
||||
"rels": "application/vnd.openxmlformats-package.relationships+xml",
|
||||
"odttf": "application/vnd.openxmlformats-officedocument.obfuscatedFont",
|
||||
}):
|
||||
for ext, mt in {"rels": "application/vnd.openxmlformats-package.relationships+xml",
|
||||
"odttf": "application/vnd.openxmlformats-officedocument.obfuscatedFont"}.items():
|
||||
added.add(ext)
|
||||
types.append(E.Default(Extension=ext, ContentType=mt))
|
||||
for fname in self.images:
|
||||
@@ -267,9 +264,9 @@ class DOCX(object):
|
||||
zf.writestr('word/fontTable.xml', xml2str(self.font_table))
|
||||
zf.writestr('word/_rels/document.xml.rels', self.document_relationships.serialize())
|
||||
zf.writestr('word/_rels/fontTable.xml.rels', xml2str(self.embedded_fonts))
|
||||
for fname, data_getter in iteritems(self.images):
|
||||
for fname, data_getter in self.images.items():
|
||||
zf.writestr(fname, data_getter())
|
||||
for fname, data in iteritems(self.fonts):
|
||||
for fname, data in self.fonts.items():
|
||||
zf.writestr(fname, data)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import os
|
||||
import posixpath
|
||||
from collections import namedtuple
|
||||
from functools import partial
|
||||
from ebook_converter.polyglot.builtins import iteritems, itervalues
|
||||
|
||||
from lxml import etree
|
||||
|
||||
@@ -127,7 +126,7 @@ class ImagesManager(object):
|
||||
if fake_margins:
|
||||
# DOCX does not support setting margins for inline images, so we
|
||||
# fake it by using effect extents to simulate margins
|
||||
makeelement(parent, 'wp:effectExtent', **{k[-1].lower():v for k, v in iteritems(get_image_margins(style))})
|
||||
makeelement(parent, 'wp:effectExtent', **{k[-1].lower():v for k, v in get_image_margins(style).items()})
|
||||
else:
|
||||
makeelement(parent, 'wp:effectExtent', l='0', r='0', t='0', b='0')
|
||||
if floating is not None:
|
||||
@@ -171,7 +170,7 @@ class ImagesManager(object):
|
||||
return fname
|
||||
|
||||
def serialize(self, images_map):
|
||||
for img in itervalues(self.images):
|
||||
for img in self.images.values():
|
||||
images_map['word/' + img.fname] = partial(self.get_data, img.item)
|
||||
|
||||
def get_data(self, item):
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
from collections import defaultdict
|
||||
from operator import attrgetter
|
||||
|
||||
from ebook_converter.polyglot.builtins import iteritems, itervalues
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
@@ -60,7 +58,7 @@ class NumberingDefinition(object):
|
||||
items_for_level = defaultdict(list)
|
||||
container_for_level = {}
|
||||
type_for_level = {}
|
||||
for ilvl, items in iteritems(self.level_map):
|
||||
for ilvl, items in self.level_map.items():
|
||||
for container, list_tag, block, list_type, tag_style in items:
|
||||
items_for_level[ilvl].append(list_tag)
|
||||
container_for_level[ilvl] = container
|
||||
@@ -74,7 +72,7 @@ class NumberingDefinition(object):
|
||||
return hash(self.levels)
|
||||
|
||||
def link_blocks(self):
|
||||
for ilvl, items in iteritems(self.level_map):
|
||||
for ilvl, items in self.level_map.items():
|
||||
for container, list_tag, block, list_type, tag_style in items:
|
||||
block.numbering_id = (self.num_id + 1, ilvl)
|
||||
|
||||
@@ -146,16 +144,16 @@ class ListsManager(object):
|
||||
ilvl = len(container_tags) - 1
|
||||
l.level_map[ilvl].append((container_tags[0], list_tag, block, list_type, tag_style))
|
||||
|
||||
[nd.finalize() for nd in itervalues(lists)]
|
||||
[nd.finalize() for nd in lists.values()]
|
||||
definitions = {}
|
||||
for defn in itervalues(lists):
|
||||
for defn in lists.values():
|
||||
try:
|
||||
defn = definitions[defn]
|
||||
except KeyError:
|
||||
definitions[defn] = defn
|
||||
defn.num_id = len(definitions) - 1
|
||||
defn.link_blocks()
|
||||
self.definitions = sorted(itervalues(definitions), key=attrgetter('num_id'))
|
||||
self.definitions = sorted(definitions.values(), key=attrgetter('num_id'))
|
||||
|
||||
def serialize(self, parent):
|
||||
for defn in self.definitions:
|
||||
|
||||
@@ -7,7 +7,6 @@ from lxml import etree
|
||||
from ebook_converter.ebooks import parse_css_length
|
||||
from ebook_converter.ebooks.docx.writer.utils import convert_color, int_or_zero
|
||||
from ebook_converter.utils.localization import lang_as_iso639_1
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
from ebook_converter.tinycss.css21 import CSS21Parser
|
||||
|
||||
|
||||
@@ -155,7 +154,7 @@ class DOCXStyle(object):
|
||||
getattr(self, x) for x in self.ALL_PROPS))
|
||||
|
||||
def makeelement(self, parent, name, **attrs):
|
||||
return parent.makeelement(self.w(name), **{self.w(k):v for k, v in iteritems(attrs)})
|
||||
return parent.makeelement(self.w(name), **{self.w(k):v for k, v in attrs.items()})
|
||||
|
||||
def __hash__(self):
|
||||
return self._hash
|
||||
@@ -362,7 +361,7 @@ class DescendantTextStyle(object):
|
||||
p = []
|
||||
|
||||
def add(name, **props):
|
||||
p.append((name, frozenset(iteritems(props))))
|
||||
p.append((name, frozenset(props.items())))
|
||||
|
||||
def vals(attr):
|
||||
return getattr(parent_style, attr), getattr(child_style, attr)
|
||||
@@ -559,7 +558,7 @@ class BlockStyle(DOCXStyle):
|
||||
def serialize_properties(self, pPr, normal_style):
|
||||
makeelement, w = self.makeelement, self.w
|
||||
spacing = makeelement(pPr, 'spacing')
|
||||
for edge, attr in iteritems({'top':'before', 'bottom':'after'}):
|
||||
for edge, attr in {'top':'before', 'bottom':'after'}.items():
|
||||
getter = attrgetter('css_margin_' + edge)
|
||||
css_val, css_unit = parse_css_length(getter(self))
|
||||
if css_unit in ('em', 'ex'):
|
||||
@@ -693,7 +692,7 @@ class StylesManager(object):
|
||||
|
||||
counts = Counter()
|
||||
smap = {}
|
||||
for (bs, rs), blocks in iteritems(used_pairs):
|
||||
for (bs, rs), blocks in used_pairs.items():
|
||||
s = CombinedStyle(bs, rs, blocks, self.namespace)
|
||||
smap[(bs, rs)] = s
|
||||
counts[s] += sum(1 for b in blocks if not b.is_empty())
|
||||
|
||||
@@ -2,7 +2,6 @@ from collections import namedtuple
|
||||
|
||||
from ebook_converter.ebooks.docx.writer.utils import convert_color
|
||||
from ebook_converter.ebooks.docx.writer.styles import read_css_block_borders as rcbb, border_edges
|
||||
from ebook_converter.polyglot.builtins import iteritems
|
||||
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
@@ -121,7 +120,7 @@ class Cell(object):
|
||||
makeelement(tcPr, 'w:shd', w_val="clear", w_color="auto", w_fill=bc)
|
||||
|
||||
b = makeelement(tcPr, 'w:tcBorders', append=False)
|
||||
for edge, border in iteritems(self.borders):
|
||||
for edge, border in self.borders.items():
|
||||
if border is not None and border.width > 0 and border.style != 'none':
|
||||
makeelement(b, 'w:' + edge, w_val=border.style, w_sz=str(border.width), w_color=border.color)
|
||||
if len(b) > 0:
|
||||
|
||||
Reference in New Issue
Block a user