def equal_author()

in crashclouseau/hgauthors.py [0:0]


def equal_author(a, b):
    """Try to guess if two authors are the same"""
    ea, ra, na = a
    eb, rb, nb = b
    if ea and eb:
        if ea == eb:
            # same email
            return True

    if (na and eb and eb.startswith(na)) or (nb and ea and ea.startswith(nb)):
        return True

    if ra and rb:
        if ra == rb:
            # same real name
            return True

        names_a = set(map(lambda s: rm_accents(s.lower()), ra.split(" ")))
        names_b = set(map(lambda s: rm_accents(s.lower()), rb.split(" ")))
        if names_a == names_b:
            return True

        if len(names_a & names_b) >= 2:
            return True

        cmp_name_email1(names_a, eb)
        cmp_name_email1(names_b, ea)

    return False