50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
from . import DefaultTable
|
|
from . import ttProgram
|
|
|
|
|
|
class table__f_p_g_m(DefaultTable.DefaultTable):
|
|
def decompile(self, data, ttFont):
|
|
program = ttProgram.Program()
|
|
program.fromBytecode(data)
|
|
self.program = program
|
|
|
|
def compile(self, ttFont):
|
|
return self.program.getBytecode()
|
|
|
|
def toXML(self, writer, ttFont):
|
|
self.program.toXML(writer, ttFont)
|
|
|
|
def fromXML(self, name, attrs, content, ttFont):
|
|
program = ttProgram.Program()
|
|
program.fromXML(name, attrs, content, ttFont)
|
|
self.program = program
|
|
|
|
def __bool__(self):
|
|
"""
|
|
>>> fpgm = table__f_p_g_m()
|
|
>>> bool(fpgm)
|
|
False
|
|
>>> p = ttProgram.Program()
|
|
>>> fpgm.program = p
|
|
>>> bool(fpgm)
|
|
False
|
|
>>> bc = bytearray([0])
|
|
>>> p.fromBytecode(bc)
|
|
>>> bool(fpgm)
|
|
True
|
|
>>> p.bytecode.pop()
|
|
0
|
|
>>> bool(fpgm)
|
|
False
|
|
"""
|
|
return hasattr(self, "program") and bool(self.program)
|
|
|
|
__nonzero__ = __bool__
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
import doctest
|
|
|
|
sys.exit(doctest.testmod().failed)
|