potluck
Package for defining and evaluating Python programming tasks.
potluck/__init__.py
For a high-level interface, import potluck.compare
. To define a task
specification, import potluck.specifications
. To define tests for a
specification, import potluck.meta
.
Compatibility
Overall potluck
requires Python 3.6 or later, but the following modules
are compatible with Python 2.7:
potluck.render
potluck.html_tools
potluck.phrasing
potluck.file_utils
potluck.time_utils
potluck.logging
Dependencies:
Core (these should be installed automatically when installing via pip
)
jinja2
for report rendering via HTML templates.pygments
for code highlighting in reports.importlib_resources
for resource loading.markdown
andbeautifulsoup4
for creating instructions. Ifpymdown-extensions
is available, its 'extra' collection will be used instead of standard markdown 'extra', which allows for things like code fences inside itemized lists.python_dateutil
for time zone management.
Optional (installing via [option] should fetch these when using pip
)
[test]
installspytest
for running the tests.[expectations]
installsoptimism
for capturing student tests using that module.[turtle_capture]
installsPillow
(>=6.0.0) for capturing turtle drawings, but you will need to manually install Ghostscript (which is not available directly from PyPI).[server]
installsflask
andflask_cas
for supporting thepotluck_server
module.[security]
installsflask_talisman
andflask_seasurf
for baseline server security.[https_debug]
installspyopenssl
for using HTTPS with a self-signed certificate when doing local debugging.
Getting Started
Unless you want to get into the guts of things, potluck.specifications
is the place to get started, while potluck.rubrics
and
potluck.contexts
deal with more advanced concepts without getting too
far into the weeds. potluck.meta
and potluck.snippets
are also useful
high-level interfaces for building tasks.
Flask App
For automatically collecting and evaluating submissions using potluck
,
a Flask WSGI app is available in the separate potluck_server
module.
1""" 2Package for defining and evaluating Python programming tasks. 3 4potluck/__init__.py 5 6For a high-level interface, import `potluck.compare`. To define a task 7specification, import `potluck.specifications`. To define tests for a 8specification, import `potluck.meta`. 9 10 11## Compatibility 12 13Overall `potluck` requires Python 3.6 or later, but the following modules 14are compatible with Python 2.7: 15 16- `potluck.render` 17- `potluck.html_tools` 18- `potluck.phrasing` 19- `potluck.file_utils` 20- `potluck.time_utils` 21- `potluck.logging` 22 23 24## Dependencies: 25 26Core (these should be installed automatically when installing via `pip`) 27 28- `jinja2` for report rendering via HTML templates. 29- `pygments` for code highlighting in reports. 30- `importlib_resources` for resource loading. 31- `markdown` and `beautifulsoup4` for creating instructions. If 32 `pymdown-extensions` is available, its 'extra' collection will be 33 used instead of standard markdown 'extra', which allows for things 34 like code fences inside itemized lists. 35- `python_dateutil` for time zone management. 36 37Optional (installing via [option] should fetch these when using `pip`) 38 39- `[test]` installs `pytest` for running the tests. 40- `[expectations]` installs `optimism` for capturing student tests using 41 that module. 42- `[turtle_capture]` installs `Pillow` (>=6.0.0) for capturing turtle 43 drawings, but you will need to manually install Ghostscript (which is 44 not available directly from PyPI). 45- `[server]` installs `flask` and `flask_cas` for supporting the 46 `potluck_server` module. 47- `[security]` installs `flask_talisman` and `flask_seasurf` for 48 baseline server security. 49- `[https_debug]` installs `pyopenssl` for using HTTPS with a 50 self-signed certificate when doing local debugging. 51 52 53## Getting Started 54 55Unless you want to get into the guts of things, `potluck.specifications` 56is the place to get started, while `potluck.rubrics` and 57`potluck.contexts` deal with more advanced concepts without getting too 58far into the weeds. `potluck.meta` and `potluck.snippets` are also useful 59high-level interfaces for building tasks. 60 61 62## Flask App 63 64For automatically collecting and evaluating submissions using `potluck`, 65a Flask WSGI app is available in the separate `potluck_server` module. 66""" 67 68# Import version variable 69from ._version import __version__ # noqa F401