예제 #1
0
파일: turk.py 프로젝트: dpfried/phrasenode
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
예제 #2
0
    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)
예제 #3
0
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
예제 #4
0
    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,
예제 #5
0
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                         
예제 #6
0
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