def group_glyphs_by_signature(font, side, glyph_set = None, include_marks = False, signature_function = None, tolerance = anchor_tolerance): assert side == "l" or side == "r" if glyph_set == None: glyph_set = set(font) if signature_function == None: if side == "l": signature_function = left_signature else: signature_function = right_signature groups = {} for glyph_name in set(glyph_set) - set([".notdef"]): glyph = font[glyph_name] if not is_unused_glyph(glyph_name) and (include_marks or not glyphbuild.is_mark(glyph_name)): sig = signature_function(glyph, tolerance) if sig in groups: groups[sig].append(glyph_name) else: groups[sig] = [glyph_name] for sig in groups: groups[sig].sort() return groups
def group_glyphs_by_signature(font, side, glyph_set=None, include_marks=False, signature_function=None, tolerance=anchor_tolerance): assert side == "l" or side == "r" if glyph_set == None: glyph_set = set(font) if signature_function == None: if side == "l": signature_function = left_signature else: signature_function = right_signature groups = {} for glyph_name in set(glyph_set) - set([".notdef"]): glyph = font[glyph_name] if not is_unused_glyph(glyph_name) and ( include_marks or not glyphbuild.is_mark(glyph_name)): sig = signature_function(glyph, tolerance) if sig in groups: groups[sig].append(glyph_name) else: groups[sig] = [glyph_name] for sig in groups: groups[sig].sort() return groups
def space_selected_by_anchors(font): for glyph in font.selection.byGlyphs: if not glyphbuild.is_mark(glyph.glyphname): space_glyph_by_anchors(None, glyph)