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)
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)