Configuration — Dallinger 3.4.0 documentation

# Configuration

The Dallinger `configuration` module provides tools for reading and writing configuration parameters that control the behavior of an experiment. To use the configuration, first import the module and get the configuration object:

    import dallinger

    config = dallinger.config.get_config()

You can then get and set parameters:

    config.get("duration")
    config.set("duration", 0.50)

When retrieving a configuration parameter, Dallinger will look for the parameter first among environment variables, then in a `config.txt` in the experiment directory, and then in the `.dallingerconfig` file, using whichever value is found first. If the parameter is not found, Dallinger will use the default.

## Built-in configuration

Built-in configuration parameters include:

`mode`
  Run the experiment in this mode. Options include `debug` (local testing), `sandbox` (MTurk sandbox), and `live` (MTurk).
`title`
  Title of the HIT on Amazon Mechanical Turk.
`description`
  Description of the HIT on Amazon Mechanical Turk.
`keywords`
  Comma-separated list of keywords to use on Amazon Mechanical Turk.
`lifetime`
  How long in hours that your HIT remains visible to workers.
`duration`
  How long in hours participants have until the HIT will time out.
`us_only`
  A boolean that control whether this HIT is available only to MTurk workers in the U.S.
`base_payment`
  Base payment in U.S. dollars.
`approve_requirement`
  The percentage of past MTurk HITs that must have been approved for a worker to qualify to participate in your experiment. 1-100.
`contact_email_on_error` unicode
  Email address displayed when there is an error.
`auto_recruit`
  Whether recruitment should be automatic.
`group`
  A string. Unicode string.
`loglevel`
  A number between 0 and 4 that controls the verbosity of logs, from `debug` to `critical`.
`organization_name` [string]
  Identifies your institution, business, or organization.
`browser_exclude_rule` [comma separated string]
  A set of rules you can apply to prevent participants with unsupported web browsers from participating in your experiment.
`database_url`
  URI of the Postgres database.
`database_size`
  Size of the database on Heroku. See Heroku Postgres plans.
`dyno_type`
  Heroku dyno type to use. See Heroku dynos types.
`num_dynos_web`
  Number of Heroku dynos to use for processing incoming HTTP requests. It is recommended that you use at least two.
`num_dynos_worker`
  Number of Heroku dynos to use for performing other computations.
`host`
  IP address of the host.
`port`
  Port of the host.
`notification_url`
  URL where notifications are sent. This should not be set manually.
`clock_on`
  If the clock process is on, it will perform a series of checks that ensure the integrity of the database.
`logfile`
  Where to write logs.
`aws_access_key_id`
  AWS access key ID.
`aws_secret_access_key`
  AWS access key secret.
`aws_region`
  AWS region to use. Defaults to `us-east-1`.
`dallinger_email_address`
  A Gmail address for use by Dallinger to send status emails.
`dallinger_email_password`
  Password for the aforementioned Gmail address.
`heroku_team`
  The name of the Heroku team to which all applications will be assigned. This is useful for centralized billing. Note, however, that it will prevent you from using free-tier dynos.
`whimsical`
  What’s life without whimsy?