Command-Line Utility
Dallinger is executed from the command line within the experiment directory with the following commands:
verify
Verify that a directory is a Dallinger-compatible app. A number of checks are run here:
Required files are verified to exist
The cumulative size of all experiment files is checked to make sure large files or directories are not accidentally included (note that files excluded with a .gitignore file are not included in this size total)
The experiment.py file is checked to make sure it includes a single Experiment subclass
The configuration for
base_payment
from config.txt is validatedIncluded files are checked for name conflicts with core Dallinger files
bot
Spawn a bot and attach it to the specified application. The --debug
parameter
connects the bot to the locally running instance of Dallinger. Alternatively,
the --app <app>
parameter specifies a live experiment by its id.
debug
Run the experiment locally. An optional --verbose
flag prints more detailed
logs to the command line. Use the optional --bot
flag to use a bot to
complete the experiment and the optional --proxy
parameter can be used to
specify an alternative port when opening browser windows.
sandbox
Runs the experiment on MTurk’s sandbox using Heroku as a server.
An optional --verbose
flag prints more detailed logs to the command line.
An optional --app <app>
parameter specifies the experiment id. If not specified, a new
unique experiment experiment id is automatically generated.
An optional --archive <relative file path>
parameter specifies an experiment archive
(previously created with dallinger export
) from which to pre-populate the database
before starting recruitment.
deploy
Runs the experiment live on MTurk using Heroku as a server. An optional
--verbose
flag prints more detailed logs to the command line. An optional
--bot
flag forces the bot recruiter to be used, rather than the configured
recruiter. An optional --app <app>
parameter specifies the experiment id,
if not specified, a new unique experiment id is automatically generated.
An optional --archive <relative file path>
parameter specifies an experiment archive
(previously created with dallinger export
) from which to pre-populate the database
before starting recruitment.
logs
Open the app’s logs in Papertrail. A required --app <app>
parameter
specifies the experiment by its id.
summary
Return a summary of an experiment. A required --app <app>
parameter
specifies the experiment by its id.
export
Download the database and partial server logs to a zipped folder within
the data directory of the experimental folder. Databases are stored in
CSV format. A required --app <app>
parameter specifies the experiment by its
id. Use the optional --local
flag if exporting a local experiment data.
An optional --no-scrub
flag will stop the scrubbing of personally
identifiable information in the export. The scrubbing of PII is enabled by
default.
email-test
Validate email settings derived from Dallinger Configuration and send a test email if the configuration appears valid.
The test email will use dallinger_email_address
as the sender and
contact_email_on_error
as the recipient.
compensate
Compensate a worker a specific amount in US dollars. This is useful if something
goes wrong with the experiment and you need to pay workers for their wasted
time. Currently only the mturk
recruiter is supported, and is the default,
so doesn’t need to be specified.
- For Mechanical Turk, compensation is acheived by:
Creating a unique qualification and assigning it to the worker
Creating a very simple HIT which is only visible to workers with this qualification, using the dollar amount specified in the command as the base payment
Automatically approving (and thus granting base payment) when the HIT is submitted.
- Usage:
--worker_id
(required) - The worker’s identifier--dollars
(required) - The amount to pay, in US dollars--sandbox
(optional flag) - If present, the compensation will be made via the test platform (the MTurk Sandbox)--email
(optional) - An email address, which if present, will be used to notify the worker that they’ve been compensated
qualify
Assign a Mechanical Turk qualification to one or more workers.
This is useful when compensating workers if something goes wrong with
the experiment. Requires a --qualification
parameter, which is a
qualification ID, (or, if the --by_name
is used, a qualification name),
value --value
parameter, and a list of one or more worker IDs, passed at
the end of the command. The optional --notify
flag can be used to notify
workers via email. You can also optionally specify the --sandbox
flag to use
the MTurk sandbox.
revoke
Revoke a Mechanical Turk qualification for one or more workers.
This is useful when developing an experiment with “insider” participants,
who would otherwise be prevented from accepting a HIT for an experiment
they’ve already participated in.
Requires a --qualification
, which is a qualification ID, (or, if
the --by_name
is used, a qualification name), an optional --reason
string, and a list of one or more MTurk worker IDs. You can also optionally
specify the --sandbox
flag to use the MTurk sandbox.
hibernate
Temporarily scales down the specified app to save money. All dynos are
removed and so are many of the add-ons. Hibernating apps are
non-functional. It is likely that the app will not be entirely free
while hibernating. To restore the app use awaken
. A required
--app <app>
parameter specifies the experiment by its id.
awaken
Restore a hibernating app. A required --app <app>
parameter specifies the
experiment by its id.
destroy
Tear down an experiment server. A required --app <app>
parameter
specifies the experiment by its id. Optional --expire-hit
flag
can be provided to force expiration of MTurk HITs associated with the
app (--no-expire-hit
can be used to disable HIT expiration). If app
is sandboxed, you will need to use the --sandbox
flag to expire HITs
from the MTurk sandbox.
hits
List all MTurk HITs for your account based on your dallinger AWS configuration, or for a specific dallinger experiment by ID.
By default, all your HITs will be displayed for either the MTurk sandbox
(if the --sandbox
flag is set) or production environment.
To limit the output to HITs associated with a Dallinger experiment, specify the full experiment ID with the --app <app>
flag.
expire
Expire (set to status Reviewable
) MTurk HITs.
With the --app <experiment ID>
parameter, the command will attempt
to expire any HITs associtated with a specific experiment, based on the
presence of this ID in the HIT’s annotation
field.
With the --hit_id <HIT ID>
parameter, the command will instead attempt to expire the specified HIT directly.
An optional --sandbox
flag indicates to look for HITs in the MTurk
sandbox.
Note that if a HIT already has the MTurk status Reviewable
, the
command will still report a success (and there is no risk in
running the command against an already-expired HIT).
extend_mturk_hit
Extend an MTurk HIT by a some number of assignments, and optionally, an
additional number of hours.
A required --hit_id
parameter should contain
the MTurk HIT Id, --assignments
should contain the additional number of
HIT assigments to create. To extend the duration of the HIT, also include
a duration_hours
parameter, which may be a decimal (--duration_hours 2.5
is acceptable input.) If your HIT is in the MTurk sandbox, you must add a
--sandbox
flag.
apps
List all running heroku apps associated with the currently logged in heroku account. Returns the Dallinger app UID, app launch timestamp, and heroku app url for each running app.
monitor
Monitor a live Dallinger experiment. A required --app <app>
parameter
specifies the experiment by its id.
load
Import database state from an exported zip file and leave the server
running until stopping the process with <control>-c.
A required --app <app>
parameter specifies the experiment by its id.
An optional --verbose
flag prints more detailed logs to the command line.
Use the optional --replay
flag to start the experiment locally in replay
mode after loading the data into the local database.
setup
Create the Dallinger config file if it does not already exist.
uuid
Generate a new unique identifier.
rq_worker
Start an rq worker in the context of Dallinger. This command can potentially be useful during the development/debugging process.