On 12/30/05, Michael Schneider <[EMAIL PROTECTED]> wrote:
> Sorry Guys,
>
> I was dozing, here is simplier code
>
> Thanks
> Mike

======= In the controller =======
from itertools import *
from turbogears import view
def take(n, iterable, pad=''):
    while(iterable):
        yield list(islice(chain(iterable, repeat(pad)), n))

#if you want take in std. not required
def addToStdVars(std):
    std['take'] = take
view.variableProviders.append(addToStdVars)

#### in controller
@turbogears.expose(template='foo')
def Chunky(self):
    return dict(
        ...
        ...
        chunkedList = take(3,iter(alist))

====== in the view ======

... in for loop
${chunkedList.next()}

<!-- OR! -->
<?python chunkList2 = std.take(3,iter(alist))
... in for loop
${chunkList2.next()}


> -----------------------------------------------------------
>
> from itertools import *
>
> def forever(obj):
>     while 1:
>         yield obj
>
> def take(n, iterable, pad=''):
>     return list(islice(chain(iterable, forever(pad)), n))
>
> l = [1, 2, 3, 4, 5, 6, 7, 8 ]
> my_iter = iter(l)
>
> while(my_iter):
>     print take(3, my_iter, '')
>
>

Reply via email to