OLD | NEW |
(Empty) | |
| 1 import itertools |
| 2 |
| 3 from _init_environment import SetHostMTurkConnection |
| 4 from _init_environment import config_environment |
| 5 |
| 6 def description_filter(substring): |
| 7 return lambda hit: substring in hit.Title |
| 8 |
| 9 def disable_hit(hit): |
| 10 return conn.disable_hit(hit.HITId) |
| 11 |
| 12 def dispose_hit(hit): |
| 13 # assignments must be first approved or rejected |
| 14 for assignment in conn.get_assignments(hit.HITId): |
| 15 if assignment.AssignmentStatus == 'Submitted': |
| 16 conn.approve_assignment(assignment.AssignmentId) |
| 17 return conn.dispose_hit(hit.HITId) |
| 18 |
| 19 def cleanup(): |
| 20 """Remove any boto test related HIT's""" |
| 21 config_environment() |
| 22 |
| 23 global conn |
| 24 |
| 25 conn = SetHostMTurkConnection() |
| 26 |
| 27 |
| 28 is_boto = description_filter('Boto') |
| 29 print 'getting hits...' |
| 30 all_hits = list(conn.get_all_hits()) |
| 31 is_reviewable = lambda hit: hit.HITStatus == 'Reviewable' |
| 32 is_not_reviewable = lambda hit: not is_reviewable(hit) |
| 33 hits_to_process = filter(is_boto, all_hits) |
| 34 hits_to_disable = filter(is_not_reviewable, hits_to_process) |
| 35 hits_to_dispose = filter(is_reviewable, hits_to_process) |
| 36 print 'disabling/disposing %d/%d hits' % (len(hits_to_disable), len(hits
_to_dispose)) |
| 37 map(disable_hit, hits_to_disable) |
| 38 map(dispose_hit, hits_to_dispose) |
| 39 |
| 40 total_hits = len(all_hits) |
| 41 hits_processed = len(hits_to_process) |
| 42 skipped = total_hits - hits_processed |
| 43 fmt = 'Processed: %(total_hits)d HITs, disabled/disposed: %(hits_process
ed)d, skipped: %(skipped)d' |
| 44 print fmt % vars() |
| 45 |
| 46 if __name__ == '__main__': |
| 47 cleanup() |
OLD | NEW |