Utilities for interacting with Canvas using Python and the canvasapi.
pip install canvasutils
canvasutils
depends on the ipywidgets
packages. To make sure widgets render correctly in notebooks, you may need to enable the widgets extension in Jupyter following these instructions in the ipywidgets docs, in particular, follow these instructions if using Jupyter Lab.
I periodically make conda builds which can be viewed here. Install with:
conda install -c tomasbeuzen canvasutils
- Submit files to Canvas from within a Jupyter notebook with user-friendly widgets.
- Convert files to formats like
.html
from with canvas. - Create assignments (coming)
- Create assignment rubrics (coming)
See the file pyproject.toml, under the section [tool.poetry.dependencies]
.
The submit module is made to be used within a Jupyter notebook (.ipynb file). See the provided example.ipynb. There are two available submission interfaces, widget-based drop-down menus, or text-based entries.
api_url = "https://canvas.instructure.com/"
course_code = 123456
from canvasutils.submit import submit
submit(course_code, api_url=api_url, token=False) # token=False allows you to enter token interactively
submit(course_code, api_url=api_url, token=False, no_widgets=True)
Note that this command will convert the most recently saved version of a notebook. You should save your notebook before executing this command in a cell.
from canvasutils.submit import convert_notebook
convert_notebook('example.ipynb', to_format="html")
Notebook successfully converted!
Contributions are welcomed and recognized. You can see a list of contributors in the contributors tab.
This package was originally based on this repository created by Emily Gubski and Steven Wolfram.