[name] add removeNames method to table__n_a_m_e
This commit is contained in:
parent
afdb967a28
commit
4e316cae57
@ -147,6 +147,31 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
|
||||
else:
|
||||
self.names.append(makeName(string, nameID, platformID, platEncID, langID))
|
||||
|
||||
def removeNames(self, nameID=None, platformID=None, platEncID=None, langID=None):
|
||||
"""Remove any name records identified by 'nameID', 'platformID', 'platEncID'
|
||||
or 'langID'.
|
||||
"""
|
||||
args = {
|
||||
argName: argValue
|
||||
for argName, argValue in (
|
||||
("nameID", nameID),
|
||||
("platformID", platformID),
|
||||
("platEncID", platEncID),
|
||||
("langID", langID),
|
||||
)
|
||||
if argValue is not None
|
||||
}
|
||||
if not args:
|
||||
# no arguments, nothing to do
|
||||
return
|
||||
self.names = [
|
||||
rec for rec in self.names
|
||||
if any(
|
||||
argValue != getattr(rec, argName)
|
||||
for argName, argValue in args.items()
|
||||
)
|
||||
]
|
||||
|
||||
def _findUnusedNameID(self, minNameID=256):
|
||||
"""Finds an unused name id.
|
||||
|
||||
|
0
Tests/otlLib/__init__.py
Normal file
0
Tests/otlLib/__init__.py
Normal file
@ -75,6 +75,39 @@ class NameTableTest(unittest.TestCase):
|
||||
with self.assertRaises(TypeError):
|
||||
table.addName(b"abc") # must be unicode string
|
||||
|
||||
def test_removeNames(self):
|
||||
table = table__n_a_m_e()
|
||||
table.setName("Regular", 2, 1, 0, 0)
|
||||
table.setName("Regular", 2, 3, 1, 0x409)
|
||||
table.removeNames(nameID=2)
|
||||
self.assertEqual(table.names, [])
|
||||
|
||||
table = table__n_a_m_e()
|
||||
table.setName("FamilyName", 1, 1, 0, 0)
|
||||
table.setName("Regular", 2, 1, 0, 0)
|
||||
table.setName("FamilyName", 1, 3, 1, 0x409)
|
||||
table.setName("Regular", 2, 3, 1, 0x409)
|
||||
table.removeNames(platformID=1)
|
||||
self.assertEqual(len(table.names), 2)
|
||||
|
||||
table = table__n_a_m_e()
|
||||
table.setName("FamilyName", 1, 1, 0, 0)
|
||||
table.setName("Regular", 2, 1, 0, 0)
|
||||
table.removeNames(nameID=1)
|
||||
self.assertEqual(len(table.names), 1)
|
||||
|
||||
table = table__n_a_m_e()
|
||||
table.setName("FamilyName", 1, 1, 0, 0)
|
||||
table.setName("Regular", 2, 1, 0, 0)
|
||||
table.removeNames(2, 1, 0, 0)
|
||||
self.assertEqual(len(table.names), 1)
|
||||
|
||||
table = table__n_a_m_e()
|
||||
table.setName("FamilyName", 1, 1, 0, 0)
|
||||
table.setName("Regular", 2, 1, 0, 0)
|
||||
table.removeNames()
|
||||
self.assertEqual(len(table.names), 2)
|
||||
|
||||
def test_addMultilingualName(self):
|
||||
# Microsoft Windows has language codes for “English” (en)
|
||||
# and for “Standard German as used in Switzerland” (de-CH).
|
||||
|
Loading…
x
Reference in New Issue
Block a user