Skip to content

Instantly share code, notes, and snippets.

@markpasc
Created March 9, 2012 18:02
Show Gist options
  • Save markpasc/2007787 to your computer and use it in GitHub Desktop.
Save markpasc/2007787 to your computer and use it in GitHub Desktop.
Pagination in the Recurly python client
import os
import recurly
from recurly import Account, PageError
recurly.API_KEY = os.environ['RECURLY_API_KEY']
def all_accounts():
accounts = Account.all()
while accounts:
for account in accounts:
yield account
try:
accounts = accounts.next_page()
print "----- new page -----"
except PageError:
# No more pages so quit the loop.
accounts = ()
for account in all_accounts():
print "Account: %s" % account.account_code
$ RECURLY_API_KEY=1274...54e3 python accounts.py
Account: transaction20120206160209
Account: sad-on-20120206160204
Account: subscribe-20120206160141-2
Account: subscribe20120206160141
Account: pages-20120206160122-7
Account: pages-20120206160122-6
Account: pages-20120206160122-5
Account: pages-20120206160122-4
Account: pages-20120206160122-3
Account: pages-20120206160122-2
Account: pages-20120206160122-1
Account: invoice20120206160119
Account: coupon-20120206160109-2
Account: coupon20120206160109
Account: charge20120206160107
Account: binfo-20120206160101-2
Account: binfo20120206160101
Account: 20120206160049
Account: test20120206160049
Account: 20120206160037
Account: test20120206160037
Account: 20120206155807
Account: test20120206155807
Account: 20120206155638
Account: test20120206155638
Account: 20120206145242
Account: test20120206145242
Account: transaction20120206145025
Account: sad-on-20120206145021
Account: subscribe-20120206145006-2
Account: subscribe20120206145006
Account: pages-20120206144948-7
Account: pages-20120206144948-6
Account: pages-20120206144948-5
Account: pages-20120206144948-4
Account: pages-20120206144948-3
Account: pages-20120206144948-2
Account: pages-20120206144948-1
Account: invoice20120206144945
Account: coupon-20120206144934-2
Account: coupon20120206144934
Account: charge20120206144932
Account: binfo-20120206144926-2
Account: binfo20120206144926
Account: test20120206144917
Account: transaction20120206144340
Account: sad-on-20120206144336
Account: subscribe-20120206144321-2
Account: subscribe20120206144321
Account: pages-20120206144303-7
----- new page -----
Account: pages-20120206144303-6
Account: pages-20120206144303-5
Account: pages-20120206144303-4
Account: pages-20120206144303-3
Account: pages-20120206144303-2
Account: pages-20120206144303-1
Account: invoice20120206144259
Account: coupon-20120206144249-2
Account: coupon20120206144249
Account: charge20120206144246
Account: binfo-20120206144241-2
Account: binfo20120206144241
Account: test20120206144233
Account: sad-on-20120206144202
Account: sad-on-20120206143803
Account: transaction20120206143700
Account: sad-on-20120206143657
Account: subscribe-20120206143642-2
Account: subscribe20120206143642
Account: pages-20120206143624-7
Account: pages-20120206143624-6
Account: pages-20120206143624-5
Account: pages-20120206143624-4
Account: pages-20120206143624-3
Account: pages-20120206143624-2
Account: pages-20120206143624-1
Account: invoice20120206143620
Account: coupon-20120206143609-2
Account: coupon20120206143609
Account: charge20120206143607
Account: binfo-20120206143601-2
Account: binfo20120206143601
Account: 20120206143551
Account: test20120206143551
Account: transaction20111220004728
Account: sad-on-20111220004723
Account: subscribe-20111220004708-2
Account: subscribe20111220004708
Account: pages-20111220004651-7
Account: pages-20111220004651-6
Account: pages-20111220004651-5
Account: pages-20111220004651-4
Account: pages-20111220004651-3
Account: pages-20111220004651-2
Account: pages-20111220004651-1
Account: invoice20111220004647
Account: coupon-20111220004636-2
Account: coupon20111220004636
Account: charge20111220004631
Account: binfo-20111220004625-2
----- new page -----
Account: binfo20111220004625
Account: test20111220004616
Account: transaction20111220002741
Account: sad-on-20111220002737
Account: subscribe-20111220002715-2
Account: subscribe20111220002715
Account: pages-20111220002657-7
Account: pages-20111220002657-6
Account: pages-20111220002657-5
Account: pages-20111220002657-4
Account: pages-20111220002657-3
Account: pages-20111220002657-2
Account: pages-20111220002657-1
Account: invoice20111220002654
Account: coupon-20111220002644-2
Account: coupon20111220002644
Account: charge20111220002642
Account: binfo-20111220002636-2
Account: binfo20111220002636
Account: test20111220002628
Account: subscribe-20111220000340-2
Account: subscribe20111220000340
Account: subscribe20111220000334
Account: subscribe20111220000124
Account: subscribe-20111219235933-2
Account: subscribe20111219235933
Account: subscribe20111219235127
Account: subscribe20111219234929
Account: subscribe20111219234912
Account: subscribe20111219234832
Account: subscribe-20111219234638-2
Account: subscribe20111219234638
Account: subscribe20111219234407
Account: subscribe20111219233700
Account: transaction20111209111612
Account: sad-on-20111209111608
Account: subscribe-20111209111555-2
Account: subscribe20111209111555
Account: pages-20111209111536-7
Account: pages-20111209111536-6
Account: pages-20111209111536-5
Account: pages-20111209111536-4
Account: pages-20111209111536-3
Account: pages-20111209111536-2
Account: pages-20111209111536-1
Account: invoice20111209111533
Account: coupon-20111209111523-2
Account: coupon20111209111523
Account: charge20111209111521
Account: binfo-20111209111516-2
----- new page -----
Account: binfo20111209111516
Account: test20111209111508
Account: transaction20111209110551
Account: sad-on-20111209110546
Account: subscribe-20111209110534-2
Account: subscribe20111209110534
Account: pages-20111209110516-7
Account: pages-20111209110516-6
Account: pages-20111209110516-5
Account: pages-20111209110516-4
Account: pages-20111209110516-3
Account: pages-20111209110516-2
Account: pages-20111209110516-1
Account: invoice20111209110513
Account: coupon-20111209110504-2
Account: coupon20111209110504
Account: charge20111209110501
Account: binfo-20111209110456-2
Account: binfo20111209110456
Account: test20111209110447
Account: transaction20111209103946
Account: sad-on-20111209103942
Account: subscribe-20111209103927-2
Account: subscribe20111209103927
Account: pages-20111209103909-7
Account: pages-20111209103909-6
Account: pages-20111209103909-5
Account: pages-20111209103909-4
Account: pages-20111209103909-3
Account: pages-20111209103909-2
Account: pages-20111209103909-1
Account: invoice20111209103905
Account: coupon-20111209103854-2
Account: coupon20111209103854
Account: charge20111209103851
Account: binfo-20111209103845-2
Account: binfo20111209103845
Account: test20111209103838
Account: transaction20111209103725
Account: sad-on-20111209103720
Account: subscribe-20111209103700-2
Account: subscribe20111209103700
Account: pages-20111209103642-7
Account: pages-20111209103642-6
Account: pages-20111209103642-5
Account: pages-20111209103642-4
Account: pages-20111209103642-3
Account: pages-20111209103642-2
Account: pages-20111209103642-1
Account: invoice20111209103638
----- new page -----
Account: coupon-20111209103627-2
Account: coupon20111209103627
Account: charge20111209103624
Account: binfo-20111209103618-2
Account: binfo20111209103618
Account: test20111209103610
Account: binfotest
Account: transaction20111027164551
Account: sad-on-20111027164547
Account: subscribe-20111027164535-2
Account: subscribe20111027164535
Account: pages-20111027164519-7
Account: pages-20111027164519-6
Account: pages-20111027164519-5
Account: pages-20111027164519-4
Account: pages-20111027164519-3
Account: pages-20111027164519-2
Account: pages-20111027164519-1
Account: invoice20111027164514
Account: coupon-20111027164455-2
Account: coupon20111027164455
Account: charge20111027164454
Account: binfo-20111027164443-2
Account: binfo20111027164443
Account: test20111027164433
Account: transaction20111026234641
Account: sad-on-20111026234637
Account: subscribe-20111026234627-2
Account: subscribe20111026234627
Account: pages-20111026234613-7
Account: pages-20111026234613-6
Account: pages-20111026234613-5
Account: pages-20111026234613-4
Account: pages-20111026234613-3
Account: pages-20111026234613-2
Account: pages-20111026234613-1
Account: invoice20111026234611
Account: coupon-20111026234559-2
Account: coupon20111026234559
Account: charge20111026234558
Account: binfo-20111026234554-2
Account: binfo20111026234554
Account: test20111026234549
Account: coupon-20111026234533-2
Account: coupon20111026234533
Account: coupon20111026234511
Account: coupon-20111026234412-2
Account: coupon20111026234412
Account: coupon-20111026234312-2
Account: coupon20111026234312
----- new page -----
Account: coupon-20111026130517-2
Account: coupon20111026130517
Account: coupon-20111026125421-2
Account: coupon20111026125421
Account: coupon20111026124747
Account: coupon20111026124544
Account: coupon20111026124531
Account: coupon20111026124206
Account: coupon20111026124140
Account: coupon20111026123743
Account: transaction20111026122133
Account: transaction20111026001519
Account: sad-on-20111026001516
Account: subscribe-20111026001506-2
Account: subscribe20111026001506
Account: pages-20111026001448-7
Account: pages-20111026001448-6
Account: pages-20111026001448-5
Account: pages-20111026001448-4
Account: pages-20111026001448-3
Account: pages-20111026001448-2
Account: pages-20111026001448-1
Account: invoice20111026001446
Account: charge20111026001443
Account: binfo-20111026001439-2
Account: binfo20111026001439
Account: test20111026001434
Account: sad-on-20111026001339
Account: sad-on-20111026001134
Account: sad-on-20111026000136
Account: sad-on-20111026000017
Account: transaction20111025233125
Account: subscribe-20111025233115-2
Account: subscribe20111025233115
Account: pages-20111025233059-7
Account: pages-20111025233059-6
Account: pages-20111025233059-5
Account: pages-20111025233059-4
Account: pages-20111025233059-3
Account: pages-20111025233059-2
Account: pages-20111025233059-1
Account: invoice20111025233057
Account: charge20111025233052
Account: binfo-20111025233048-2
Account: binfo20111025233048
Account: test20111025233041
Account: transaction20111025232456
Account: transaction20111025232410
Account: transaction20111025232359
Account: transaction20111025232314
----- new page -----
Account: transaction20111025231656
Account: transaction20111025231456
Account: subscribe-20111025231431-2
Account: subscribe20111025231431
Account: subscribe-20111025231318-2
Account: subscribe20111025231318
Account: transaction20111025231246
Account: transaction20111025225706
Account: transaction20111025225356
Account: subscribe-20111025161142-2
Account: subscribe20111025161142
Account: pages-20111025161126-7
Account: pages-20111025161126-6
Account: pages-20111025161126-5
Account: pages-20111025161126-4
Account: pages-20111025161126-3
Account: pages-20111025161126-2
Account: pages-20111025161126-1
Account: invoice20111025161124
Account: charge20111025161121
Account: binfo-20111025161117-2
Account: binfo20111025161117
Account: test20111025161113
Account: subscribe-20111025161051-2
Account: subscribe20111025161051
Account: subscribe20111025160830
Account: subscribe20111025160619
Account: subscribe20111025160520
Account: subscribe20111025160350
Account: subscribe20111025160307
Account: subscribe20111025160232
Account: pages-20111025160215-7
Account: pages-20111025160215-6
Account: pages-20111025160215-5
Account: pages-20111025160215-4
Account: pages-20111025160215-3
Account: pages-20111025160215-2
Account: pages-20111025160215-1
Account: invoice20111025160213
Account: charge20111025160210
Account: binfo-20111025160206-2
Account: binfo20111025160206
Account: test20111025160201
$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment