Skip to content

Instantly share code, notes, and snippets.

@benwilber
Created June 20, 2013 00:17
Show Gist options
  • Save benwilber/5819298 to your computer and use it in GitHub Desktop.
Save benwilber/5819298 to your computer and use it in GitHub Desktop.
use generate as simple pager
import cPickle as pickle
class Pager(object):
def __init__(self, sequence, start_index=0):
self.sequence = sequence
self.start_index = start_index
def __iter__(self):
end_index = len(self.sequence)
while self.start_index < end_index:
self.start_index += 1
yield self.sequence[self.start_index]
def __getstate__(self):
return self.sequence, self.start_index
def __setstate__(self, state):
self.sequence, self.start_index = state
def main():
pager = Pager(range(100))
iter = pager.__iter__()
print next(iter)
pickled_iter = pickle.dumps(pager)
pager = pickle.loads(pickled_iter)
iter = pager.__iter__()
print next(iter)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment