Skip to content
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add more specific __repr__
  • Loading branch information
schriftgestalt authored and madig committed Oct 8, 2025
commit aea6f7aa5c3b79cec7ef0f857c987b4a1e34cbb2
21 changes: 21 additions & 0 deletions Lib/fontTools/ttLib/tables/otConverters.py
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,8 @@ def write(self, writer, font, tableDict, value, repeatIndex=None):
assert writer.items[lengthIndex] == b"\xde\xad\xbe\xef"[: conv.staticSize]
writer.items[lengthIndex] = lengthWriter.getAllData()

def __repr__(self):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recomment to make a separate PR for changes other than type annotations.

return "StructWithLength of " + repr(self.tableClass)

class Table(Struct):
staticSize = 2
Expand Down Expand Up @@ -725,6 +727,8 @@ def write(self, writer, font, tableDict, value, repeatIndex=None):
writer.writeSubTable(subWriter, offsetSize=self.staticSize)
value.compile(subWriter, font)

def __repr__(self):
return "Table of " + repr(self.tableClass)

class LTable(Table):
staticSize = 4
Expand All @@ -735,6 +739,9 @@ def readOffset(self, reader):
def writeNullOffset(self, writer):
writer.writeULong(0)

def __repr__(self):
return "LTable of " + repr(self.tableClass)


# Table pointed to by a 24-bit, 3-byte long offset
class Table24(Table):
Expand All @@ -746,6 +753,8 @@ def readOffset(self, reader):
def writeNullOffset(self, writer):
writer.writeUInt24(0)

def __repr__(self):
return "Table24 of " + repr(self.tableClass)

# TODO Clean / merge the SubTable and SubStruct

Expand All @@ -758,6 +767,9 @@ def getConverter(self, tableType, lookupType):
def xmlWrite(self, xmlWriter, font, value, name, attrs):
super(SubStruct, self).xmlWrite(xmlWriter, font, value, None, attrs)

def __repr__(self):
return "SubStruct of " + repr(self.tableClass)


class SubTable(Table):
def getConverter(self, tableType, lookupType):
Expand All @@ -767,18 +779,27 @@ def getConverter(self, tableType, lookupType):
def xmlWrite(self, xmlWriter, font, value, name, attrs):
super(SubTable, self).xmlWrite(xmlWriter, font, value, None, attrs)

def __repr__(self):
return "SubTable of " + repr(self.tableClass)


class ExtSubTable(LTable, SubTable):
def write(self, writer, font, tableDict, value, repeatIndex=None):
writer.Extension = True # actually, mere presence of the field flags it as an Ext Subtable writer.
Table.write(self, writer, font, tableDict, value, repeatIndex)

def __repr__(self):
return "ExtSubTable of " + repr(self.tableClass)


class FeatureParams(Table):
def getConverter(self, featureTag):
tableClass = self.featureParamTypes.get(featureTag, self.defaultFeatureParams)
return self.__class__(self.name, self.repeat, self.aux, tableClass)

def __repr__(self):
return "FeatureParams of " + repr(self.tableClass)


class ValueFormat(IntValue):
staticSize = 2
Expand Down
Loading