Some light pep8ing
This commit is contained in:
parent
4400854ff0
commit
a997fae488
@ -108,7 +108,8 @@ class table_G__l_a_t(DefaultTable.DefaultTable):
|
|||||||
o.subboxes = []
|
o.subboxes = []
|
||||||
for b in range(numsub):
|
for b in range(numsub):
|
||||||
if len(data) >= 8 :
|
if len(data) >= 8 :
|
||||||
subbox, data = sstruct.unpack2(Glat_format_3_subbox_entry, data, _Object())
|
subbox, data = sstruct.unpack2(Glat_format_3_subbox_entry,
|
||||||
|
data, _Object())
|
||||||
o.subboxes.append(subbox)
|
o.subboxes.append(subbox)
|
||||||
attrs = self.decompileAttributes12(data, Glat_format_23_entry)
|
attrs = self.decompileAttributes12(data, Glat_format_23_entry)
|
||||||
if self.hasOctaboxes:
|
if self.hasOctaboxes:
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
# uncompyle6 version 2.11.5
|
|
||||||
# Python bytecode 2.7 (62211)
|
|
||||||
# Decompiled from: Python 2.7.13 (default, Jan 19 2017, 14:48:08)
|
|
||||||
# [GCC 6.3.0 20170118]
|
|
||||||
# Embedded file name: /home/tim/workspace/fonttools/Lib/fontTools/ttLib/tables/G__l_o_c.py
|
|
||||||
# Compiled at: 2015-09-29 18:27:41
|
|
||||||
from __future__ import print_function, division, absolute_import
|
from __future__ import print_function, division, absolute_import
|
||||||
from fontTools.misc.py23 import *
|
from fontTools.misc.py23 import *
|
||||||
from fontTools.misc import sstruct
|
from fontTools.misc import sstruct
|
||||||
@ -49,7 +43,9 @@ class table_G__l_o_c(DefaultTable.DefaultTable):
|
|||||||
self.attribIds.byteswap()
|
self.attribIds.byteswap()
|
||||||
|
|
||||||
def compile(self, ttFont):
|
def compile(self, ttFont):
|
||||||
data = sstruct.pack(Gloc_header, dict(version=1.0, flags=(bool(self.attribIds) << 1) + (self.locations.typecode == 'I'), numAttribs=self.numAttribs))
|
data = sstruct.pack(Gloc_header, dict(version=1.0,
|
||||||
|
flags=(bool(self.attribIds) << 1) + (self.locations.typecode == 'I'),
|
||||||
|
numAttribs=self.numAttribs))
|
||||||
self.locations.byteswap()
|
self.locations.byteswap()
|
||||||
data += self.locations.tostring()
|
data += self.locations.tostring()
|
||||||
self.locations.byteswap()
|
self.locations.byteswap()
|
||||||
|
@ -255,10 +255,10 @@ attrs_info=('flags', 'extraAscent', 'extraDescent', 'maxGlyphID',
|
|||||||
'numLigComp', 'numUserDefn', 'maxCompPerLig', 'direction', 'lbGID')
|
'numLigComp', 'numUserDefn', 'maxCompPerLig', 'direction', 'lbGID')
|
||||||
attrs_passindexes = ('iSubst', 'iPos', 'iJust', 'iBidi')
|
attrs_passindexes = ('iSubst', 'iPos', 'iJust', 'iBidi')
|
||||||
attrs_contexts = ('maxPreContext', 'maxPostContext')
|
attrs_contexts = ('maxPreContext', 'maxPostContext')
|
||||||
attrs_attributes = ('attrPseudo', 'attrBreakWeight',
|
attrs_attributes = ('attrPseudo', 'attrBreakWeight', 'attrDirectionality',
|
||||||
'attrDirectionality', 'attrMirroring', 'attrSkipPasses', 'attCollisions')
|
'attrMirroring', 'attrSkipPasses', 'attCollisions')
|
||||||
pass_attrs_info = ('flags', 'maxRuleLoop', 'maxRuleContext', 'maxBackup', 'minRulePreContext',
|
pass_attrs_info = ('flags', 'maxRuleLoop', 'maxRuleContext', 'maxBackup',
|
||||||
'maxRulePreContext', 'collisionThreshold')
|
'minRulePreContext', 'maxRulePreContext', 'collisionThreshold')
|
||||||
pass_attrs_fsm = ('numRows', 'numTransitional', 'numSuccess', 'numColumns')
|
pass_attrs_fsm = ('numRows', 'numTransitional', 'numSuccess', 'numColumns')
|
||||||
|
|
||||||
def writesimple(tag, self, writer, *attrkeys):
|
def writesimple(tag, self, writer, *attrkeys):
|
||||||
@ -308,7 +308,8 @@ class table_S__i_l_f(DefaultTable.DefaultTable):
|
|||||||
else:
|
else:
|
||||||
self.scheme = 0
|
self.scheme = 0
|
||||||
|
|
||||||
silfoffsets = struct.unpack_from(('>%dL' % self.numSilf), data[sstruct.calcsize(Silf_hdr_format):])
|
silfoffsets = struct.unpack_from(('>%dL' % self.numSilf),
|
||||||
|
data[sstruct.calcsize(Silf_hdr_format):])
|
||||||
for offset in silfoffsets:
|
for offset in silfoffsets:
|
||||||
s = Silf()
|
s = Silf()
|
||||||
self.silfs.append(s)
|
self.silfs.append(s)
|
||||||
@ -329,7 +330,8 @@ class table_S__i_l_f(DefaultTable.DefaultTable):
|
|||||||
return hdr+data
|
return hdr+data
|
||||||
|
|
||||||
def toXML(self, writer, ttFont):
|
def toXML(self, writer, ttFont):
|
||||||
writer.simpletag('version', version=self.version, compilerVersion=self.compilerVersion, compressionScheme=self.scheme)
|
writer.simpletag('version', version=self.version,
|
||||||
|
compilerVersion=self.compilerVersion, compressionScheme=self.scheme)
|
||||||
writer.newline()
|
writer.newline()
|
||||||
for s in self.silfs:
|
for s in self.silfs:
|
||||||
writer.begintag('silf')
|
writer.begintag('silf')
|
||||||
@ -386,9 +388,10 @@ class Silf(object):
|
|||||||
pseudo = sstruct.unpack(Silf_pseudomap_format, data[8+6*i:14+6*i], _Object())
|
pseudo = sstruct.unpack(Silf_pseudomap_format, data[8+6*i:14+6*i], _Object())
|
||||||
self.pMap[pseudo.unicode] = ttFont.getGlyphName(pseudo.nPseudo)
|
self.pMap[pseudo.unicode] = ttFont.getGlyphName(pseudo.nPseudo)
|
||||||
data = data[8 + 6 * numPseudo:]
|
data = data[8 + 6 * numPseudo:]
|
||||||
currpos = sstruct.calcsize(Silf_part1_format) + sstruct.calcsize(Silf_justify_format) * self.numJLevels + \
|
currpos = (sstruct.calcsize(Silf_part1_format)
|
||||||
sstruct.calcsize(Silf_part2_format) + 2 * self.numCritFeatures + 1 + 1 + 4 * numScriptTag + \
|
+ sstruct.calcsize(Silf_justify_format) * self.numJLevels
|
||||||
6 + 4 * self.numPasses + 8 + 6 * numPseudo
|
+ sstruct.calcsize(Silf_part2_format) + 2 * self.numCritFeatures
|
||||||
|
+ 1 + 1 + 4 * numScriptTag + 6 + 4 * self.numPasses + 8 + 6 * numPseudo)
|
||||||
if version >= 3.0:
|
if version >= 3.0:
|
||||||
currpos += sstruct.calcsize(Silf_part1_format_v3)
|
currpos += sstruct.calcsize(Silf_part1_format_v3)
|
||||||
self.classes = Classes()
|
self.classes = Classes()
|
||||||
@ -396,7 +399,8 @@ class Silf(object):
|
|||||||
for i in range(self.numPasses):
|
for i in range(self.numPasses):
|
||||||
p = Pass()
|
p = Pass()
|
||||||
self.passes.append(p)
|
self.passes.append(p)
|
||||||
p.decompile(data[self.oPasses[i]-currpos:self.oPasses[i+1]-currpos], ttFont, version)
|
p.decompile(data[self.oPasses[i]-currpos:self.oPasses[i+1]-currpos],
|
||||||
|
ttFont, version)
|
||||||
|
|
||||||
def compile(self, ttFont, version=2.0):
|
def compile(self, ttFont, version=2.0):
|
||||||
self.numPasses = len(self.passes)
|
self.numPasses = len(self.passes)
|
||||||
@ -561,12 +565,16 @@ class Classes(object):
|
|||||||
def decompile(self, data, ttFont, version=2.0):
|
def decompile(self, data, ttFont, version=2.0):
|
||||||
sstruct.unpack2(Silf_classmap_format, data, self)
|
sstruct.unpack2(Silf_classmap_format, data, self)
|
||||||
if version >= 4.0 :
|
if version >= 4.0 :
|
||||||
oClasses = struct.unpack((">%dL" % (self.numClass+1)), data[4:8+4*self.numClass])
|
oClasses = struct.unpack((">%dL" % (self.numClass+1)),
|
||||||
|
data[4:8+4*self.numClass])
|
||||||
else:
|
else:
|
||||||
oClasses = struct.unpack((">%dH" % (self.numClass+1)), data[4:6+2*self.numClass])
|
oClasses = struct.unpack((">%dH" % (self.numClass+1)),
|
||||||
|
data[4:6+2*self.numClass])
|
||||||
for s,e in zip(oClasses[:self.numLinear], oClasses[1:self.numLinear+1]):
|
for s,e in zip(oClasses[:self.numLinear], oClasses[1:self.numLinear+1]):
|
||||||
self.linear.append(map(ttFont.getGlyphName, struct.unpack((">%dH" % ((e-s)/2)), data[s:e])))
|
self.linear.append(map(ttFont.getGlyphName,
|
||||||
for s,e in zip(oClasses[self.numLinear:self.numClass], oClasses[self.numLinear+1:self.numClass+1]):
|
struct.unpack((">%dH" % ((e-s)/2)), data[s:e])))
|
||||||
|
for s,e in zip(oClasses[self.numLinear:self.numClass],
|
||||||
|
oClasses[self.numLinear+1:self.numClass+1]):
|
||||||
nonLinids = [struct.unpack(">HH", data[x:x+4]) for x in range(s+8, e, 4)]
|
nonLinids = [struct.unpack(">HH", data[x:x+4]) for x in range(s+8, e, 4)]
|
||||||
nonLin = dict([(ttFont.getGlyphName(x[0]), x[1]) for x in nonLinids])
|
nonLin = dict([(ttFont.getGlyphName(x[0]), x[1]) for x in nonLinids])
|
||||||
self.nonLinear.append(nonLin)
|
self.nonLinear.append(nonLin)
|
||||||
@ -669,16 +677,19 @@ class Pass(object):
|
|||||||
data = data[2*oRuleMap[-1]:]
|
data = data[2*oRuleMap[-1]:]
|
||||||
(self.minRulePreContext, self.maxRulePreContext) = struct.unpack('BB', data[:2])
|
(self.minRulePreContext, self.maxRulePreContext) = struct.unpack('BB', data[:2])
|
||||||
numStartStates = self.maxRulePreContext - self.minRulePreContext + 1
|
numStartStates = self.maxRulePreContext - self.minRulePreContext + 1
|
||||||
self.startStates = struct.unpack((">%dH" % numStartStates), data[2:2 + numStartStates * 2])
|
self.startStates = struct.unpack((">%dH" % numStartStates),
|
||||||
|
data[2:2 + numStartStates * 2])
|
||||||
data = data[2+numStartStates*2:]
|
data = data[2+numStartStates*2:]
|
||||||
self.ruleSortKeys = struct.unpack((">%dH" % self.numRules), data[:2 * self.numRules])
|
self.ruleSortKeys = struct.unpack((">%dH" % self.numRules), data[:2 * self.numRules])
|
||||||
data = data[2*self.numRules:]
|
data = data[2*self.numRules:]
|
||||||
self.rulePreContexts = struct.unpack(("%dB" % self.numRules), data[:self.numRules])
|
self.rulePreContexts = struct.unpack(("%dB" % self.numRules), data[:self.numRules])
|
||||||
data = data[self.numRules:]
|
data = data[self.numRules:]
|
||||||
(self.collisionThreshold, pConstraint) = struct.unpack(">BH", data[:3])
|
(self.collisionThreshold, pConstraint) = struct.unpack(">BH", data[:3])
|
||||||
oConstraints = list(struct.unpack((">%dH" % (self.numRules + 1)), data[3:5 + self.numRules * 2]))
|
oConstraints = list(struct.unpack((">%dH" % (self.numRules + 1)),
|
||||||
|
data[3:5 + self.numRules * 2]))
|
||||||
data = data[5 + self.numRules * 2:]
|
data = data[5 + self.numRules * 2:]
|
||||||
oActions = list(struct.unpack((">%dH" % (self.numRules + 1)), data[:2 + self.numRules * 2]))
|
oActions = list(struct.unpack((">%dH" % (self.numRules + 1)),
|
||||||
|
data[:2 + self.numRules * 2]))
|
||||||
data = data[2 * self.numRules + 2:]
|
data = data[2 * self.numRules + 2:]
|
||||||
for i in range(self.numTransitional):
|
for i in range(self.numTransitional):
|
||||||
a = array("H", data[i*self.numColumns*2:(i+1)*self.numColumns*2])
|
a = array("H", data[i*self.numColumns*2:(i+1)*self.numColumns*2])
|
||||||
@ -718,11 +729,11 @@ class Pass(object):
|
|||||||
if e[1]:
|
if e[1]:
|
||||||
passRanges.append((e[0], e[0]+e[1]-1, e[2][0]))
|
passRanges.append((e[0], e[0]+e[1]-1, e[2][0]))
|
||||||
self.numRules = len(self.actions)
|
self.numRules = len(self.actions)
|
||||||
self.fsmOffset = sstruct.calcsize(Silf_pass_format) + 8 + len(passRanges) * 6 \
|
self.fsmOffset = (sstruct.calcsize(Silf_pass_format) + 8 + len(passRanges) * 6
|
||||||
+ len(oRuleMap) * 2 + 2 * oRuleMap[-1] + 2 \
|
+ len(oRuleMap) * 2 + 2 * oRuleMap[-1] + 2
|
||||||
+ 2 * len(self.startStates) \
|
+ 2 * len(self.startStates) + 3 * self.numRules + 3
|
||||||
+ 3 * self.numRules + 3 + 4 * self.numRules + 4
|
+ 4 * self.numRules + 4)
|
||||||
self.pcCode = self.fsmOffset + 2 * self.numTransitional * self.numColumns + 1 + base
|
self.pcCode = self.fsmOffset + 2*self.numTransitional*self.numColumns + 1 + base
|
||||||
self.rcCode = self.pcCode + len(self.passConstraints)
|
self.rcCode = self.pcCode + len(self.passConstraints)
|
||||||
self.aCode = self.rcCode + len(constraintCode)
|
self.aCode = self.rcCode + len(constraintCode)
|
||||||
self.oDebug = 0
|
self.oDebug = 0
|
||||||
@ -740,27 +751,31 @@ class Pass(object):
|
|||||||
data += struct.pack(">BH", self.collisionThreshold, len(self.passConstraints))
|
data += struct.pack(">BH", self.collisionThreshold, len(self.passConstraints))
|
||||||
data += struct.pack((">%dH" % (self.numRules+1)), *oConstraints)
|
data += struct.pack((">%dH" % (self.numRules+1)), *oConstraints)
|
||||||
data += struct.pack((">%dH" % (self.numRules+1)), *oActions)
|
data += struct.pack((">%dH" % (self.numRules+1)), *oActions)
|
||||||
return data + "".join(transes) + struct.pack("B", 0) + self.passConstraints + constraintCode + "".join(self.actions)
|
return data + "".join(transes) + struct.pack("B", 0) + \
|
||||||
|
self.passConstraints + constraintCode + "".join(self.actions)
|
||||||
|
|
||||||
def toXML(self, writer, ttFont, version=2.0):
|
def toXML(self, writer, ttFont, version=2.0):
|
||||||
writesimple('info', self, writer, *pass_attrs_info)
|
writesimple('info', self, writer, *pass_attrs_info)
|
||||||
writesimple('fsminfo', self, writer, *pass_attrs_fsm)
|
writesimple('fsminfo', self, writer, *pass_attrs_fsm)
|
||||||
writer.begintag('colmap')
|
writer.begintag('colmap')
|
||||||
writer.newline()
|
writer.newline()
|
||||||
wrapline(writer, ["{}={}".format(*x) for x in sorted(self.colMap.items(), key=lambda x:ttFont.getGlyphID(x[0]))])
|
wrapline(writer, ["{}={}".format(*x) for x in sorted(self.colMap.items(),
|
||||||
|
key=lambda x:ttFont.getGlyphID(x[0]))])
|
||||||
writer.endtag('colmap')
|
writer.endtag('colmap')
|
||||||
writer.newline()
|
writer.newline()
|
||||||
writer.begintag('staterulemap')
|
writer.begintag('staterulemap')
|
||||||
writer.newline()
|
writer.newline()
|
||||||
for i, r in enumerate(self.rules):
|
for i, r in enumerate(self.rules):
|
||||||
writer.simpletag('state', number = self.numRows - self.numSuccess + i, rules = " ".join(map(str, r)))
|
writer.simpletag('state', number = self.numRows - self.numSuccess + i,
|
||||||
|
rules = " ".join(map(str, r)))
|
||||||
writer.newline()
|
writer.newline()
|
||||||
writer.endtag('staterulemap')
|
writer.endtag('staterulemap')
|
||||||
writer.newline()
|
writer.newline()
|
||||||
writer.begintag('rules')
|
writer.begintag('rules')
|
||||||
writer.newline()
|
writer.newline()
|
||||||
for i in range(self.numRules):
|
for i in range(self.numRules):
|
||||||
writer.begintag('rule', index=i, precontext=self.rulePreContexts[i], sortkey=self.ruleSortKeys[i])
|
writer.begintag('rule', index=i, precontext=self.rulePreContexts[i],
|
||||||
|
sortkey=self.ruleSortKeys[i])
|
||||||
writer.newline()
|
writer.newline()
|
||||||
if len(self.ruleConstraints[i]):
|
if len(self.ruleConstraints[i]):
|
||||||
writecode('constraint', writer, self.ruleConstraints[i])
|
writecode('constraint', writer, self.ruleConstraints[i])
|
||||||
|
@ -24,7 +24,8 @@ class table_S__i_l_l(DefaultTable.DefaultTable):
|
|||||||
maxsetting = 0
|
maxsetting = 0
|
||||||
langinfo = []
|
langinfo = []
|
||||||
for i in range(numLangs):
|
for i in range(numLangs):
|
||||||
(langcode, numSettings, offset) = struct.unpack(">4sHH", data[i * 8:(i+1) * 8])
|
(langcode, numSettings, offset) = struct.unpack(">4sHH",
|
||||||
|
data[i * 8:(i+1) * 8])
|
||||||
offset = int(offset / 8) - (numLangs + 1)
|
offset = int(offset / 8) - (numLangs + 1)
|
||||||
langinfo.append((langcode, numsettings, offset))
|
langinfo.append((langcode, numsettings, offset))
|
||||||
maxsetting = max(maxsetting, offset + numsettings)
|
maxsetting = max(maxsetting, offset + numsettings)
|
||||||
@ -48,7 +49,8 @@ class table_S__i_l_l(DefaultTable.DefaultTable):
|
|||||||
for fid, val in inf:
|
for fid, val in inf:
|
||||||
fdat += struct.pack(">LHH", fid, val, 0)
|
fdat += struct.pack(">LHH", fid, val, 0)
|
||||||
offset += len(inf)
|
offset += len(inf)
|
||||||
return sstruct.pack(Sill_hdr, self) + grUtils.bininfo(len(self.langs)) + ldat + fdat
|
return sstruct.pack(Sill_hdr, self) + grUtils.bininfo(len(self.langs)) + \
|
||||||
|
ldat + fdat
|
||||||
|
|
||||||
def toXML(self, writer, ttFont):
|
def toXML(self, writer, ttFont):
|
||||||
writer.simpletag('version', version=self.version)
|
writer.simpletag('version', version=self.version)
|
||||||
@ -72,4 +74,5 @@ class table_S__i_l_l(DefaultTable.DefaultTable):
|
|||||||
if not isinstance(element, tuple): continue
|
if not isinstance(element, tuple): continue
|
||||||
tag, a, subcontent = element
|
tag, a, subcontent = element
|
||||||
if tag == 'feature':
|
if tag == 'feature':
|
||||||
self.langs[c].append((grUtils.tag2num(attrs['fid']), int(safeEval(attrs['val']))))
|
self.langs[c].append((grUtils.tag2num(attrs['fid']),
|
||||||
|
int(safeEval(attrs['val']))))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user