view lol.py @ 9:d90cb7004332 draft

Update prompt for revset talk
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Sat, 12 Apr 2014 14:44:53 -0400
parents 685cb4aa66f7
children
line wrap: on
line source

from mercurial import revset

def extsetup():
    revset.symbols.update({ 'lol': revset_lol })

def revset_lol(repo, subset, x):
    '''``lol()``
    Select changesets that have lolsy revision numbers
    '''
    args = revset.getargs(x, 0, 0, "lol takes no arguments")
    return lolsy(subset)

def lolsy(subset):
    lol = pi(max(subset))
    return [x for x in subset if x in lol]

def pi(n):
    lol = [2]
    for i in range(3, n+1):
        if all([i % p != 0 for p in [p for p in lol if p**2 <= n]]):
            lol.append(i)
    return lol