[varLib] Rename allSame() to allEqual()
Being same ("is") is not the same as being equal ("=="), even though the two are equal most of the time.
This commit is contained in:
parent
fa303ea07a
commit
5c1ca73123
@ -301,7 +301,7 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
|
||||
allCoords = [d[0] for d in allData]
|
||||
allControls = [d[1] for d in allData]
|
||||
control = allControls[0]
|
||||
if not models.allSame(allControls):
|
||||
if not models.allEqual(allControls):
|
||||
log.warning("glyph %s has incompatible masters; skipping" % glyph)
|
||||
continue
|
||||
del allControls
|
||||
@ -401,7 +401,7 @@ def _merge_TTHinting(font, masterModel, master_ttfs, tolerance=0.5):
|
||||
# There is no cvt table to make a cvar table from, we're done here.
|
||||
return
|
||||
|
||||
if not models.allSame(len(c) for c in nonNone_cvs):
|
||||
if not models.allEqual(len(c) for c in nonNone_cvs):
|
||||
log.warning("Masters have incompatible cvt tables, hinting is discarded.")
|
||||
_remove_TTHinting(font)
|
||||
return
|
||||
@ -432,7 +432,7 @@ def _add_HVAR(font, masterModel, master_ttfs, axisTags):
|
||||
hAdvances = [metrics[glyph][0] if glyph in metrics else None for metrics in metricses]
|
||||
hAdvanceDeltasAndSupports[glyph] = masterModel.getDeltasAndSupports(hAdvances)
|
||||
|
||||
singleModel = models.allSame(id(v[1]) for v in hAdvanceDeltasAndSupports.values())
|
||||
singleModel = models.allEqual(id(v[1]) for v in hAdvanceDeltasAndSupports.values())
|
||||
|
||||
directStore = None
|
||||
if singleModel:
|
||||
@ -514,7 +514,7 @@ def _add_MVAR(font, masterModel, master_ttfs, axisTags):
|
||||
store_builder.setModel(model)
|
||||
|
||||
master_values = [getattr(table, itemName) for table in tables]
|
||||
if models.allSame(master_values):
|
||||
if models.allEqual(master_values):
|
||||
base, varIdx = master_values[0], None
|
||||
else:
|
||||
base, varIdx = store_builder.storeMasters(master_values)
|
||||
|
@ -9,7 +9,7 @@ from fontTools.ttLib.tables import otTables as ot
|
||||
from fontTools.ttLib.tables import otBase as otBase
|
||||
from fontTools.ttLib.tables.DefaultTable import DefaultTable
|
||||
from fontTools.varLib import builder, models, varStore
|
||||
from fontTools.varLib.models import nonNone, allNone, allSame, allSameAs
|
||||
from fontTools.varLib.models import nonNone, allNone, allEqual, allEqualTo
|
||||
from fontTools.varLib.varStore import VarStoreInstancer
|
||||
from functools import reduce
|
||||
|
||||
@ -76,7 +76,7 @@ class Merger(object):
|
||||
raise
|
||||
|
||||
def mergeLists(self, out, lst):
|
||||
assert allSameAs(out, lst, len), (len(out), [len(v) for v in lst])
|
||||
assert allEqualTo(out, lst, len), (len(out), [len(v) for v in lst])
|
||||
for i,(value,values) in enumerate(zip(out, zip(*lst))):
|
||||
try:
|
||||
self.mergeThings(value, values)
|
||||
@ -86,7 +86,7 @@ class Merger(object):
|
||||
|
||||
def mergeThings(self, out, lst):
|
||||
try:
|
||||
assert allSameAs(out, lst, type), (out, lst)
|
||||
assert allEqualTo(out, lst, type), (out, lst)
|
||||
mergerFunc = self.mergersFor(out).get(None, None)
|
||||
if mergerFunc is not None:
|
||||
mergerFunc(self, out, lst)
|
||||
@ -95,7 +95,7 @@ class Merger(object):
|
||||
elif isinstance(out, list):
|
||||
self.mergeLists(out, lst)
|
||||
else:
|
||||
assert allSameAs(out, lst), (out, lst)
|
||||
assert allEqualTo(out, lst), (out, lst)
|
||||
except Exception as e:
|
||||
e.args = e.args + (type(out).__name__,)
|
||||
raise
|
||||
@ -124,7 +124,7 @@ def merge(merger, self, lst):
|
||||
allKeys.update(*[l.keys() for l in lst])
|
||||
for k in allKeys:
|
||||
allValues = nonNone(l.get(k) for l in lst)
|
||||
assert allSame(allValues), allValues
|
||||
assert allEqual(allValues), allValues
|
||||
if not allValues:
|
||||
self[k] = None
|
||||
else:
|
||||
@ -294,7 +294,7 @@ def merge(merger, self, lst):
|
||||
merger.mergeLists(self.PairValueRecord, padded)
|
||||
|
||||
def _PairPosFormat1_merge(self, lst, merger):
|
||||
assert allSame([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
|
||||
assert allEqual([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
|
||||
|
||||
# Merge everything else; makes sure Format is the same.
|
||||
merger.mergeObjects(self, lst,
|
||||
@ -452,7 +452,7 @@ def _PairPosFormat2_align_matrices(self, lst, font, transparent=False):
|
||||
return matrices
|
||||
|
||||
def _PairPosFormat2_merge(self, lst, merger):
|
||||
assert allSame([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
|
||||
assert allEqual([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
|
||||
|
||||
merger.mergeObjects(self, lst,
|
||||
exclude=('Coverage',
|
||||
@ -557,7 +557,7 @@ def _MarkBasePosFormat1_merge(self, lst, merger, Mark='Mark', Base='Base'):
|
||||
# failures in that case will probably signify mistakes in the
|
||||
# input masters.
|
||||
|
||||
assert allSame(allClasses), allClasses
|
||||
assert allEqual(allClasses), allClasses
|
||||
if not allClasses:
|
||||
rec = None
|
||||
else:
|
||||
@ -606,7 +606,7 @@ def _MarkBasePosFormat1_merge(self, lst, merger, Mark='Mark', Base='Base'):
|
||||
|
||||
@AligningMerger.merger(ot.MarkBasePos)
|
||||
def merge(merger, self, lst):
|
||||
assert allSameAs(self.Format, (l.Format for l in lst))
|
||||
assert allEqualTo(self.Format, (l.Format for l in lst))
|
||||
if self.Format == 1:
|
||||
_MarkBasePosFormat1_merge(self, lst, merger)
|
||||
else:
|
||||
@ -614,7 +614,7 @@ def merge(merger, self, lst):
|
||||
|
||||
@AligningMerger.merger(ot.MarkMarkPos)
|
||||
def merge(merger, self, lst):
|
||||
assert allSameAs(self.Format, (l.Format for l in lst))
|
||||
assert allEqualTo(self.Format, (l.Format for l in lst))
|
||||
if self.Format == 1:
|
||||
_MarkBasePosFormat1_merge(self, lst, merger, 'Mark1', 'Mark2')
|
||||
else:
|
||||
@ -645,7 +645,7 @@ def _PairSet_flatten(lst, font):
|
||||
return self
|
||||
|
||||
def _Lookup_PairPosFormat1_subtables_flatten(lst, font):
|
||||
assert allSame([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
|
||||
assert allEqual([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
|
||||
|
||||
self = ot.PairPos()
|
||||
self.Format = 1
|
||||
@ -666,7 +666,7 @@ def _Lookup_PairPosFormat1_subtables_flatten(lst, font):
|
||||
return self
|
||||
|
||||
def _Lookup_PairPosFormat2_subtables_flatten(lst, font):
|
||||
assert allSame([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
|
||||
assert allEqual([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
|
||||
|
||||
self = ot.PairPos()
|
||||
self.Format = 2
|
||||
@ -723,8 +723,8 @@ def merge(merger, self, lst):
|
||||
if not sts:
|
||||
continue
|
||||
if sts[0].__class__.__name__.startswith('Extension'):
|
||||
assert allSame([st.__class__ for st in sts])
|
||||
assert allSame([st.ExtensionLookupType for st in sts])
|
||||
assert allEqual([st.__class__ for st in sts])
|
||||
assert allEqual([st.ExtensionLookupType for st in sts])
|
||||
l.LookupType = sts[0].ExtensionLookupType
|
||||
new_sts = [st.ExtSubTable for st in sts]
|
||||
del sts[:]
|
||||
@ -960,7 +960,7 @@ class VariationMerger(AligningMerger):
|
||||
|
||||
|
||||
def buildVarDevTable(store_builder, master_values):
|
||||
if allSame(master_values):
|
||||
if allEqual(master_values):
|
||||
return master_values[0], None
|
||||
base, varIdx = store_builder.storeMasters(master_values)
|
||||
return base, builder.buildVarDevTable(varIdx)
|
||||
|
@ -2,7 +2,7 @@
|
||||
from __future__ import print_function, division, absolute_import
|
||||
from fontTools.misc.py23 import *
|
||||
|
||||
__all__ = ['nonNone', 'allNone', 'allSame', 'allSameAs', 'subList',
|
||||
__all__ = ['nonNone', 'allNone', 'allEqual', 'allEqualTo', 'subList',
|
||||
'normalizeValue', 'normalizeLocation',
|
||||
'supportScalar',
|
||||
'VariationModel']
|
||||
@ -14,19 +14,19 @@ def nonNone(lst):
|
||||
def allNone(lst):
|
||||
return all(l is None for l in lst)
|
||||
|
||||
def allSameAs(ref, lst, mapper=None):
|
||||
def allEqualTo(ref, lst, mapper=None):
|
||||
if mapper is None:
|
||||
return all(ref == item for item in lst)
|
||||
else:
|
||||
mapped = mapper(ref)
|
||||
return all(mapped == mapper(item) for item in lst)
|
||||
|
||||
def allSame(lst, mapper=None):
|
||||
def allEqual(lst, mapper=None):
|
||||
if not lst:
|
||||
return True
|
||||
it = iter(lst)
|
||||
first = next(it)
|
||||
return allSameAs(first, it, mapper=mapper)
|
||||
return allEqualTo(first, it, mapper=mapper)
|
||||
|
||||
def subList(truth, lst):
|
||||
assert len(truth) == len(lst)
|
||||
|
Loading…
x
Reference in New Issue
Block a user