def __iter__(self):
        marker = ''
        more = True
        url = self.bucket_url('', self.bucket)
        k = '{{http://s3.amazonaws.com/doc/2006-03-01/}}{0}'.format

        try:
            import lxml.etree as ET
        except __HOLE__:
            import xml.etree.ElementTree as ET

        while more:
            resp = self.adapter().get(url, auth=self.auth, params={
                'prefix': self.prefix,
                'marker': marker,
            })
            resp.raise_for_status()

            root = ET.fromstring(resp.content)
            for tag in root.findall(k('Contents')):
                p = {
                    'key': tag.find(k('Key')).text,
                    'size': int(tag.find(k('Size')).text),
                    'last_modified': datetime.datetime.strptime(
                        tag.find(k('LastModified')).text,
                        '%Y-%m-%dT%H:%M:%S.%fZ',
                    ),
                    'etag': tag.find(k('ETag')).text[1:-1],
                    'storage_class': tag.find(k('StorageClass')).text,
                }
                yield p

            more = root.find(k('IsTruncated')).text == 'true'
            if more:
                marker = p['key']
dataset/ETHPy150Open smore-inc/tinys3/tinys3/request_factory.py/ListRequest.__iter__