Use dict comprehension now that we don't support Python 2.6
This commit is contained in:
parent
9fe2b3fb15
commit
37e6e6a380
@ -12,7 +12,7 @@ class ExtendCodec(codecs.Codec):
|
||||
self.name = name
|
||||
self.base_encoding = base_encoding
|
||||
self.mapping = mapping
|
||||
self.reverse = dict((v,k) for k,v in mapping.items())
|
||||
self.reverse = {v:k for k,v in mapping.items()}
|
||||
self.max_len = max(len(v) for v in mapping.values())
|
||||
self.info = codecs.CodecInfo(name=self.name, encode=self.encode, decode=self.decode)
|
||||
codecs.register_error(name, self.error)
|
||||
|
@ -463,8 +463,8 @@ def merge(self, m, tables):
|
||||
for i,(table,dups) in enumerate(zip(tables, m.duplicateGlyphsPerFont)):
|
||||
if not dups: continue
|
||||
assert (table is not None and table is not NotImplemented), "Have duplicates to resolve for font %d but no GSUB" % (i + 1)
|
||||
lookupMap = dict((id(v),v) for v in table.table.LookupList.Lookup)
|
||||
featureMap = dict((id(v),v) for v in table.table.FeatureList.FeatureRecord)
|
||||
lookupMap = {id(v):v for v in table.table.LookupList.Lookup}
|
||||
featureMap = {id(v):v for v in table.table.FeatureList.FeatureRecord}
|
||||
synthFeature = None
|
||||
synthLookup = None
|
||||
for script in table.table.ScriptList.ScriptRecord:
|
||||
@ -830,14 +830,14 @@ class Merger(object):
|
||||
if not t: continue
|
||||
|
||||
if t.table.LookupList:
|
||||
lookupMap = dict((i,id(v)) for i,v in enumerate(t.table.LookupList.Lookup))
|
||||
lookupMap = {i:id(v) for i,v in enumerate(t.table.LookupList.Lookup)}
|
||||
t.table.LookupList.mapLookups(lookupMap)
|
||||
if t.table.FeatureList:
|
||||
# XXX Handle present FeatureList but absent LookupList
|
||||
t.table.FeatureList.mapLookups(lookupMap)
|
||||
|
||||
if t.table.FeatureList and t.table.ScriptList:
|
||||
featureMap = dict((i,id(v)) for i,v in enumerate(t.table.FeatureList.FeatureRecord))
|
||||
featureMap = {i:id(v) for i,v in enumerate(t.table.FeatureList.FeatureRecord)}
|
||||
t.table.ScriptList.mapFeatures(featureMap)
|
||||
|
||||
# TODO GDEF/Lookup MarkFilteringSets
|
||||
@ -855,7 +855,7 @@ class Merger(object):
|
||||
if not t: continue
|
||||
|
||||
if t.table.LookupList:
|
||||
lookupMap = dict((id(v),i) for i,v in enumerate(t.table.LookupList.Lookup))
|
||||
lookupMap = {id(v):i for i,v in enumerate(t.table.LookupList.Lookup)}
|
||||
t.table.LookupList.mapLookups(lookupMap)
|
||||
if t.table.FeatureList:
|
||||
# XXX Handle present FeatureList but absent LookupList
|
||||
@ -863,7 +863,7 @@ class Merger(object):
|
||||
|
||||
if t.table.FeatureList and t.table.ScriptList:
|
||||
# XXX Handle present ScriptList but absent FeatureList
|
||||
featureMap = dict((id(v),i) for i,v in enumerate(t.table.FeatureList.FeatureRecord))
|
||||
featureMap = {id(v):i for i,v in enumerate(t.table.FeatureList.FeatureRecord)}
|
||||
t.table.ScriptList.mapFeatures(featureMap)
|
||||
|
||||
# TODO GDEF/Lookup MarkFilteringSets
|
||||
|
@ -83,7 +83,7 @@ cffDictOperandEncoding[255] = read_reserved
|
||||
|
||||
realNibbles = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||
'.', 'E', 'E-', None, '-']
|
||||
realNibblesDict = dict((v,i) for i,v in enumerate(realNibbles))
|
||||
realNibblesDict = {v:i for i,v in enumerate(realNibbles)}
|
||||
|
||||
|
||||
class ByteCodeBase(object):
|
||||
|
@ -369,7 +369,7 @@ def intersect_class(self, glyphs, klass):
|
||||
@_add_method(otTables.ClassDef)
|
||||
def subset(self, glyphs, remap=False):
|
||||
"""Returns ascending list of remaining classes."""
|
||||
self.classDefs = dict((g,v) for g,v in self.classDefs.items() if g in glyphs)
|
||||
self.classDefs = {g:v for g,v in self.classDefs.items() if g in glyphs}
|
||||
# Note: while class 0 has the special meaning of "not matched",
|
||||
# if no glyph will ever /not match/, we can optimize class 0 out too.
|
||||
indices = _uniq_sort(
|
||||
@ -382,8 +382,7 @@ def subset(self, glyphs, remap=False):
|
||||
@_add_method(otTables.ClassDef)
|
||||
def remap(self, class_map):
|
||||
"""Remaps classes."""
|
||||
self.classDefs = dict((g,class_map.index(v))
|
||||
for g,v in self.classDefs.items())
|
||||
self.classDefs = {g:class_map.index(v) for g,v in self.classDefs.items()}
|
||||
|
||||
@_add_method(otTables.SingleSubst)
|
||||
def closure_glyphs(self, s, cur_glyphs):
|
||||
@ -391,8 +390,8 @@ def closure_glyphs(self, s, cur_glyphs):
|
||||
|
||||
@_add_method(otTables.SingleSubst)
|
||||
def subset_glyphs(self, s):
|
||||
self.mapping = dict((g,v) for g,v in self.mapping.items()
|
||||
if g in s.glyphs and v in s.glyphs)
|
||||
self.mapping = {g:v for g,v in self.mapping.items()
|
||||
if g in s.glyphs and v in s.glyphs}
|
||||
return bool(self.mapping)
|
||||
|
||||
@_add_method(otTables.MultipleSubst)
|
||||
@ -419,10 +418,10 @@ def closure_glyphs(self, s, cur_glyphs):
|
||||
|
||||
@_add_method(otTables.AlternateSubst)
|
||||
def subset_glyphs(self, s):
|
||||
self.alternates = dict((g,vlist)
|
||||
for g,vlist in self.alternates.items()
|
||||
if g in s.glyphs and
|
||||
all(v in s.glyphs for v in vlist))
|
||||
self.alternates = {g:vlist
|
||||
for g,vlist in self.alternates.items()
|
||||
if g in s.glyphs and
|
||||
all(v in s.glyphs for v in vlist)}
|
||||
return bool(self.alternates)
|
||||
|
||||
@_add_method(otTables.LigatureSubst)
|
||||
@ -434,13 +433,13 @@ def closure_glyphs(self, s, cur_glyphs):
|
||||
|
||||
@_add_method(otTables.LigatureSubst)
|
||||
def subset_glyphs(self, s):
|
||||
self.ligatures = dict((g,v) for g,v in self.ligatures.items()
|
||||
if g in s.glyphs)
|
||||
self.ligatures = dict((g,[seq for seq in seqs
|
||||
if seq.LigGlyph in s.glyphs and
|
||||
all(c in s.glyphs for c in seq.Component)])
|
||||
for g,seqs in self.ligatures.items())
|
||||
self.ligatures = dict((g,v) for g,v in self.ligatures.items() if v)
|
||||
self.ligatures = {g:v for g,v in self.ligatures.items()
|
||||
if g in s.glyphs}
|
||||
self.ligatures = {g:[seq for seq in seqs
|
||||
if seq.LigGlyph in s.glyphs and
|
||||
all(c in s.glyphs for c in seq.Component)]
|
||||
for g,seqs in self.ligatures.items()}
|
||||
self.ligatures = {g:v for g,v in self.ligatures.items() if v}
|
||||
return bool(self.ligatures)
|
||||
|
||||
@_add_method(otTables.ReverseChainSingleSubst)
|
||||
@ -1482,12 +1481,12 @@ def subset_glyphs(self, s):
|
||||
table.LigCaretList.LigGlyphCount = len(table.LigCaretList.LigGlyph)
|
||||
if table.MarkAttachClassDef:
|
||||
table.MarkAttachClassDef.classDefs = \
|
||||
dict((g,v) for g,v in table.MarkAttachClassDef.classDefs.items()
|
||||
if g in glyphs)
|
||||
{g:v for g,v in table.MarkAttachClassDef.classDefs.items()
|
||||
if g in glyphs}
|
||||
if table.GlyphClassDef:
|
||||
table.GlyphClassDef.classDefs = \
|
||||
dict((g,v) for g,v in table.GlyphClassDef.classDefs.items()
|
||||
if g in glyphs)
|
||||
{g:v for g,v in table.GlyphClassDef.classDefs.items()
|
||||
if g in glyphs}
|
||||
if table.AttachList:
|
||||
indices = table.AttachList.Coverage.subset(glyphs)
|
||||
GlyphCount = table.AttachList.GlyphCount
|
||||
@ -1538,31 +1537,31 @@ def prune_pre_subset(self, options):
|
||||
def subset_glyphs(self, s):
|
||||
glyphs = s.glyphs_gsubed
|
||||
for t in self.kernTables:
|
||||
t.kernTable = dict(((a,b),v) for (a,b),v in t.kernTable.items()
|
||||
if a in glyphs and b in glyphs)
|
||||
t.kernTable = {(a,b):v for (a,b),v in t.kernTable.items()
|
||||
if a in glyphs and b in glyphs}
|
||||
self.kernTables = [t for t in self.kernTables if t.kernTable]
|
||||
return bool(self.kernTables)
|
||||
|
||||
@_add_method(ttLib.getTableClass('vmtx'))
|
||||
def subset_glyphs(self, s):
|
||||
self.metrics = dict((g,v) for g,v in self.metrics.items() if g in s.glyphs)
|
||||
self.metrics = {g:v for g,v in self.metrics.items() if g in s.glyphs}
|
||||
return bool(self.metrics)
|
||||
|
||||
@_add_method(ttLib.getTableClass('hmtx'))
|
||||
def subset_glyphs(self, s):
|
||||
self.metrics = dict((g,v) for g,v in self.metrics.items() if g in s.glyphs)
|
||||
self.metrics = {g:v for g,v in self.metrics.items() if g in s.glyphs}
|
||||
return True # Required table
|
||||
|
||||
@_add_method(ttLib.getTableClass('hdmx'))
|
||||
def subset_glyphs(self, s):
|
||||
self.hdmx = dict((sz,dict((g,v) for g,v in l.items() if g in s.glyphs))
|
||||
for sz,l in self.hdmx.items())
|
||||
self.hdmx = {sz:{g:v for g,v in l.items() if g in s.glyphs}
|
||||
for sz,l in self.hdmx.items()}
|
||||
return bool(self.hdmx)
|
||||
|
||||
@_add_method(ttLib.getTableClass('VORG'))
|
||||
def subset_glyphs(self, s):
|
||||
self.VOriginRecords = dict((g,v) for g,v in self.VOriginRecords.items()
|
||||
if g in s.glyphs)
|
||||
self.VOriginRecords = {g:v for g,v in self.VOriginRecords.items()
|
||||
if g in s.glyphs}
|
||||
self.numVertOriginYMetrics = len(self.VOriginRecords)
|
||||
return True # Never drop; has default metrics
|
||||
|
||||
@ -1632,7 +1631,7 @@ def prune_pre_subset(self, options):
|
||||
|
||||
@_add_method(ttLib.getTableClass('glyf'))
|
||||
def subset_glyphs(self, s):
|
||||
self.glyphs = dict((g,v) for g,v in self.glyphs.items() if g in s.glyphs)
|
||||
self.glyphs = {g:v for g,v in self.glyphs.items() if g in s.glyphs}
|
||||
indices = [i for i,g in enumerate(self.glyphOrder) if g in s.glyphs]
|
||||
for v in self.glyphs.values():
|
||||
if hasattr(v, "data"):
|
||||
@ -1695,13 +1694,13 @@ def subset_glyphs(self, s):
|
||||
#sel.format = None
|
||||
sel.format = 3
|
||||
sel.gidArray = [sel.gidArray[i] for i in indices]
|
||||
cs.charStrings = dict((g,indices.index(v))
|
||||
for g,v in cs.charStrings.items()
|
||||
if g in s.glyphs)
|
||||
cs.charStrings = {g:indices.index(v)
|
||||
for g,v in cs.charStrings.items()
|
||||
if g in s.glyphs}
|
||||
else:
|
||||
cs.charStrings = dict((g,v)
|
||||
for g,v in cs.charStrings.items()
|
||||
if g in s.glyphs)
|
||||
cs.charStrings = {g:v
|
||||
for g,v in cs.charStrings.items()
|
||||
if g in s.glyphs}
|
||||
font.charset = [g for g in font.charset if g in s.glyphs]
|
||||
font.numGlyphs = len(font.charset)
|
||||
|
||||
@ -2129,16 +2128,16 @@ def subset_glyphs(self, s):
|
||||
if t.format == 14:
|
||||
# TODO(behdad) We drop all the default-UVS mappings
|
||||
# for glyphs_requested. I don't think we care about that...
|
||||
t.uvsDict = dict((v,[(u,g) for u,g in l
|
||||
if g in s.glyphs or u in s.unicodes_requested])
|
||||
for v,l in t.uvsDict.items())
|
||||
t.uvsDict = dict((v,l) for v,l in t.uvsDict.items() if l)
|
||||
t.uvsDict = {v:[(u,g) for u,g in l
|
||||
if g in s.glyphs or u in s.unicodes_requested]
|
||||
for v,l in t.uvsDict.items()}
|
||||
t.uvsDict = {v:l for v,l in t.uvsDict.items() if l}
|
||||
elif t.isUnicode():
|
||||
t.cmap = dict((u,g) for u,g in t.cmap.items()
|
||||
if g in s.glyphs_requested or u in s.unicodes_requested)
|
||||
t.cmap = {u:g for u,g in t.cmap.items()
|
||||
if g in s.glyphs_requested or u in s.unicodes_requested}
|
||||
else:
|
||||
t.cmap = dict((u,g) for u,g in t.cmap.items()
|
||||
if g in s.glyphs_requested)
|
||||
t.cmap = {u:g for u,g in t.cmap.items()
|
||||
if g in s.glyphs_requested}
|
||||
self.tables = [t for t in self.tables
|
||||
if (t.cmap if t.format != 14 else t.uvsDict)]
|
||||
self.numSubTables = len(self.tables)
|
||||
|
@ -55,7 +55,7 @@ class table__g_v_a_r(DefaultTable.DefaultTable):
|
||||
axisTags = [axis.AxisTag for axis in ttFont["fvar"].table.VariationAxis]
|
||||
|
||||
sharedCoords = self.compileSharedCoords_(axisTags)
|
||||
sharedCoordIndices = dict([(coord, i) for i, coord in enumerate(sharedCoords)])
|
||||
sharedCoordIndices = {coord:i for i, coord in enumerate(sharedCoords)}
|
||||
sharedCoordSize = sum([len(c) for c in sharedCoords])
|
||||
|
||||
compiledGlyphs = self.compileGlyphs_(ttFont, axisTags, sharedCoordIndices)
|
||||
|
@ -363,7 +363,7 @@ class GlyphVariationTest(unittest.TestCase):
|
||||
# Make sure we are not affected by https://github.com/behdad/fonttools/issues/286
|
||||
data = deHexStr("7F B9 80 35")
|
||||
values, _ = GlyphVariation.decompileCoord_(["wght", "wdth"], data, 0)
|
||||
axisValues = dict([(axis, (val, val, val)) for axis, val in values.items()])
|
||||
axisValues = {axis:(val, val, val) for axis, val in values.items()}
|
||||
gvar = GlyphVariation(axisValues, [None] * 4)
|
||||
self.assertEqual("7F B9 80 35", hexencode(gvar.compileCoord(["wght", "wdth"])))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user