def paged_call(function, *args, **kwargs):
 marker_flag = kwargs.pop('marker_flag', 'NextMarker')
 marker_arg = kwargs.pop('marker_arg', 'Marker')
 while True:
  ret = function(*args, **kwargs)
  marker = ret.get(marker_flag)
  (yield ret)
  if (not marker):
   break
  kwargs[marker_arg] = marker

def paged_call ( function , * args , ** kwargs ) : marker_flag = kwargs . pop ( 'marker_flag' , 'NextMarker' ) marker_arg = kwargs . pop ( 'marker_arg' , 'Marker' ) while True : ret = function ( * args , ** kwargs ) marker = ret . get ( marker_flag ) ( yield ret ) if ( not marker ) : break kwargs [ marker_arg ] = marker
retrieve full set of values from a boto3 api call that may truncate its results .