nbgrader generate configΒΆ

Generates a default nbgrader_config.py file

Options
-------

Arguments that take values are actually convenience aliases to full
Configurables, whose aliases are listed on the help line. For more information
on full configurables, see '--help-all'.

--debug
    set log level to DEBUG (maximize logging output)
--quiet
    set log level to CRITICAL (minimize logging output)
--log-level=<Enum> (Application.log_level)
    Default: 30
    Choices: (0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL')
    Set the log level by value or name.
--student=<Unicode> (CourseDirectory.student_id)
    Default: '*'
    File glob to match student IDs. This can be changed to filter by student.
    Note: this is always changed to '.' when running `nbgrader assign`, as the
    assign step doesn't have any student ID associated with it. With `nbgrader
    submit`, this instead forces the use of an alternative student ID for the
    submission. See `nbgrader submit --help`.
    If the ID is purely numeric and you are passing it as a flag on the command
    line, you will need to escape the quotes in order to have it detected as a
    string, for example `--student=""12345""`. See:
        https://github.com/jupyter/nbgrader/issues/743
    for more details.
--assignment=<Unicode> (CourseDirectory.assignment_id)
    Default: ''
    The assignment name. This MUST be specified, either by setting the config
    option, passing an argument on the command line, or using the --assignment
    option on the command line.
--notebook=<Unicode> (CourseDirectory.notebook_id)
    Default: '*'
    File glob to match notebook names, excluding the '.ipynb' extension. This
    can be changed to filter by notebook.
--db=<Unicode> (CourseDirectory.db_url)
    Default: ''
    URL to the database. Defaults to sqlite:///<root>/gradebook.db, where <root>
    is another configurable variable.
--course-dir=<Unicode> (CourseDirectory.root)
    Default: ''
    The root directory for the course files (that includes the `source`,
    `release`, `submitted`, `autograded`, etc. directories). Defaults to the
    current working directory.

Class parameters
----------------

Parameters are set from command-line arguments of the form:
`--Class.trait=value`. This line is evaluated in Python, so simple expressions
are allowed, e.g.:: `--C.a='range(3)'` For setting C.a=[0,1,2].

GenerateConfigApp options
-------------------------
--GenerateConfigApp.answer_yes=<Bool>
    Default: False
    Answer yes to any prompts.
--GenerateConfigApp.config_file=<Unicode>
    Default: ''
    Full path of a config file.
--GenerateConfigApp.config_file_name=<Unicode>
    Default: ''
    Specify a config file to load.
--GenerateConfigApp.filename=<Unicode>
    Default: 'nbgrader_config.py'
    The name of the configuration file to generate.
--GenerateConfigApp.generate_config=<Bool>
    Default: False
    Generate default config file.
--GenerateConfigApp.log_datefmt=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S'
    The date format used by logging formatters for %(asctime)s
--GenerateConfigApp.log_format=<Unicode>
    Default: '[%(name)s]%(highlevel)s %(message)s'
    The Logging format template
--GenerateConfigApp.log_level=<Enum>
    Default: 30
    Choices: (0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL')
    Set the log level by value or name.
--GenerateConfigApp.logfile=<Unicode>
    Default: ''
    Name of the logfile to log to. By default, log output is not written to any
    file.

NbGrader options
----------------
--NbGrader.answer_yes=<Bool>
    Default: False
    Answer yes to any prompts.
--NbGrader.config_file=<Unicode>
    Default: ''
    Full path of a config file.
--NbGrader.config_file_name=<Unicode>
    Default: ''
    Specify a config file to load.
--NbGrader.generate_config=<Bool>
    Default: False
    Generate default config file.
--NbGrader.log_datefmt=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S'
    The date format used by logging formatters for %(asctime)s
--NbGrader.log_format=<Unicode>
    Default: '[%(name)s]%(highlevel)s %(message)s'
    The Logging format template
--NbGrader.log_level=<Enum>
    Default: 30
    Choices: (0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL')
    Set the log level by value or name.
--NbGrader.logfile=<Unicode>
    Default: ''
    Name of the logfile to log to. By default, log output is not written to any
    file.

CourseDirectory options
-----------------------
--CourseDirectory.assignment_id=<Unicode>
    Default: ''
    The assignment name. This MUST be specified, either by setting the config
    option, passing an argument on the command line, or using the --assignment
    option on the command line.
--CourseDirectory.autograded_directory=<Unicode>
    Default: 'autograded'
    The name of the directory that contains assignment submissions after they
    have been autograded. This corresponds to the `nbgrader_step` variable in
    the `directory_structure` config option.
--CourseDirectory.course_id=<Unicode>
    Default: ''
    A key that is unique per instructor and course. This can be specified,
    either by setting the config option, or using the --course option on the
    command line.
--CourseDirectory.db_assignments=<List>
    Default: []
    A list of assignments that will be created in the database. Each item in the
    list should be a dictionary with the following keys:
        - name
        - duedate (optional)
    The values will be stored in the database. Please see the API documentation
    on the `Assignment` database model for details on these fields.
--CourseDirectory.db_students=<List>
    Default: []
    A list of student that will be created in the database. Each item in the
    list should be a dictionary with the following keys:
        - id
        - first_name (optional)
        - last_name (optional)
        - email (optional)
    The values will be stored in the database. Please see the API documentation
    on the `Student` database model for details on these fields.
--CourseDirectory.db_url=<Unicode>
    Default: ''
    URL to the database. Defaults to sqlite:///<root>/gradebook.db, where <root>
    is another configurable variable.
--CourseDirectory.directory_structure=<Unicode>
    Default: '{nbgrader_step}/{student_id}/{assignment_id}'
    Format string for the directory structure that nbgrader works over during
    the grading process. This MUST contain named keys for 'nbgrader_step',
    'student_id', and 'assignment_id'. It SHOULD NOT contain a key for
    'notebook_id', as this will be automatically joined with the rest of the
    path.
--CourseDirectory.feedback_directory=<Unicode>
    Default: 'feedback'
    The name of the directory that contains assignment feedback after grading
    has been completed. This corresponds to the `nbgrader_step` variable in the
    `directory_structure` config option.
--CourseDirectory.groupshared=<Bool>
    Default: False
    Make all instructor files group writeable (g+ws, default g+r only) and
    exchange directories group readable/writeable (g+rws, default g=nothing only
    ) by default.  This should only be used if you carefully set the primary
    groups of your notebook servers and fully understand the unix permission
    model.  This changes the default permissions from 444 (unwriteable) to 664
    (writeable), so that other instructors are able to delete/overwrite files.
--CourseDirectory.ignore=<List>
    Default: ['.ipynb_checkpoints', '*.pyc', '__pycache__', 'feedback']
    List of file names or file globs. Upon copying directories recursively,
    matching files and directories will be ignored with a debug message.
--CourseDirectory.include=<List>
    Default: ['*']
    List of file names or file globs. Upon copying directories recursively, non
    matching files will be ignored with a debug message.
--CourseDirectory.max_file_size=<Int>
    Default: 100000
    Maximum size of files (in kilobytes; default: 100Mb). Upon copying
    directories recursively, larger files will be ignored with a warning.
--CourseDirectory.notebook_id=<Unicode>
    Default: '*'
    File glob to match notebook names, excluding the '.ipynb' extension. This
    can be changed to filter by notebook.
--CourseDirectory.release_directory=<Unicode>
    Default: 'release'
    The name of the directory that contains the version of the assignment that
    will be released to students. This corresponds to the `nbgrader_step`
    variable in the `directory_structure` config option.
--CourseDirectory.root=<Unicode>
    Default: ''
    The root directory for the course files (that includes the `source`,
    `release`, `submitted`, `autograded`, etc. directories). Defaults to the
    current working directory.
--CourseDirectory.source_directory=<Unicode>
    Default: 'source'
    The name of the directory that contains the master/instructor version of
    assignments. This corresponds to the `nbgrader_step` variable in the
    `directory_structure` config option.
--CourseDirectory.student_id=<Unicode>
    Default: '*'
    File glob to match student IDs. This can be changed to filter by student.
    Note: this is always changed to '.' when running `nbgrader assign`, as the
    assign step doesn't have any student ID associated with it. With `nbgrader
    submit`, this instead forces the use of an alternative student ID for the
    submission. See `nbgrader submit --help`.
    If the ID is purely numeric and you are passing it as a flag on the command
    line, you will need to escape the quotes in order to have it detected as a
    string, for example `--student=""12345""`. See:
        https://github.com/jupyter/nbgrader/issues/743
    for more details.
--CourseDirectory.student_id_exclude=<Unicode>
    Default: ''
    Comma-separated list of student IDs to exclude.  Counterpart of student_id.
    This is useful when running commands on all students, but certain students
    cause errors or otherwise must be left out.  Works at least for autograde,
    generate_feedback, and release_feedback.
--CourseDirectory.submitted_directory=<Unicode>
    Default: 'submitted'
    The name of the directory that contains assignments that have been submitted
    by students for grading. This corresponds to the `nbgrader_step` variable in
    the `directory_structure` config option.

CourseDirectory options
-----------------------
--CourseDirectory.assignment_id=<Unicode>
    Default: ''
    The assignment name. This MUST be specified, either by setting the config
    option, passing an argument on the command line, or using the --assignment
    option on the command line.
--CourseDirectory.autograded_directory=<Unicode>
    Default: 'autograded'
    The name of the directory that contains assignment submissions after they
    have been autograded. This corresponds to the `nbgrader_step` variable in
    the `directory_structure` config option.
--CourseDirectory.course_id=<Unicode>
    Default: ''
    A key that is unique per instructor and course. This can be specified,
    either by setting the config option, or using the --course option on the
    command line.
--CourseDirectory.db_assignments=<List>
    Default: []
    A list of assignments that will be created in the database. Each item in the
    list should be a dictionary with the following keys:
        - name
        - duedate (optional)
    The values will be stored in the database. Please see the API documentation
    on the `Assignment` database model for details on these fields.
--CourseDirectory.db_students=<List>
    Default: []
    A list of student that will be created in the database. Each item in the
    list should be a dictionary with the following keys:
        - id
        - first_name (optional)
        - last_name (optional)
        - email (optional)
    The values will be stored in the database. Please see the API documentation
    on the `Student` database model for details on these fields.
--CourseDirectory.db_url=<Unicode>
    Default: ''
    URL to the database. Defaults to sqlite:///<root>/gradebook.db, where <root>
    is another configurable variable.
--CourseDirectory.directory_structure=<Unicode>
    Default: '{nbgrader_step}/{student_id}/{assignment_id}'
    Format string for the directory structure that nbgrader works over during
    the grading process. This MUST contain named keys for 'nbgrader_step',
    'student_id', and 'assignment_id'. It SHOULD NOT contain a key for
    'notebook_id', as this will be automatically joined with the rest of the
    path.
--CourseDirectory.feedback_directory=<Unicode>
    Default: 'feedback'
    The name of the directory that contains assignment feedback after grading
    has been completed. This corresponds to the `nbgrader_step` variable in the
    `directory_structure` config option.
--CourseDirectory.groupshared=<Bool>
    Default: False
    Make all instructor files group writeable (g+ws, default g+r only) and
    exchange directories group readable/writeable (g+rws, default g=nothing only
    ) by default.  This should only be used if you carefully set the primary
    groups of your notebook servers and fully understand the unix permission
    model.  This changes the default permissions from 444 (unwriteable) to 664
    (writeable), so that other instructors are able to delete/overwrite files.
--CourseDirectory.ignore=<List>
    Default: ['.ipynb_checkpoints', '*.pyc', '__pycache__', 'feedback']
    List of file names or file globs. Upon copying directories recursively,
    matching files and directories will be ignored with a debug message.
--CourseDirectory.include=<List>
    Default: ['*']
    List of file names or file globs. Upon copying directories recursively, non
    matching files will be ignored with a debug message.
--CourseDirectory.max_file_size=<Int>
    Default: 100000
    Maximum size of files (in kilobytes; default: 100Mb). Upon copying
    directories recursively, larger files will be ignored with a warning.
--CourseDirectory.notebook_id=<Unicode>
    Default: '*'
    File glob to match notebook names, excluding the '.ipynb' extension. This
    can be changed to filter by notebook.
--CourseDirectory.release_directory=<Unicode>
    Default: 'release'
    The name of the directory that contains the version of the assignment that
    will be released to students. This corresponds to the `nbgrader_step`
    variable in the `directory_structure` config option.
--CourseDirectory.root=<Unicode>
    Default: ''
    The root directory for the course files (that includes the `source`,
    `release`, `submitted`, `autograded`, etc. directories). Defaults to the
    current working directory.
--CourseDirectory.source_directory=<Unicode>
    Default: 'source'
    The name of the directory that contains the master/instructor version of
    assignments. This corresponds to the `nbgrader_step` variable in the
    `directory_structure` config option.
--CourseDirectory.student_id=<Unicode>
    Default: '*'
    File glob to match student IDs. This can be changed to filter by student.
    Note: this is always changed to '.' when running `nbgrader assign`, as the
    assign step doesn't have any student ID associated with it. With `nbgrader
    submit`, this instead forces the use of an alternative student ID for the
    submission. See `nbgrader submit --help`.
    If the ID is purely numeric and you are passing it as a flag on the command
    line, you will need to escape the quotes in order to have it detected as a
    string, for example `--student=""12345""`. See:
        https://github.com/jupyter/nbgrader/issues/743
    for more details.
--CourseDirectory.student_id_exclude=<Unicode>
    Default: ''
    Comma-separated list of student IDs to exclude.  Counterpart of student_id.
    This is useful when running commands on all students, but certain students
    cause errors or otherwise must be left out.  Works at least for autograde,
    generate_feedback, and release_feedback.
--CourseDirectory.submitted_directory=<Unicode>
    Default: 'submitted'
    The name of the directory that contains assignments that have been submitted
    by students for grading. This corresponds to the `nbgrader_step` variable in
    the `directory_structure` config option.

Authenticator options
---------------------
--Authenticator.plugin_class=<Type>
    Default: 'nbgrader.auth.base.NoAuthPlugin'
    A plugin for different authentication methods.

CsvExportPlugin options
-----------------------
--CsvExportPlugin.assignment=<List>
    Default: []
    list of assignments to export
--CsvExportPlugin.student=<List>
    Default: []
    list of students to export
--CsvExportPlugin.to=<Unicode>
    Default: ''
    destination to export to

ExportPlugin options
--------------------
--ExportPlugin.assignment=<List>
    Default: []
    list of assignments to export
--ExportPlugin.student=<List>
    Default: []
    list of students to export
--ExportPlugin.to=<Unicode>
    Default: ''
    destination to export to

ExtractorPlugin options
-----------------------
--ExtractorPlugin.force=<Bool>
    Default: False
    Force overwrite of existing files.
--ExtractorPlugin.zip_ext=<List>
    Default: ['.zip', '.gz']
    List of valid archive (zip) filename extensions to extract. Any archive
    (zip) files with an extension not in this list are copied to the
    `extracted_directory`.

FileNameCollectorPlugin options
-------------------------------
--FileNameCollectorPlugin.named_regexp=<Unicode>
    Default: ''
    This regular expression is applied to each submission filename and MUST be
    supplied by the instructor. This regular expression MUST provide the
    `(?P<student_id>...)` and `(?P<file_id>...)` named group expressions.
    Optionally this regular expression can also provide the
    `(?P<first_name>...)`, `(?P<last_name>...)`, `(?P<email>...)`, and
    `(?P<timestamp>...)` named group expressions. For example if the filename
    is:
        `ps1_bitdiddle_attempt_2016-01-30-15-00-00_problem1.ipynb`
    then this `named_regexp` could be:
    ".*_(?P<student_id>\w+)_attempt_(?P<timestamp>[0-9\-]+)_(?P<file_id>\w+)"
    For named group regular expression examples see
    https://docs.python.org/3/howto/regex.html
--FileNameCollectorPlugin.valid_ext=<List>
    Default: ['.ipynb']
    List of valid submission filename extensions to collect. Any submitted file
    with an extension not in this list is skipped.

LateSubmissionPlugin options
----------------------------
--LateSubmissionPlugin.penalty_method=<Enum>
    Default: 'none'
    Choices: ('none', 'zero')
    The method for assigning late submission penalties:
        'none': do nothing (no penalty assigned)
        'zero': assign an overall score of zero (penalty = score)

AssignLatePenalties options
---------------------------
--AssignLatePenalties.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--AssignLatePenalties.plugin_class=<Type>
    Default: 'nbgrader.plugins.latesubmission.LateSubmissionPlugin'
    The plugin class for assigning the late penalty for each notebook.

IncludeHeaderFooter options
---------------------------
--IncludeHeaderFooter.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--IncludeHeaderFooter.footer=<Unicode>
    Default: ''
    Path to footer notebook, relative to the root of the course directory
--IncludeHeaderFooter.header=<Unicode>
    Default: ''
    Path to header notebook, relative to the root of the course directory

LockCells options
-----------------
--LockCells.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--LockCells.lock_all_cells=<Bool>
    Default: False
    Whether all assignment cells are locked (non-deletable and non-editable)
--LockCells.lock_grade_cells=<Bool>
    Default: True
    Whether grade cells are locked (non-deletable)
--LockCells.lock_readonly_cells=<Bool>
    Default: True
    Whether readonly cells are locked (non-deletable and non-editable)
--LockCells.lock_solution_cells=<Bool>
    Default: True
    Whether solution cells are locked (non-deletable and non-editable)

ClearSolutions options
----------------------
--ClearSolutions.begin_solution_delimeter=<Unicode>
    Default: 'BEGIN SOLUTION'
    The delimiter marking the beginning of a solution
--ClearSolutions.code_stub=<Dict>
    Default: {'python': '# YOUR CODE HERE\nraise NotImplementedError()', '...
    The code snippet that will replace code solutions
--ClearSolutions.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--ClearSolutions.end_solution_delimeter=<Unicode>
    Default: 'END SOLUTION'
    The delimiter marking the end of a solution
--ClearSolutions.enforce_metadata=<Bool>
    Default: True
    Whether or not to complain if cells containing solutions regions are not
    marked as solution cells. WARNING: this will potentially cause things to
    break if you are using the full nbgrader pipeline. ONLY disable this option
    if you are only ever planning to use nbgrader assign.
--ClearSolutions.text_stub=<Unicode>
    Default: 'YOUR ANSWER HERE'
    The text snippet that will replace written solutions

SaveAutoGrades options
----------------------
--SaveAutoGrades.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

ComputeChecksums options
------------------------
--ComputeChecksums.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

SaveCells options
-----------------
--SaveCells.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

OverwriteCells options
----------------------
--OverwriteCells.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

CheckCellMetadata options
-------------------------
--CheckCellMetadata.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

Execute options
---------------
--Execute.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--Execute.execute_retries=<Int>
    Default: 0
    The number of times to try re-executing the notebook before throwing an
    error. Generally, this shouldn't need to be set, but might be useful for CI
    environments when tests are flaky.
--Execute.extra_arguments=<List>
    Default: []
    A list of extra arguments to pass to the kernel. For python kernels, this
    defaults to ``--HistoryManager.hist_file=:memory:``. For other kernels this
    is just an empty list.
--Execute.force_raise_errors=<Bool>
    Default: False
    If False (default), errors from executing the notebook can be allowed with a
    `raises-exception` tag on a single cell, or the `allow_errors` configurable
    option for all cells. An allowed error will be recorded in notebook output,
    and execution will continue. If an error occurs when it is not explicitly
    allowed, a `CellExecutionError` will be raised. If True,
    `CellExecutionError` will be raised for any error that occurs while
    executing the notebook. This overrides both the `allow_errors` option and
    the `raises-exception` cell tag.
--Execute.iopub_timeout=<Int>
    Default: 4
    The time to wait (in seconds) for IOPub output. This generally doesn't need
    to be set, but on some slow networks (such as CI systems) the default
    timeout might not be long enough to get all messages.
--Execute.ipython_hist_file=<Unicode>
    Default: ':memory:'
    Path to file to use for SQLite history database for an IPython kernel.
    The specific value `:memory:` (including the colon at both end but not the
    back ticks), avoids creating a history file. Otherwise, IPython will create
    a history file for each kernel.
    When running kernels simultaneously (e.g. via multiprocessing) saving
    history a single SQLite file can result in database errors, so using
    `:memory:` is recommended in non-interactive contexts.
--Execute.kernel_manager_class=<Type>
    Default: 'builtins.object'
    The kernel manager class to use.
--Execute.kernel_name=<Unicode>
    Default: ''
    Name of kernel to use to execute the cells. If not set, use the kernel_spec
    embedded in the notebook.
--Execute.shutdown_kernel=<Enum>
    Default: 'graceful'
    Choices: ['graceful', 'immediate']
    If `graceful` (default), then the kernel is given time to clean up after
    executing all cells, e.g., to execute its `atexit` hooks. If `immediate`,
    then the kernel is signaled to immediately terminate.
--Execute.startup_timeout=<Int>
    Default: 60
    The time to wait (in seconds) for the kernel to start. If kernel startup
    takes longer, a RuntimeError is raised.
--Execute.store_widget_state=<Bool>
    Default: True
    If `True` (default), then the state of the Jupyter widgets created at the
    kernel will be stored in the metadata of the notebook.
--Execute.timeout=<Int>
    Default: 30
    The time to wait (in seconds) for output from executions. If a cell
    execution takes longer, an exception (TimeoutError on python 3+,
    RuntimeError on python 2) is raised.
    `None` or `-1` will disable the timeout. If `timeout_func` is set, it
    overrides `timeout`.
--Execute.timeout_func=<Any>
    Default: None
    A callable which, when given the cell source as input, returns the time to
    wait (in seconds) for output from cell executions. If a cell execution takes
    longer, an exception (TimeoutError on python 3+, RuntimeError on python 2)
    is raised.
    Returning `None` or `-1` will disable the timeout for the cell. Not setting
    `timeout_func` will cause the preprocessor to default to using the `timeout`
    trait for all cells. The `timeout_func` trait overrides `timeout` if it is
    not `None`.

GetGrades options
-----------------
--GetGrades.display_data_priority=<List>
    Default: ['text/html', 'application/pdf', 'text/latex', 'image/svg+xml...
--GetGrades.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

ClearOutput options
-------------------
--ClearOutput.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--ClearOutput.remove_metadata_fields=<Set>
    Default: {'scrolled', 'collapsed'}

LimitOutput options
-------------------
--LimitOutput.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--LimitOutput.max_lines=<Int>
    Default: 1000
    maximum number of lines of output (-1 means no limit)
--LimitOutput.max_traceback=<Int>
    Default: 100
    maximum number of traceback lines (-1 means no limit)

DeduplicateIds options
----------------------
--DeduplicateIds.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

ClearHiddenTests options
------------------------
--ClearHiddenTests.begin_test_delimeter=<Unicode>
    Default: 'BEGIN HIDDEN TESTS'
    The delimiter marking the beginning of hidden tests cases
--ClearHiddenTests.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--ClearHiddenTests.end_test_delimeter=<Unicode>
    Default: 'END HIDDEN TESTS'
    The delimiter marking the end of hidden tests cases
--ClearHiddenTests.enforce_metadata=<Bool>
    Default: True
    Whether or not to complain if cells containing hidden test regions are not
    marked as grade cells. WARNING: this will potentially cause things to break
    if you are using the full nbgrader pipeline. ONLY disable this option if you
    are only ever planning to use nbgrader assign.

ClearMarkScheme options
-----------------------
--ClearMarkScheme.begin_mark_scheme_delimeter=<Unicode>
    Default: 'BEGIN MARK SCHEME'
    The delimiter marking the beginning of hidden tests cases
--ClearMarkScheme.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader
--ClearMarkScheme.end_mark_scheme_delimeter=<Unicode>
    Default: 'END MARK SCHEME'
    The delimiter marking the end of hidden tests cases
--ClearMarkScheme.enforce_metadata=<Bool>
    Default: True
    Whether or not to complain if cells containing marking scheme regions are
    not marked as task cells. WARNING: this will potentially cause things to
    break if you are using the full nbgrader pipeline. ONLY disable this option
    if you are only ever planning to use nbgrader assign.

OverwriteKernelspec options
---------------------------
--OverwriteKernelspec.enabled=<Bool>
    Default: True
    Whether to use this preprocessor when running nbgrader

Exchange options
----------------
--Exchange.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--Exchange.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--Exchange.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--Exchange.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--Exchange.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--Exchange.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeCollect options
-----------------------
--ExchangeCollect.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeCollect.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeCollect.check_owner=<Bool>
    Default: True
    Whether to cross-check the student_id with the UNIX-owner of the submitted
    directory.
--ExchangeCollect.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeCollect.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeCollect.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeCollect.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps
--ExchangeCollect.update=<Bool>
    Default: False
    Update existing submissions with ones that have newer timestamps.

ExchangeFetch options
---------------------
--ExchangeFetch.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeFetch.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeFetch.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeFetch.replace_missing_files=<Bool>
    Default: False
    Whether to replace missing files on fetch
--ExchangeFetch.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeFetch.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeFetch.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeFetchAssignment options
-------------------------------
--ExchangeFetchAssignment.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeFetchAssignment.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeFetchAssignment.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeFetchAssignment.replace_missing_files=<Bool>
    Default: False
    Whether to replace missing files on fetch
--ExchangeFetchAssignment.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeFetchAssignment.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeFetchAssignment.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeFetchFeedback options
-----------------------------
--ExchangeFetchFeedback.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeFetchFeedback.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeFetchFeedback.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeFetchFeedback.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeFetchFeedback.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeFetchFeedback.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeList options
--------------------
--ExchangeList.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeList.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeList.cached=<Bool>
    Default: False
    List assignments in submission cache.
--ExchangeList.inbound=<Bool>
    Default: False
    List inbound files rather than outbound.
--ExchangeList.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeList.remove=<Bool>
    Default: False
    Remove, rather than list files.
--ExchangeList.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeList.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeList.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeRelease options
-----------------------
--ExchangeRelease.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeRelease.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeRelease.force=<Bool>
    Default: False
    Force overwrite existing files in the exchange.
--ExchangeRelease.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeRelease.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeRelease.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeRelease.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeReleaseAssignment options
---------------------------------
--ExchangeReleaseAssignment.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeReleaseAssignment.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeReleaseAssignment.force=<Bool>
    Default: False
    Force overwrite existing files in the exchange.
--ExchangeReleaseAssignment.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeReleaseAssignment.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeReleaseAssignment.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeReleaseAssignment.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeReleaseFeedback options
-------------------------------
--ExchangeReleaseFeedback.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeReleaseFeedback.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeReleaseFeedback.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeReleaseFeedback.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeReleaseFeedback.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeReleaseFeedback.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

ExchangeSubmit options
----------------------
--ExchangeSubmit.add_random_string=<Bool>
    Default: True
    Whether to add a random string on the end of the submission.
--ExchangeSubmit.assignment_dir=<Unicode>
    Default: '.'
    Local path for storing student assignments.  Defaults to '.' which is
    normally Jupyter's notebook_dir.
--ExchangeSubmit.cache=<Unicode>
    Default: ''
    Local cache directory for nbgrader submit and nbgrader list. Defaults to
    $JUPYTER_DATA_DIR/nbgrader_cache
--ExchangeSubmit.path_includes_course=<Bool>
    Default: False
    Whether the path for fetching/submitting  assignments should be prefixed
    with the course name. If this is `False`, then the path will be something
    like `./ps1`. If this is `True`, then the path will be something like
    `./course123/ps1`.
--ExchangeSubmit.root=<Unicode>
    Default: '/srv/nbgrader/exchange'
    The nbgrader exchange directory writable to everyone. MUST be preexisting.
--ExchangeSubmit.strict=<Bool>
    Default: False
    Whether or not to submit the assignment if there are missing notebooks from
    the released assignment notebooks.
--ExchangeSubmit.timestamp_format=<Unicode>
    Default: '%Y-%m-%d %H:%M:%S.%f %Z'
    Format string for timestamps
--ExchangeSubmit.timezone=<Unicode>
    Default: 'UTC'
    Timezone for recording timestamps

BaseConverter options
---------------------
--BaseConverter.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--BaseConverter.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.

Assign options
--------------
--Assign.create_assignment=<Bool>
    Default: True
    Whether to create the assignment at runtime if it does not already exist.
--Assign.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--Assign.no_database=<Bool>
    Default: False
    Do not save information about the assignment into the database.
--Assign.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.

GenerateAssignment options
--------------------------
--GenerateAssignment.create_assignment=<Bool>
    Default: True
    Whether to create the assignment at runtime if it does not already exist.
--GenerateAssignment.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--GenerateAssignment.no_database=<Bool>
    Default: False
    Do not save information about the assignment into the database.
--GenerateAssignment.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.

Autograde options
-----------------
--Autograde.create_student=<Bool>
    Default: True
    Whether to create the student at runtime if it does not already exist.
--Autograde.exclude_overwriting=<Dict>
    Default: {}
    A dictionary with keys corresponding to assignment names and values being a
    list of filenames (relative to the assignment's source directory) that
    should NOT be overwritten with the source version. This is to allow students
    to e.g. edit a python file and submit it alongside the notebooks in their
    assignment.
--Autograde.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--Autograde.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.

Feedback options
----------------
--Feedback.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--Feedback.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.

GenerateFeedback options
------------------------
--GenerateFeedback.force=<Bool>
    Default: False
    Whether to overwrite existing assignments/submissions
--GenerateFeedback.permissions=<Int>
    Default: 0
    Permissions to set on files output by nbgrader. The default is generally
    read-only (444), with the exception of nbgrader generate_assignment and
    nbgrader generate_feedback, in which case the user also has write
    permission.