43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from fontTools.misc import sstruct
|
|
from fontTools.misc.textTools import safeEval
|
|
from fontTools.misc.timeTools import timestampFromString, timestampToString
|
|
from . import DefaultTable
|
|
|
|
FFTMFormat = """
|
|
> # big endian
|
|
version: I
|
|
FFTimeStamp: Q
|
|
sourceCreated: Q
|
|
sourceModified: Q
|
|
"""
|
|
|
|
|
|
class table_F_F_T_M_(DefaultTable.DefaultTable):
|
|
def decompile(self, data, ttFont):
|
|
dummy, rest = sstruct.unpack2(FFTMFormat, data, self)
|
|
|
|
def compile(self, ttFont):
|
|
data = sstruct.pack(FFTMFormat, self)
|
|
return data
|
|
|
|
def toXML(self, writer, ttFont):
|
|
writer.comment(
|
|
"FontForge's timestamp, font source creation and modification dates"
|
|
)
|
|
writer.newline()
|
|
formatstring, names, fixes = sstruct.getformat(FFTMFormat)
|
|
for name in names:
|
|
value = getattr(self, name)
|
|
if name in ("FFTimeStamp", "sourceCreated", "sourceModified"):
|
|
value = timestampToString(value)
|
|
writer.simpletag(name, value=value)
|
|
writer.newline()
|
|
|
|
def fromXML(self, name, attrs, content, ttFont):
|
|
value = attrs["value"]
|
|
if name in ("FFTimeStamp", "sourceCreated", "sourceModified"):
|
|
value = timestampFromString(value)
|
|
else:
|
|
value = safeEval(value)
|
|
setattr(self, name, value)
|