Skip to main content

markus-jupyter-extension

A Jupyter extension to support integration with MarkUs.

Installation

This extension is available as a Python package. To install it:

$ pip install markus-jupyter-extension

Then install and enable the extension:

$ jupyter nbextension install --py --user markus-jupyter-extension
$ jupyter nbextension enable --py --user markus-jupyter-extension

Ensure that the MarkUs instances that this extension will integrate with have included the host name of the server that is running your Jupyter instance.

For example, if you are installing this extension to a Jupyter instance running at www.my_jupyter.com, then make sure that 'my_jupyter.com' is included in the jupyter_server.hosts settings on MarkUs.

Development

To begin development on the extension, first clone this repository:

$ git clone https://github.com/MarkUsProject/markus-jupyter-extension.git

Then go into the cloned repository and install the contained Python package in editable mode:

$ pip install -e .

You'll also need to install Jupyter notebook:

$ pip install notebook

Check setup using examples

To test whether your extension is working properly:

  1. Start the MarkUs server (see MarkUs development instructions for details).

  2. Login as a student in MarkUs and go to the "Account Settings" page using the dropdown at the top-right of the website.

  3. Copy the API key for the student.

  4. Run the Jupyter notebook server from the examples directory:

    $ cd examples
    $ jupyter notebook
    
  5. The Jupyter front-end client should launch automatically in your web browser.

  6. Create a new file called markus-api-key.txt and save the API key you copied in step 3.

  7. Open the demo notebook. Optionally, you can run the notebook cell to see the notebook's metadata (including the "markus" metadata)

  8. Click on the MarkUs icon button in the toolbar, which will submit the file to MarkUs.

  9. If you then go back to MarkUs as the student, you should see the file submitted to the specified assignment.

References

Metadata

Release files for markus-jupyter-extension 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for markus-jupyter-extension 0.1.4
File Size Uploaded
markus-jupyter-extension-0.1.4.tar.gz 28.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for markus-jupyter-extension 0.1.4
File Interpreter ABI Platform
markus_jupyter_extension-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 81.1 kB

Release files / markus-jupyter-extension-0.1.4.tar.gz

Download URL markus-jupyter-extension-0.1.4.tar.gz
Size 28.8 kB
Tags Source
SHA-256 checksum
How to use checksums
536251bf71e6e1d97667bcf348cafe62a74060c71d70000769bd77f578901e9e
BLAKE2b-256 checksum
How to use checksums
f319a32af52ec953251e426af9098b530d8a210b3a38d866237ea90488a73f39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release files / markus_jupyter_extension-0.1.4-py3-none-any.whl

Download URL markus_jupyter_extension-0.1.4-py3-none-any.whl
Size 52.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa6aa8730970c98dc60b93036dde2166d82e9fe515ab817eb6767bfbf0b98946
BLAKE2b-256 checksum
How to use checksums
3273436d3c1057ba736393f2e64faaf025a6c355935c7e7422e85b8a33860ca7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page