CLI Reference

CLI Reference#

otter#

Command-line utility for Otter-Grader, a Python-based autograder for Jupyter Notebooks, RMarkdown files, and Python and R scripts. For more information, see https://otter-grader.readthedocs.io/.

Usage

otter [OPTIONS] [COMMAND] [ARGS]...

Options

--version#

Show the version and exit

assign#

Create distribution versions of the Otter Assign formatted notebook MASTER and write the results to the directory RESULT, which will be created if it does not already exist.

Usage

otter assign [OPTIONS] MASTER RESULT

Options

-v, --verbose#

Verbosity of the logged output

--no-run-tests#

Do not run the tests against the autograder notebook

--no-pdfs#

Do not generate PDFs; overrides assignment config

--username <username>#

Gradescope username for generating a token

--password <password>#

Gradescope password for generating a token

--debug#

Do not ignore errors in running tests for debugging

Arguments

MASTER#

Required argument

RESULT#

Required argument

check#

Check the Python script or Jupyter Notebook FILE against tests.

Usage

otter check [OPTIONS] FILE

Options

-v, --verbose#

Verbosity of the logged output

-q, --question <question>#

A specific question to grade

-t, --tests-path <tests_path>#

Path to the directory of test files

--seed <seed>#

A random seed to be executed before each cell

Arguments

FILE#

Required argument

export#

Export a Jupyter Notebook SRC as a PDF at DEST with optional filtering.

If unspecified, DEST is assumed to be the basename of SRC with a .pdf extension.

Usage

otter export [OPTIONS] SRC [DEST]

Options

-v, --verbose#

Verbosity of the logged output

--filtering#

Whether the PDF should be filtered

--pagebreaks#

Whether the PDF should have pagebreaks between questions

-s, --save#

Save intermediate file(s) as well

-e, --exporter <exporter>#

Type of PDF exporter to use

Options:

latex | html

--xecjk#

Enable xeCJK in Otter’s LaTeX template

Arguments

SRC#

Required argument

DEST#

Optional argument

generate#

Generate a zip file to configure an Otter autograder, including FILES as support files.

Usage

otter generate [OPTIONS] [FILES]...

Options

-v, --verbose#

Verbosity of the logged output

-t, --tests-dir <tests_dir>#

Path to test files

-o, --output-path <output_path>#

Path at which to write autograder zip file

-c, --config <config>#

Path to otter configuration file; ./otter_config.json automatically checked

--no-config#

Disable auto-inclusion of unspecified Otter config file at ./otter_config.json

-r, --requirements <requirements>#

Path to requirements.txt file; ./requirements.txt automatically checked

--no-requirements#

Disable auto-inclusion of unspecified requirements file at ./requirements.txt

--overwrite-requirements#

Overwrite (rather than append to) default requirements for Gradescope; ignored if no REQUIREMENTS argument

-e, --environment <environment>#

Path to environment.yml file; ./environment.yml automatically checked (overwrite)

--no-environment#

Disable auto-inclusion of unspecified environment file at ./environment.yml

-l, --lang <lang>#

Assignment programming language; defaults to Python

--username <username>#

Gradescope username for generating a token

--password <password>#

Gradescope password for generating a token

--token <token>#

Gradescope token for uploading PDFs

--python-version <python_version>#

Python version to use in the grading image

--channel-priority-strict#

Whether to set conda’s channel_priority to strict in the setup.sh file

Arguments

FILES#

Optional argument(s)

grade#

Grade submissions in PATHS locally using Docker containers. PATHS can be individual file paths or directories containing submissions ending with extension EXT.

Usage

otter grade [OPTIONS] [PATHS]...

Options

-v, --verbose#

Verbosity of the logged output

-n, --name <name>#

An assignment name to use in the Docker image tag

-a, --autograder <autograder>#

Path to autograder zip file

-o, --output-dir <output_dir>#

Directory to which to write output

--ext <ext>#

The extension to glob for submissions

Options:

ipynb | py | qmd | Rmd | R | r | zip

--summaries#

Whether to write the otter run results for each graded notebook

--pdfs#

Whether to copy notebook PDFs out of containers

--containers <containers>#

Specify number of containers to run in parallel

--image <image>#

A Docker image tag to use as the base image

--timeout <timeout>#

Submission execution timeout in seconds

--no-network#

Disable networking in the containers

--no-kill#

Do not kill containers after grading

--debug#

Run in debug mode (without ignoring errors thrown during execution)

--prune#

Prune all of Otter’s grading images

-f, --force#

Force action (don’t ask for confirmation)

Arguments

PATHS#

Optional argument(s)

run#

Run non-containerized Otter on a single submission, writing results to a JSON file.

Usage

otter run [OPTIONS] SUBMISSION

Options

-v, --verbose#

Verbosity of the logged output

-a, --autograder <autograder>#

Path to autograder zip file

-o, --output-dir <output_dir>#

Directory to which to write output

Suppress Otter logo in stdout

--debug#

Do not ignore errors when running submission

-p, --pickle-results#

Output GradingResults pickle file

Arguments

SUBMISSION#

Required argument