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