44import json
55
66from ..hubstorage import ValueTooLarge as _ValueTooLarge
7+ from .utils import update_kwargs
78from .exceptions import ValueTooLarge
89
910
@@ -61,13 +62,14 @@ def write(self, item):
6162 except _ValueTooLarge as exc :
6263 raise ValueTooLarge (str (exc ))
6364
64- def iter (self , _key = None , ** params ):
65+ def iter (self , _key = None , count = None , ** params ):
6566 """Iterate over elements in collection.
6667
68+ :param count: limit amount of elements.
6769 :return: a generator object over a list of element dictionaries.
6870 :rtype: :class:`types.GeneratorType[dict]`
6971 """
70- # TODO describe allowable params
72+ update_kwargs ( params or {}, count = count )
7173 params = self ._modify_iter_params (params )
7274 return self ._origin .list (_key , ** params )
7375
@@ -90,35 +92,40 @@ def close(self, block=True):
9092
9193class _DownloadableProxyMixin (object ):
9294
93- def iter (self , _path = None , requests_params = None , ** apiparams ):
95+ def iter (self , _path = None , count = None , requests_params = None , ** apiparams ):
9496 """A general method to iterate through elements.
9597
98+ :param count: limit amount of elements.
9699 :return: an iterator over elements list.
97100 :rtype: :class:`collections.Iterable`
98101 """
99- # TODO describe allowable params
102+ update_kwargs ( apiparams , count = count )
100103 apiparams = self ._modify_iter_params (apiparams )
101104 return self ._origin .iter_values (_path , requests_params , ** apiparams )
102105
103- def iter_raw_json (self , _path = None , requests_params = None , ** apiparams ):
106+ def iter_raw_json (self , _path = None , count = None , requests_params = None ,
107+ ** apiparams ):
104108 """A method to iterate through raw json-packed elements.
105109 Can be convenient if data is needed in raw json format.
106110
111+ :param count: limit amount of elements.
107112 :return: an iterator over elements list packed with json.
108113 :rtype: :class:`collections.Iterable[str]`
109114 """
110- # TODO describe allowable params
115+ update_kwargs ( apiparams , count = count )
111116 apiparams = self ._modify_iter_params (apiparams )
112117 return self ._origin .iter_json (_path , requests_params , ** apiparams )
113118
114- def iter_raw_msgpack (self , _path = None , requests_params = None , ** apiparams ):
119+ def iter_raw_msgpack (self , _path = None , count = None , requests_params = None ,
120+ ** apiparams ):
115121 """A method to iterate through raw msgpack-ed elements.
116122 Can be convenient if data is needed in same msgpack format.
117123
124+ :param count: limit amount of elements.
118125 :return: an iterator over elements list packed with msgpack.
119126 :rtype: :class:`collections.Iterable[bytes]`
120127 """
121- # TODO describe allowable params
128+ update_kwargs ( apiparams , count = count )
122129 apiparams = self ._modify_iter_params (apiparams )
123130 return self ._origin .iter_msgpack (_path , requests_params , ** apiparams )
124131
0 commit comments