view lol.py @ 12:2ddbf1893f3b draft default tip

Tweak session for Pycon lightning talk
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 29 Apr 2014 17:12:52 -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