123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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)
|