Required Experiment Files
Dallinger is flexible with regards to the form the front end takes. However, there are a number of required or forbidden files. You can verify that a directory is compatible by running the verify command from a terminal within the directory. Though just because these checks pass doesn’t mean the experiment will run! The minimal required structure is as follows:
Blue items are (optional) directories (note that the experiment directory can have any name), green items are required files (the README file can be either a txt file or a md file), and red items are forbidden files that will cause a conflict at run time.
Required files
config.txt - The config file contains a variety of parameters that affect how Dallinger runs. For more info see…
experiment.py - This is a python file containing the custom experiment code.
README.txt/md - This (hopefully) contains a helpful description of the experiment.
Forbidden files
A number of files cannot be included in the experiment directory. This is because, when Dallinger runs, it inserts a number of required files into the experiment directory and will overwrite any files with the same name. The files are as follows:
complete.html - this html page shows when dallinger is run in debug mode and the experiment is complete.
error_dallinger.html - this is a flexible error page that shows when something goes wrong.
launch.html - this page is shown when the /launch route is pinged and the experiment starts successfully.
waiting.html - this page shows a standard waiting room for experiments that require multiple users at once.
robots.txt - this file is returned to bots (e.g. from Google) that bump into the experiment when crawling the internet.
dallinger2.js - this is a javascript library with a number of helpful functions.
reqwest.min.js - this is required for dallinger2.js to work.
dallinger.css - this contains several css classes that are used in the demos.
Custom files
You can specify files from outside the experiment directory that should be merged in using the extra_files function. This is a module-level function in the experiment.py file that returns a sequence of source and destination tuples. The source can be either a file or a directory.
For example:
def extra_files():
return [
("/home/user/stimulus.txt", "/static/stimulus.txt"),
("/home/user/stimuluses", "/static/stimuluses"),
]
You can also provide this as a class method on the
Experiment
class.