blob: bda5167514eebbd554168ea700bd7da9e00a192f [file] [log] [blame]
import itertools
from _init_environment import SetHostMTurkConnection
from _init_environment import config_environment
def description_filter(substring):
return lambda hit: substring in hit.Title
def disable_hit(hit):
return conn.disable_hit(hit.HITId)
def dispose_hit(hit):
# assignments must be first approved or rejected
for assignment in conn.get_assignments(hit.HITId):
if assignment.AssignmentStatus == 'Submitted':
conn.approve_assignment(assignment.AssignmentId)
return conn.dispose_hit(hit.HITId)
def cleanup():
"""Remove any boto test related HIT's"""
config_environment()
global conn
conn = SetHostMTurkConnection()
is_boto = description_filter('Boto')
print 'getting hits...'
all_hits = list(conn.get_all_hits())
is_reviewable = lambda hit: hit.HITStatus == 'Reviewable'
is_not_reviewable = lambda hit: not is_reviewable(hit)
hits_to_process = filter(is_boto, all_hits)
hits_to_disable = filter(is_not_reviewable, hits_to_process)
hits_to_dispose = filter(is_reviewable, hits_to_process)
print 'disabling/disposing %d/%d hits' % (len(hits_to_disable), len(hits_to_dispose))
map(disable_hit, hits_to_disable)
map(dispose_hit, hits_to_dispose)
total_hits = len(all_hits)
hits_processed = len(hits_to_process)
skipped = total_hits - hits_processed
fmt = 'Processed: %(total_hits)d HITs, disabled/disposed: %(hits_processed)d, skipped: %(skipped)d'
print fmt % vars()
if __name__ == '__main__':
cleanup()