aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/ttLib/tables/S__i_l_l.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/ttLib/tables/S__i_l_l.py')
-rw-r--r--Lib/fontTools/ttLib/tables/S__i_l_l.py57
1 files changed, 32 insertions, 25 deletions
diff --git a/Lib/fontTools/ttLib/tables/S__i_l_l.py b/Lib/fontTools/ttLib/tables/S__i_l_l.py
index 5ab9ee34..12b0b8f6 100644
--- a/Lib/fontTools/ttLib/tables/S__i_l_l.py
+++ b/Lib/fontTools/ttLib/tables/S__i_l_l.py
@@ -5,13 +5,13 @@ from . import DefaultTable
from . import grUtils
import struct
-Sill_hdr = '''
+Sill_hdr = """
>
version: 16.16F
-'''
+"""
-class table_S__i_l_l(DefaultTable.DefaultTable):
+class table_S__i_l_l(DefaultTable.DefaultTable):
def __init__(self, tag=None):
DefaultTable.DefaultTable.__init__(self, tag)
self.langs = {}
@@ -19,26 +19,27 @@ class table_S__i_l_l(DefaultTable.DefaultTable):
def decompile(self, data, ttFont):
(_, data) = sstruct.unpack2(Sill_hdr, data, self)
self.version = float(floatToFixedToStr(self.version, precisionBits=16))
- numLangs, = struct.unpack('>H', data[:2])
+ (numLangs,) = struct.unpack(">H", data[:2])
data = data[8:]
maxsetting = 0
langinfo = []
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)
- langcode = langcode.replace(b'\000', b'')
+ langcode = langcode.replace(b"\000", b"")
langinfo.append((langcode.decode("utf-8"), numsettings, offset))
maxsetting = max(maxsetting, offset + numsettings)
- data = data[numLangs * 8:]
+ data = data[numLangs * 8 :]
finfo = []
for i in range(maxsetting):
- (fid, val, _) = struct.unpack(">LHH", data[i * 8:(i+1) * 8])
+ (fid, val, _) = struct.unpack(">LHH", data[i * 8 : (i + 1) * 8])
finfo.append((fid, val))
self.langs = {}
for c, n, o in langinfo:
self.langs[c] = []
- for i in range(o, o+n):
+ for i in range(o, o + n):
self.langs[c].append(finfo[i])
def compile(self, ttFont):
@@ -46,35 +47,41 @@ class table_S__i_l_l(DefaultTable.DefaultTable):
fdat = b""
offset = len(self.langs)
for c, inf in sorted(self.langs.items()):
- ldat += struct.pack(">4sHH", c.encode('utf8'), len(inf), 8 * offset + 20)
+ ldat += struct.pack(">4sHH", c.encode("utf8"), len(inf), 8 * offset + 20)
for fid, val in inf:
fdat += struct.pack(">LHH", fid, val, 0)
offset += len(inf)
ldat += struct.pack(">LHH", 0x80808080, 0, 8 * offset + 20)
- 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):
- writer.simpletag('version', version=self.version)
+ writer.simpletag("version", version=self.version)
writer.newline()
for c, inf in sorted(self.langs.items()):
- writer.begintag('lang', name=c)
+ writer.begintag("lang", name=c)
writer.newline()
for fid, val in inf:
- writer.simpletag('feature', fid=grUtils.num2tag(fid), val=val)
+ writer.simpletag("feature", fid=grUtils.num2tag(fid), val=val)
writer.newline()
- writer.endtag('lang')
+ writer.endtag("lang")
writer.newline()
def fromXML(self, name, attrs, content, ttFont):
- if name == 'version':
- self.version = float(safeEval(attrs['version']))
- elif name == 'lang':
- c = attrs['name']
+ if name == "version":
+ self.version = float(safeEval(attrs["version"]))
+ elif name == "lang":
+ c = attrs["name"]
self.langs[c] = []
for element in content:
- if not isinstance(element, tuple): continue
+ if not isinstance(element, tuple):
+ continue
tag, a, subcontent = element
- if tag == 'feature':
- self.langs[c].append((grUtils.tag2num(a['fid']),
- int(safeEval(a['val']))))
+ if tag == "feature":
+ self.langs[c].append(
+ (grUtils.tag2num(a["fid"]), int(safeEval(a["val"])))
+ )