plom-create
Plom tools related to producing papers, and setting up servers.
usage: plom-create [-h] [--version]
{status,newspec,new,parse,validatespec,uploadspec,class,make-db,get-ver-map,make,extra-pages,user,users,predictions,rubric,tags,tag,clear}
...
options
- --version
show program’s version number and exit
subcommands
Perform tasks related to building tests.
- command
Possible choices: status, newspec, new, parse, validatespec, uploadspec, class, make-db, get-ver-map, make, extra-pages, user, users, predictions, rubric, tags, tag, clear
Sub-commands:
status
Information about the server.
plom-create status [-h] [-s SERVER[:PORT]] [-w PASSWORD]
options
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
newspec (new)
Create new spec file.
plom-create newspec [-h] [--demo] [--demo-num-papers N] [specFile]
Positional Arguments
- specFile
defaults to ‘“testSpec.toml”’.
Default: “testSpec.toml”
options
- --demo
Use an auto-generated demo test. Obviously not for real use
Default: False
- --demo-num-papers
How many fake exam papers for the demo (defaults to 20 if omitted)
parse
Parse spec file (REMOVED)
plom-create parse [-h]
validatespec
Parse and verify a test-specification toml file.
plom-create validatespec [-h] [--save] [specFile]
Positional Arguments
- specFile
defaults to ‘“testSpec.toml”’.
Default: “testSpec.toml”
options
- --save
By default the verified spec file is not saved. Pass this to write it to ‘verifiedSpec.toml’.
Default: False
uploadspec
Upload exam specification to server.
plom-create uploadspec [-h] [-s SERVER[:PORT]] [-w PASSWORD] [specFile]
Positional Arguments
- specFile
defaults to ‘“testSpec.toml”’.
Default: “testSpec.toml”
options
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
class
Get student names/numbers from csv, process, and upload to server.
plom-create class [-h] [-i] [--demo] [--force] [-s SERVER[:PORT]] [-w PASSWORD] [classlist]
Positional Arguments
- classlist
filename in csv format
options
- -i, --ignore-warnings
Ignore any classlist warnings and upload anyway.
Default: False
- --demo
Use auto-generated classlist. DO NOT USE ON REAL SERVER
Default: False
- --force
By default, it is an error to upload a new classlist. This overrides that check; for which you accept responsibility. If you are using “numberToProduce = -1” then the first classlist will have chosen a value; you may want to reupload your spec before pushing a second classlist. This is a non-exaustive list of what could go wrong. If you’ve already produced and printed papers, you should be careful with this option, although we are not aware of any specific problems it would cause.
Default: False
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
The classlist can be a .csv file exported from Canvas (specifically, Canvas -> Grades -> Actions -> Export). Plom will do some light sanity checking such as dropping names like “Test Student”.
- Alternatively, the classlist can be a .csv file with column headers:
id - student ID number
name - student name in a single field
- paper_number - the test-number to assign to that student for
prenaming papers. If unsure, include the column, but leave it blank. Each paper_number must be unique and in the range [1, NumberToProduce] but they need not be contiguous nor ordered.
Plom will accept uppercase or lowercase column headers.
make-db
See “make” below, but here only the database is populated and no papers will be built. You can then call “make” later.
plom-create make-db [-h] [--from-file FILE] [-s SERVER[:PORT]] [-w PASSWORD]
options
- --from-file
Read the version map from FILE. WORK-IN-PROGRESS!
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
get-ver-map
The question-version map shows which questions have which version for each paper. This map is created server-side by the ‘make-db’ command. This .csv file can be used to reconstruct the database in case of catastrophe: we recommend keeping a backup copy.
plom-create get-ver-map [-h] [-s SERVER[:PORT]] [-w PASSWORD] [file]
Positional Arguments
- file
Filename, csv or json format. Default: ‘question_version_map.csv’.
options
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
make
Build papers (and if necessary the database) from the test specification. Based on the classlist “paper_num” column, some of the papers may have names printed on them from the classlist (“pre-named”) and the remainder will be blank. As they are created, the prenamed papers will be inserted into the prediction table with the predictor set to “prename”. If you want to change the prenames: (1) force upload a new classlist, and (2) see the “predictions” command to erase the “prename” predictor.
plom-create make [-h] [--no-pdf] [--without-qr] [-n NUMBER] [-x X] [-m Y] [-s SERVER[:PORT]] [-w PASSWORD]
options
- --no-pdf
Do not generate real PDFs - instead generate empty files.
Default: False
- --without-qr
Produce PDFs without QR codes and staple-corner indicators.
Default: False
- -n, --number
used for building a specific paper number
- -x, --namebox-xpos
Specify horizontal centre of the name/ID box that will be printed on named papers, a float from 0 (left) to 100 (right) of the page. Defaults to 50.
- -m, -y, --namebox-ypos
Specify vertical location of the name/ID that will be printed on named papers, a float from 0 (top) to 100 (bottom) of the page. Defaults to 42.
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
extra-pages
Make a simple extra-paper PDF for students to use when they need more space.
plom-create extra-pages [-h]
user
Add a new user account. You can provide a password or one will be autogenerated and echoed to the screen. Use the –update argument to modify an existing user’s password instead. TODO: support disable/enable and maybe delete?
plom-create user [-h] [--update] [-s SERVER[:PORT]] [-w PASSWORD] [username] [userpassword]
Positional Arguments
- username
The username
- userpassword
Autogenerated xkcd-style if omitted.
options
- --update
Update an existing user’s password.
Default: False
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
users
Manipulate users accounts. With no arguments, list the users already on the server. Given a filename, parses a plain-text user list, and creates them on the server. Can also produce a template file for you to edit, with autogenerated passwords.
plom-create users [-h] [--list] [--demo] [--auto N] [--numbered] [--no-upload] [-s SERVER[:PORT]]
[-w PASSWORD]
[userlist]
Positional Arguments
- userlist
Create/update a list of users from a csv file.
options
- --list
List the users on the server (default behaviour).
Default: False
- --demo
Use fixed prepopulated demo userlist and passwords. DO NOT USE THIS ON REAL SERVER. Includes “scanner” and “reviewer” BUT NOT “manager” accounts (because the server must already have that).
Default: False
- --auto
Auto-generate a random user list of N users with real-ish usernames. This will also create “scanner” and “reviewer” accounts BUT NOT a “manager” account (because the server must already have that).
- --numbered
Use numbered usernames, e.g. “user17”, for the autogeneration.
Default: False
- --no-upload
Do not upload, just create a local template file.
Default: True
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
predictions
Before papers are identified, there can exist various predictions about which paper goes with which individual. “Prenamed” is one example, where names are pre-printed on the ID sheet. Computer vision tools also make predictions based on student ID numbers.
plom-create predictions [-h] (--predictor P | --all | --erase P) [-s SERVER[:PORT]] [-w PASSWORD]
options
- --predictor
Show all predictions by the predictor P.
- --all
Show all predictions.
Default: False
- --erase
Erase all predictions by the predictor P. Caution: think carefully before erasing the “prename” predictor.
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
rubric
Add pre-made rubrics to the server. Your graders will be able to build their own rubrics but if you have premade rubrics you can add them here or by using the plom-manager tool. This tool can also dump the current rubrics from a running server.
plom-create rubric [-h] [--dump FILE] [--demo] [-s SERVER[:PORT]] [-w PASSWORD] [rubric_file]
Positional Arguments
- rubric_file
Upload a pre-build list of rubrics from this file. This can be a .json, .toml or .csv file.
options
- --dump
- Dump the current rubrics from SERVER into FILE,
which can be a .toml, .json, or .csv file. Defaults to FILE.toml if no extension specified..
- --demo
Upload an auto-generated rubric list for demos.
Default: False
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
tag
Add or remove tags from a paper and question.
plom-create tag [-h] [--rm] [-s SERVER[:PORT]] [-w PASSWORD] task tags [tags ...]
Positional Arguments
- task
Which task to tag, e.g., q0123g4 for paper 123 question 4.
- tags
Tag(s) to add to task.
options
- --rm
Remove tag(s) from paper (if omitted we add tags).
Default: False
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
clear
Clear “manager” login after a crash or other expected event.
plom-create clear [-h] [-s SERVER[:PORT]] [-w PASSWORD]
options
- -s, --server
Which server to contact, port defaults to 41984. Also checks the environment variable PLOM_SERVER if omitted. If the WEBPLOM environment variable is set, talk to a Django server instead (EXPERIMENTAL!)
- -w, --password
for the “manager” user, also checks the environment variable PLOM_MANAGER_PASSWORD.
See help for each subcommand or consult online documentation for an overview of the steps in setting up a server.
Most subcommands communicate with a server, which can be specified on the command line or by setting environment variables PLOM_SERVER and PLOM_MANAGER_PASSWORD.