All pastes #521305 Raw Edit

Untitled

public text v1 · immutable
#521305 ·published 2007-05-30 04:35 UTC
rendered paste body
p = re.compile("""^(?P[A-Z]{1,3})
                  (?P\\d{1,4})(\\ ?)
                  (\\.(?P\\d{1,3}))?
                  (?P\\ [A-Za-z0-9]{1,4}\\ )?
                  ([\\ \\.](?P[A-Z][0-9]{1,4}))
                  (\\ (?P[A-Za-z0-9]{0,4}))?
                  (\\.?(?P[A-Z][0-9]{1,4}))?
                  (\\ (?P\\w*)\\ ?)?
                  (\\ (?P\\w*)\\ ?)?
                  (\\ (?P\\w*)\\ ?)?""",
                  re.VERBOSE)


def ncmp(x,y):
        if x is None:
                return -1
        if y is None:
                return 1
        x = int(x)
        y = int(y)
        return cmp(x,y)

def sortfunc(x, y):
        xp = p.search(x)
        yp = p.search(y)
        parts = {'aclass':cmp,'nclass':ncmp,'dclass':ncmp,'date':cmp,
                 'c1':cmp,'c1d':cmp,'c2':cmp,'e8':cmp,'e9':cmp,'e10':cmp}
        for part in parts:
                cr = parts[part](xp.group(part),yp.group(part))
                if cr != 0:
                        return cr