Skip to main content

FeedbackFruits: detailed FeedbackFruits data through Canvas

FeedbackFruits (FBF) sends Canvas only an aggregate: one grade per student and assignment. This package fetches the details behind it, using nothing but your Canvas API token:

  • peer reviews: who reviewed whom, the level and score on each rubric criterion, the comments, the reviewees' ratings of their reviews and the students' reflections;
  • grade breakdowns: what each student's FBF grade is made of, facet by facet, checked against the score Canvas holds;
  • discussions: the threads of comments, questions and answers in video and document activities, with their positions.

It is not made by, or affiliated with, FeedbackFruits. It plays the browser's part in the LTI launch from Canvas and then reads FBF's own API, which is not public and changes without notice; see When FeedbackFruits changes below.

Installation

pip install FeedbackFruits

This installs the fbf command. It uses the configuration of canvaslms, so log in once with

canvaslms login

Your token must be a manually generated user token (the usual kind), since Canvas grants the launch only to unscoped tokens.

Usage

The commands select courses and assignments with the same options as canvaslms: -c for courses, -a for assignments, -A for assignment groups and -M for modules, each a regular expression. They print tab-separated rows (-d sets the delimiter), or JSON with --json.

fbf reviews -c DD1310 -a "Peer review"            # one row per criterion
fbf reviews -c DD1310 -a "Peer review" --long     # one row per comment
fbf reviews -c DD1310 --feedback                  # reviewees' ratings
fbf reviews -c DD1310 --reflections

fbf progress -c DD1310 -a "Video 1"               # grade per student
fbf progress -c DD1310 --long                     # one row per facet
fbf progress -c DD1310 --mismatch                 # Canvas differs from FBF
fbf progress -c DD1310 --unpublished              # points not yet sent

fbf discussions -c DD1310 -a "Lecture video"      # one row per thread
fbf discussions -c DD1310 -a "Lecture video" -l   # one row per post

The output contains the students' names and texts: treat it as the personal data it is.

Only assignments that someone has opened in FBF in this course round have data; the commands say which have none yet. One launch per Canvas course gives access to all of its FBF activities.

When FeedbackFruits changes

When FBF changes its API, the commands stop with an error that names what changed: the step of the launch, or the name in the data that is missing. The documentation describes how to recover. In short:

  1. In the browser, open the FBF assignment from Canvas with the developer tools' network tab recording, and save it as a HAR file, outside any repository: it contains your session cookies and students' data.
  2. Run fbf har-diff capture.har. It compares the capture with the shape this version of the package was written for (names only, no values) and marks with !! the removed names that the package reads.
  3. Report it, or fix it, with the diff (the diff holds no values).
  4. Delete the HAR file and log out of Canvas and FBF.

Development

The package is written as literate programs (noweb): edit the .nw files in src/fbf/, never the generated .py files.

make compile          # tangle and weave
make test             # offline tests, replaying recorded responses
make -C doc fbf.pdf   # the documentation, with the recovery procedure

The tests replay pseudonymized recordings of a real course, which are not in the repository. CLAUDE.md and the Testing chapter of the documentation describe how to record them and how to check for changes in FBF (make test PYTESTFLAGS=--live).

Metadata

Release files for FeedbackFruits 0.1

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

Source distribution (sdist)

Source distribution for FeedbackFruits 0.1
File Size Uploaded Provenance Actions
feedbackfruits-0.1.tar.gz 119.3 kB Without provenance Details for feedbackfruits-0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for FeedbackFruits 0.1
File Interpreter ABI Platform Actions
feedbackfruits-0.1-py3-none-any.whl Python 3 none any Details for feedbackfruits-0.1-py3-none-any.whl

Total release size: 151.8 kB

Release files / feedbackfruits-0.1.tar.gz

Download URL feedbackfruits-0.1.tar.gz
Size 119.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cbde22673bf5c3ecae8502706430b8b88f7501ab433e179bc9546e026e39dca2
BLAKE2b-256 checksum
How to use checksums
a183d581516b3370c1d16d10a6898d91654e4315f4d2af3badfd05ccbfee41a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.3 CPython/3.14.4 Linux/7.0.0-31-generic

Release files / feedbackfruits-0.1-py3-none-any.whl

Download URL feedbackfruits-0.1-py3-none-any.whl
Size 32.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e7778495e07542b292861c2c6a4ff9b99d072d4bfb7ba2ebbecb4aeefb70e0ba
BLAKE2b-256 checksum
How to use checksums
fd2ce87bf84ae3df2d1d790f1e0d3ea69e02cb672fb73506a6fc27e9024c73fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.3 CPython/3.14.4 Linux/7.0.0-31-generic

Security for FeedbackFruits 0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files No provenance

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