boto/boto3 — pull request #4 by danielgtaylor (2014-10-13 19:43:24+00:00)
Title: Implement resource collections

This change implements support for resource collections that mimic Django's
query set API so that things like this are possible:

>>> s3 = boto3.resource('s3')
>>> for bucket in s3.buckets.all():
... for obj in bucket.objects.limit(100):
... print(bucket.name, obj.key)

Implements the following for collections:

* Non-iterable collection manager (e.g. `s3.buckets`)
* Iterable `ResourceCollection` base class (e.g. `s3.buckets.all()`)
* Chainable resource collection API (via clones)
* Filtering via `.filter(Arg1=1, Arg2=2)`
* Control item count via `.filter(limit=20)` or `.limit(20)`
* Control page size via `.filter(page_size=100)` or `.page_size(100)`
* Exposing `all`, `filter`, `limit`, and `page_size` on the manager
* Updated documentation

Also adds tests for all the relevant features. Note that batch actions
are *not* included in this change.

cc @jamesls, @kyleknap, @garnaat