Skip to content

Commit bd0eae3

Browse files
committed
[MTurk CLI] Get all assignments, not just the first 100.
1 parent 80cbf5c commit bd0eae3

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

bin/mturk

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ default_nicknames_path = os.path.expanduser('~/.boto_mturkcli_hit_nicknames')
4040
nicknames = {}
4141
nickname_pool = set(string.ascii_lowercase)
4242

43+
get_assignments_page_size = 100
44+
4345
time_units = dict(
4446
s = 1,
4547
min = 60,
@@ -281,10 +283,20 @@ but apparently, it does.'''
281283
nicknames = {k: v for k, v in nicknames.items() if v != hit}
282284

283285
def list_assignments(hit, only_reviewable = False):
284-
assignments = map(digest_assignment, con.get_assignments(
285-
hit_id = hit,
286-
page_size = 100,
287-
status = 'Submitted' if only_reviewable else None))
286+
# Accumulate all relevant assignments, one page of results at
287+
# a time.
288+
assignments = []
289+
page = 1
290+
while True:
291+
rs = con.get_assignments(
292+
hit_id = hit,
293+
page_size = get_assignments_page_size,
294+
page_number = page,
295+
status = 'Submitted' if only_reviewable else None)
296+
assignments += map(digest_assignment, rs)
297+
if len(assignments) >= int(rs.TotalNumResults):
298+
break
299+
page += 1
288300
if interactive:
289301
print json.dumps(assignments, sort_keys = True, indent = 4)
290302
print ' '.join([a['AssignmentId'] for a in assignments])

0 commit comments

Comments
 (0)