Lines Matching refs:lst
61 def mergeObjects(self, out, lst, exclude=()):
63 assert all(keys == sorted(vars(v).keys()) for v in lst), \
64 (keys, [sorted(vars(v).keys()) for v in lst])
71 values = [getattr(table, key) for table in lst]
78 def mergeLists(self, out, lst):
79 assert allEqualTo(out, lst, len), (len(out), [len(v) for v in lst])
80 for i,(value,values) in enumerate(zip(out, zip(*lst))):
87 def mergeThings(self, out, lst):
89 assert allEqualTo(out, lst, type), (out, lst)
92 mergerFunc(self, out, lst)
94 self.mergeObjects(out, lst)
96 self.mergeLists(out, lst)
98 assert allEqualTo(out, lst), (out, lst)
117 def merge(merger, self, lst):
119 assert allNone(lst), (lst)
125 lst = [l.classDefs for l in lst]
128 allKeys.update(*[l.keys() for l in lst])
130 allValues = nonNone(l.get(k) for l in lst)
149 def _merge_GlyphOrders(font, lst, values_lst=None, default=None):
158 dict_sets = [set(l) for l in lst]
160 dict_sets = [{g:v for g,v in zip(l,vs)} for l,vs in zip(lst,values_lst)]
167 assert all(sorted(vs, key=sortKey) == vs for vs in lst)
176 assert len(lst) == len(values_lst)
220 def merge(merger, self, lst):
221 self.ValueFormat = valueFormat = reduce(int.__or__, [l.ValueFormat for l in lst], 0)
222 assert len(lst) == 1 or (valueFormat & ~0xF == 0), valueFormat
226 if all(v.Format == 1 for v in lst) and all(coverageGlyphs == v.Coverage.glyphs for v in lst):
228 merger.mergeThings(self.Value, [v.Value for v in lst])
234 lst = [_SinglePosUpgradeToFormat2(v) for v in lst]
238 [v.Coverage.glyphs for v in lst],
239 [v.Value for v in lst])
260 merger.mergeObjects(self, lst,
265 def merge(merger, self, lst):
268 [[v.SecondGlyph for v in vs.PairValueRecord] for vs in lst],
269 [vs.PairValueRecord for vs in lst])
300 def _PairPosFormat1_merge(self, lst, merger):
301 assert allEqual([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
304 merger.mergeObjects(self, lst,
315 [v.Coverage.glyphs for v in lst],
316 [v.PairSet for v in lst],
355 def _ClassDef_merge_classify(lst, allGlyphses=None):
360 allGlyphses = [None] * len(lst)
363 for classDef,allGlyphs in zip(lst, allGlyphses):
396 def _PairPosFormat2_align_matrices(self, lst, font, transparent=False):
398 matrices = [l.Class1Record for l in lst]
401 self.ClassDef1, classes = _ClassDef_merge_classify([l.ClassDef1 for l in lst], [l.Coverage.glyphs for l in lst])
405 for l,matrix in zip(lst, matrices):
440 self.ClassDef2, classes = _ClassDef_merge_classify([l.ClassDef2 for l in lst])
444 for l,matrix in zip(lst, matrices):
466 def _PairPosFormat2_merge(self, lst, merger):
467 assert allEqual([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
469 merger.mergeObjects(self, lst,
478 [v.Coverage.glyphs for v in lst])
488 for l,subtables in zip(lst,merger.lookup_subtables):
492 matrices = _PairPosFormat2_align_matrices(self, lst, merger.font)
498 def merge(merger, self, lst):
499 merger.valueFormat1 = self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0)
500 merger.valueFormat2 = self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0)
503 _PairPosFormat1_merge(self, lst, merger)
505 _PairPosFormat2_merge(self, lst, merger)
536 def _MarkBasePosFormat1_merge(self, lst, merger, Mark='Mark', Base='Base'):
537 self.ClassCount = max(l.ClassCount for l in lst)
541 [getattr(l, Mark+'Coverage').glyphs for l in lst],
542 [getattr(l, Mark+'Array').MarkRecord for l in lst])
547 [getattr(l, Base+'Coverage').glyphs for l in lst],
548 [getattr(getattr(l, Base+'Array'), Base+'Record') for l in lst])
620 def merge(merger, self, lst):
621 assert allEqualTo(self.Format, (l.Format for l in lst))
623 _MarkBasePosFormat1_merge(self, lst, merger)
628 def merge(merger, self, lst):
629 assert allEqualTo(self.Format, (l.Format for l in lst))
631 _MarkBasePosFormat1_merge(self, lst, merger, 'Mark1', 'Mark2')
636 def _PairSet_flatten(lst, font):
643 [[v.SecondGlyph for v in vs.PairValueRecord] for vs in lst],
644 [vs.PairValueRecord for vs in lst])
659 def _Lookup_PairPosFormat1_subtables_flatten(lst, font):
660 assert allEqual([l.ValueFormat2 == 0 for l in lst if l.PairSet]), "Report bug against fonttools."
666 self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0)
667 self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0)
671 [v.Coverage.glyphs for v in lst],
672 [v.PairSet for v in lst])
680 def _Lookup_PairPosFormat2_subtables_flatten(lst, font):
681 assert allEqual([l.ValueFormat2 == 0 for l in lst if l.Class1Record]), "Report bug against fonttools."
687 self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0)
688 self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0)
692 [v.Coverage.glyphs for v in lst])
695 matrices = _PairPosFormat2_align_matrices(self, lst, font, transparent=True)
709 def _Lookup_PairPos_subtables_canonicalize(lst, font):
710 """Merge multiple Format1 subtables at the beginning of lst,
713 lst = list(lst)
715 l = len(lst)
717 while i < l and lst[i].Format == 1:
719 lst[:i] = [_Lookup_PairPosFormat1_subtables_flatten(lst[:i], font)]
721 l = len(lst)
723 while i > 0 and lst[i - 1].Format == 2:
725 lst[i:] = [_Lookup_PairPosFormat2_subtables_flatten(lst[i:], font)]
727 return lst
730 def merge(merger, self, lst):
731 subtables = merger.lookup_subtables = [l.SubTable for l in lst]
734 for l,sts in list(zip(lst,subtables))+[(self,self.SubTable)]:
771 merger.mergeObjects(self, lst, exclude=['SubTable', 'SubTableCount'])
791 def merge(merger, self, lst):
793 Coords = [a.Coordinate for a in lst]
799 def merge(merger, self, lst):
801 XCoords = [a.XCoordinate for a in lst]
802 YCoords = [a.YCoordinate for a in lst]
809 def merge(merger, self, lst):
821 values = [getattr(a, name, 0) for a in lst]
849 def merge(merger, self, lst):
852 self.__dict__ = lst[0].__dict__.copy()
869 def merge(merger, self, lst):
872 self.__dict__ = lst[0].__dict__.copy()
897 def merge(merger, self, lst):
900 self.__dict__ = lst[0].__dict__.copy()
940 def mergeThings(self, out, lst):
942 if None in lst:
943 if allNone(lst):
944 assert out is None, (out, lst)
947 model, lst = masterModel.getSubModel(lst)
950 super(VariationMerger, self).mergeThings(out, lst)
963 def merge(merger, self, lst):
965 self.Coordinate, DeviceTable = buildVarDevTable(merger.store_builder, [a.Coordinate for a in lst])
971 def merge(merger, self, lst):
973 self.XCoordinate, XDeviceTable = buildVarDevTable(merger.store_builder, [a.XCoordinate for a in lst])
974 self.YCoordinate, YDeviceTable = buildVarDevTable(merger.store_builder, [a.YCoordinate for a in lst])
981 def merge(merger, self, lst):
989 [getattr(a, name, 0) for a in lst])