modular_sdk/models/pynamodb_extension/tenant_result_iterator.py (19 lines of code) (raw):

from pynamodb.pagination import ResultIterator class TenantResultIterator(ResultIterator): def __next__(self): if self._limit == 0: raise StopIteration if self._first_iteration: self._first_iteration = False self._get_next_page() while self._index == self._count: self._get_next_page() item = self._items[self._index] self._index += 1 if self._limit is not None: self._limit -= 1 # fix of the issue of right runtime # Tenant type (AwsTenant, etc.) resolving cloud = item.get('c').get('S') runtime_tenant_type = self._map_fn.get(cloud) if runtime_tenant_type.from_raw_data: item = runtime_tenant_type.from_raw_data(item) return item