Skip to main content
Help us improve Python packaging – donate today!

A client for the MTurk Crowd REST API

Project Description

Prerequisites

To use this library, you’ll need first follow our account set-up instructions to set up your Mechanical Turk and AWS accounts to call the API.

Instantiating the client requires using a Session object from boto3 to authenticate. The boto3 docs describe how to manage your credentials in more detail.

Quick Start

First, install the library:

$ pip install mturk-crowd-beta-client

Then, from a Python interpreter or script, create your first task:

from mturk_crowd_beta_client import MTurkCrowdClient
from boto3.session import Session
import uuid

# This examples assume you have a local AWS profile called
# 'mturk-crowd-caller', but you can authenticate however you like,
# including by directly passing in your access key and secret key.
session = Session(profile_name='mturk-crowd-caller')

# Create the client
crowd_client = MTurkCrowdClient(session)

# For this example, we'll give our task a random, unique name. For real
# work, you'll probably want to pick a name based on your input source.
task_name = 'my-test-task-' + uuid.uuid4().hex
function_name = 'sentiment-analysis-test'

# Create the task
put_result = crowd_client.put_task(function_name,
                                   task_name,
                                   {'text': 'Everything is wonderful.'})
print('PUT response: {}'.format(
    {'status_code': put_result.status_code, 'task': put_result.json()}))
# => PUT response: {
#  'status_code': 201,
#  'task': {'input': {'text': 'Everything is wonderful.'},
#           'problemDetails': None,
#           'result': None,
#           'state': 'processing',
#           'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'}
#   }

# Get the task we just created. Note that for a production (i.e., non-test)
# task, we'd have to poll periodically until the task completed.
get_result = crowd_client.get_task(function_name, task_name)
print('GET response: {}'.format(
    {'status_code': get_result.status_code, 'task': get_result.json()}))
# => GET response: {
#  'status_code': 200,
#  'task': {'input': {'text': 'Everything is wonderful.'},
#           'problemDetails': None,
#           'result': {'sentiment': 'positive'}
#           'state': 'completed',
#           'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'}
#   }

Further Reading

Check out our usage instructions and API documentation for more details about how to use the API and this client.

Release history Release notifications

This version
History Node

1.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
mturk-crowd-beta-client-1.0.0.tar.gz (4.9 kB) Copy SHA256 hash SHA256 Source None Sep 6, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page