Ñò
ô³Kc @ sU d Z d g Z d e f d YZ d e f d YZ d e f d YZ d S( s
Helper for looping over sequences, particular in templates.
Often in a loop in a template it's handy to know what's next up,
previously up, if this is the first or last item in the sequence, etc.
These can be awkward to manage in a normal Python loop, but using the
looper you can get a better sense of the context. Use like::
>>> for loop, item in looper(['a', 'b', 'c']):
... print loop.number, item
... if not loop.last:
... print '---'
1 a
---
2 b
---
3 c
t looperc B s) e Z d Z d Z d Z d Z RS( sĴ
Helper for looping (particularly in templates)
Use this like::
for loop, item in looper(seq):
if loop.first:
...
c C s
| | _ d S( N( t seq( t selfR ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyt __init__" s c C s
t | i S( N( t looper_iterR ( R ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyt __iter__% s c C s d | i i | i f S( Ns <%s for %r>( t __class__t __name__R ( R ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyt __repr__( s ( R t
__module__t __doc__R R R ( ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyR s R c B s# e Z d Z d Z d Z RS( c C s t | | _ d | _ d S( Ni ( t listR t pos( R R ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyR . s c C s | S( N( ( R ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyR 2 s c C s[ | i t | i j o
t n t | i | i | i | i f } | i d 7_ | S( Ni ( R t lenR t
StopIterationt loop_pos( R t result( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyt next5 s
%( R R R R R ( ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyR , s R c B s
e Z d Z d Z d Z e e Z d Z e e Z d Z e e Z d Z e e Z d Z e e Z d Z
e e
Z
d Z e e Z d Z e e Z d
Z
e e
Z
d Z e e Z d d Z d d
Z d Z RS( c C s | | _ | | _ d S( N( R R ( R R R ( ( s5 /usr/lib/python2.6/site-packages/paste/util/looper.pyR > s c C s d | i t t f S( Ns