diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 249c95e0b..8ad5818d6 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -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) diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py index 05992fb23..5c77660be 100644 --- a/Lib/fontTools/varLib/merger.py +++ b/Lib/fontTools/varLib/merger.py @@ -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) diff --git a/Lib/fontTools/varLib/models.py b/Lib/fontTools/varLib/models.py index b6a7ef119..45cd3b15d 100644 --- a/Lib/fontTools/varLib/models.py +++ b/Lib/fontTools/varLib/models.py @@ -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)