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, '')
>
>