Replaced .iteritems() and with six.iteritems() for Python 3 compat

This is a squashed commit, the previous messages can be seen bellow

This is the 1st commit message:

Replaced .iteritems() usage for .items()

Fixed some python 2 leftovers, as discussed in #267. Also formatted code according to Black.\nThis possibly breaks some python 2 compatibility

This is the commit message #2:

Reverted formatting and more spread six usage
pull/274/head
Igor Moura 2019-07-16 21:18:42 -03:00
parent 127d587431
commit 540df9f676
6 changed files with 11 additions and 8 deletions

View File

@ -83,7 +83,7 @@ class CMap(CMapBase):
assert isinstance(cmap, CMap), str(type(cmap))
def copy(dst, src):
for (k, v) in src.iteritems():
for (k, v) in six.iteritems(src):
if isinstance(v, dict):
d = {}
dst[k] = d
@ -110,7 +110,7 @@ class CMap(CMapBase):
if code2cid is None:
code2cid = self.code2cid
code = ()
for (k, v) in sorted(code2cid.iteritems()):
for (k, v) in sorted(six.iteritems(code2cid)):
c = code+(k,)
if isinstance(v, int):
out.write('code %r = cid %d\n' % (c, v))
@ -148,7 +148,7 @@ class UnicodeMap(CMapBase):
return self.cid2unichr[cid]
def dump(self, out=sys.stdout):
for (k, v) in sorted(self.cid2unichr.iteritems()):
for (k, v) in sorted(six.iteritems(self.cid2unichr)):
out.write('cid %d = unicode %r\n' % (k, v))
return

View File

@ -178,7 +178,7 @@ class TagExtractor(PDFDevice):
s = ''
if isinstance(props, dict):
s = ''.join(' %s="%s"' % (utils.enc(k), utils.enc(str(v))) for (k, v)
in sorted(props.iteritems()))
in sorted(six.iteritems(props)))
out_s = '<%s%s>' % (utils.enc(tag.name), s)
self.outfp.write(utils.make_compat_bytes(out_s))
self._stack.append(tag)

View File

@ -453,7 +453,7 @@ class TrueTypeFont(object):
assert False, str(('Unhandled', fmttype))
# create unicode map
unicode_map = FileUnicodeMap()
for (char, gid) in char2gid.iteritems():
for (char, gid) in six.iteritems(char2gid):
unicode_map.add_cid2unichr(gid, char)
return unicode_map

View File

@ -96,7 +96,7 @@ def resolve_all(x, default=None):
if isinstance(x, list):
x = [resolve_all(v, default=default) for v in x]
elif isinstance(x, dict):
for (k, v) in x.iteritems():
for (k, v) in six.iteritems(x):
x[k] = resolve_all(v, default=default)
return x

View File

@ -3,6 +3,8 @@
import sys
import fileinput
import six #Python 2+3 compatibility
def main(argv):
fonts = {}
for line in fileinput.input():
@ -33,7 +35,7 @@ def main(argv):
props[k] = tuple(map(float, f[1:5]))
print ('# -*- python -*-')
print ('FONT_METRICS = {')
for (fontname,(props,chars)) in fonts.iteritems():
for (fontname,(props,chars)) in six.iteritems(fonts):
print (' %r: %r,' % (fontname, (props,chars)))
print ('}')
return 0

View File

@ -26,6 +26,7 @@ from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import HTMLConverter, TextConverter
from pdfminer.layout import LAParams
import six #Python 2+3 compatibility
# quote HTML metacharacters
def q(x):
@ -35,7 +36,7 @@ def q(x):
Q = re.compile(r'[^a-zA-Z0-9_.-=]')
def url(base, **kw):
r = []
for (k,v) in kw.iteritems():
for (k,v) in six.iteritems(kw):
v = Q.sub(lambda m: '%%%02X' % ord(m.group(0)), encoder(q(v), 'replace')[0])
r.append('%s=%s' % (k, v))
return base+'&'.join(r)