def standard_quals(debug): """Construct qualifications for MTurk task. Args: debug (bool): if True, use a special qualification that only we possess. """ quals = mtqu.Qualifications() if debug: quals.add(mtqu.Requirement("3B9TX86P8NTZUJU62N2SLJ1DZCERL5", "EqualTo", 100, required_to_preview=True)) else: quals.add(mtqu.LocaleRequirement("EqualTo", "US", required_to_preview=True)) quals.add(mtqu.PercentAssignmentsApprovedRequirement("GreaterThan", 95)) quals.add(mtqu.NumberHitsApprovedRequirement("GreaterThan", 10)) return quals
def test_boto2_import(self): '''testing the otree-boto2-shim''' from boto.mturk import qualification quals = [ qualification.LocaleRequirement("EqualTo", "US"), qualification.PercentAssignmentsApprovedRequirement( "GreaterThanOrEqualTo", 50), qualification.NumberHitsApprovedRequirement( "GreaterThanOrEqualTo", 5) ] # make sure the import is actually using the boto2 shim, # not the actual boto2 package that may still be lying around for qual in quals: self.assertEqual(qual, None)
def PostHits(): mtc = MTurkConnection(aws_access_key_id=ACCESS_ID, aws_secret_access_key=SECRET_KEY, host=HOST) q = ExternalQuestion( external_url="https://paulscotti.github.io/mturk/ContLTMBlocked90", frame_height=675) keywords = [ 'memory', 'psychology', 'game', 'attention', 'experiment', 'research' ] title = 'Memorize the colors of objects! (Psychology Experiment, 1.5 hours)' experimentName = 'Cont_LTM_90' description = 'Research study involving color memory.' pay = 9.00 qualifications = mtqu.Qualifications() qualifications.add( mtqu.PercentAssignmentsApprovedRequirement('GreaterThanOrEqualTo', 98)) qualifications.add( mtqu.NumberHitsApprovedRequirement('GreaterThanOrEqualTo', 1000)) qualifications.add(mtqu.LocaleRequirement("EqualTo", "US")) qualifications.add( mtqu.Requirement( '38XLDN1M8DBWG1FPHU43ZCVTZ4T3DT', 'DoesNotExist', '', 'DiscoverPreviewAndAccept')) # No prior workers of ours qualifications.add( mtqu.Requirement('2F1QJWKUDD8XADTFD2Q0G6UTO95ALH', 'Exists', '', 'DiscoverPreviewAndAccept')) # Masters only theHIT = mtc.create_hit( question=q, lifetime=2 * 60 * 60, # 2 hours max_assignments=1, #needs to be less than 10 else additional fees title=title, description=description, keywords=keywords, qualifications=qualifications, reward=pay, duration=180 * 60, #3 hours (HIT won't be accepted if they go over time) approval_delay=1 * 60 * 60, # 1 hours annotation=experimentName) assert (theHIT.status == True) print theHIT print theHIT[0].HITId
500, 'preview_template': 'global/MTurkPreview.html', 'minutes_allotted_per_assignment': 40, 'expiration_hours': 1, # 1 day #'grant_qualification_id': '3LQV637WQB4JX22NPA62LG08IF76BE', #sandbox 'grant_qualification_id': '3X03PXFE93BZZPK7U8HT29SECH8OFF', # real mturk (kristianlopezvargas) #'grant_qualification_id': '3SL0IB85URSUSM2RNGYM7CLMXT3JRV', # real mturk (kecolab) 'qualification_requirements': [ qualification.LocaleRequirement("EqualTo", "US"), qualification.PercentAssignmentsApprovedRequirement( "GreaterThanOrEqualTo", 30), qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo", 1), qualification.Requirement( '3X03PXFE93BZZPK7U8HT29SECH8OFF', 'DoesNotExist'), # change for sandbox or real mturk ] } # if you set a property in SESSION_CONFIG_DEFAULTS, it will be inherited by all configs # in SESSION_CONFIGS, except those that explicitly override it. # the session config can be accessed from methods in your apps as self.session.config, # e.g. self.session.config['participation_fee'] SESSION_CONFIG_DEFAULTS = { 'real_world_currency_per_point': 0.01, 'participation_fee': 4.00, 'num_bots': 6,
def get_worker_qualifications(approval_rate, total_approved): reqs = qualification.Qualifications() reqs.add(qualification.PercentAssignmentsApprovedRequirement(comparator = "GreaterThan", integer_value = str(approval_rate), required_to_preview=True)) reqs.add(qualification.LocaleRequirement(comparator = "EqualTo", locale ="US", required_to_preview=True)) reqs.add(qualification.NumberHitsApprovedRequirement(comparator = "GreaterThan", integer_value = str(total_approved), required_to_preview=True)) return reqs
def default_qualifications(): quals = mtqual.Qualifications() quals.add(mtqual.LocaleRequirement("EqualTo", "US")) quals.add(mtqual.PercentAssignmentsApprovedRequirement("GreaterThan", 95)) quals.add(mtqual.NumberHitsApprovedRequirement("GreaterThan", 10)) return quals