Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Doug Blank
    @dsblank
    To see what other educators say about using nbgrader, you might like to see: https://jupyter4edu.github.io/jupyter-edu-book/ especially Chapter 6
    Doug Blank
    @dsblank
    Need some help with names and icons, but some progress with feedback UI:
    Manage Feedback UI
    Jessica B. Hamrick
    @jhamrick
    Ooh, very nice!
    Hmm, choice of icons is hard though. I’ll have a look and see if any jump out at me
    Doug Blank
    @dsblank
    Yes, please do! I glanced over them, didn't see anything that popped out, and picked these two as place holders. Here they are for anyone who wants to play: https://getbootstrap.com/docs/3.3/components/
    Jessica B. Hamrick
    @jhamrick
    What about glyphicon-envelope for releasing feedback?
    Doug Blank
    @dsblank
    Sure! What about generate_feedback?
    Jessica B. Hamrick
    @jhamrick
    Maybe glyphicon-comment or glyphicon-list-alt?
    (Side note: there are so many good glyphicons. I want an excuse to use glyphicon-baby-formula and glyphicon-tent)
    Doug Blank
    @dsblank
    Ha! Baby formula and tent get my votes :)
    Jessica B. Hamrick
    @jhamrick
    nbgrader-mindmap.001.jpeg
    In case it’s useful, that’s the diagram from my slides earlier today
    Doug Blank
    @dsblank
    nbgrader_config.py

    c = get_config()

    c.Exchange.course_id = "example_course"
    c.Exchange.root = "/tmp/exchange"

    Jessica B. Hamrick
    @jhamrick
    Hi all, just so you’re all aware Bert and I made some PRs that should speed up the tests on Travis and Appveyor. So for future work if you could rebase onto the most recent master that would be great so your tests run faster too!
    billywardrop29
    @billywardrop29
    @dsblank here is the contents of the diff file - not sure how to attach
    diff --git a/nbgrader/nbextensions/assignment_list/assignment_list.js b/nbgrader/nbextensions/assignment_list/assignment_list.$
    index e4cd9a89..966840a6 100644
    --- a/nbgrader/nbextensions/assignment_list/assignment_list.js
    +++ b/nbgrader/nbextensions/assignment_list/assignment_list.js
    @@ -315,10 +315,17 @@ define([
     Assignment.prototype.make_row = function () {
         var row = $('<div/>').addClass('col-md-12');
    • var feedback_url = '';
    • var feedback_url_text = '';
      row.append(this.make_link());
      row.append($('<span/>').addClass('item_course col-sm-2').text(this.data.course_id));
      if (this.data.status === 'submitted') {
    • row.append($('<span/>').addClass('item_status col-sm-4').text(this.data.timestamp));
    • if (feedback_url) {
    • row.append($('<span/>').addClass('item_feedback col-sm-1').html('<a href="' + feedback_url + '">' + feedback_$
    • row.append($('<span/>').addClass('item_status col-sm-3').text(this.data.timestamp));
    • } else {
    • row.append($('<span/>').addClass('item_status col-sm-4').text(this.data.timestamp));
    • }
      } else {
      row.append(this.make_button());
      }

    ``` diff --git a/nbgrader/nbextensions/assignment_list/assignment_list.js b/nbgrader/nbextensions/assignment_list/assignment_list.$
    index e4cd9a89..966840a6 100644
    --- a/nbgrader/nbextensions/assignment_list/assignment_list.js
    +++ b/nbgrader/nbextensions/assignment_list/assignment_list.js
    @@ -315,10 +315,17 @@ define([

     Assignment.prototype.make_row = function () {
         var row = $('<div/>').addClass('col-md-12');
    • var feedback_url = '';
    • var feedback_url_text = '';
      row.append(this.make_link());
      row.append($('<span/>').addClass('item_course col-sm-2').text(this.data.course_id));
      if (this.data.status === 'submitted') {
    • row.append($('<span/>').addClass('item_status col-sm-4').text(this.data.timestamp));
    • if (feedback_url) {
    • row.append($('<span/>').addClass('item_feedback col-sm-1').html('<a href="' + feedback_url + '">' + feedback_$
    • row.append($('<span/>').addClass('item_status col-sm-3').text(this.data.timestamp));
    • } else {
    • row.append($('<span/>').addClass('item_status col-sm-4').text(this.data.timestamp));
    • }
      } else {
      row.append(this.make_button());
      }

    ```

    Karen Cranston
    @kcranston
    I am getting a warning and error with the latest release. This an nbgrader course dir that already existed. The warning is about course_id, which is set in the config. In the logs, I see:
    Config optioncourse_idnot recognized byCourseDirectory
    and in the UI, I get The course id has not been set in nbgrader_config.py
    I am also seeing that sqlalchemy error when trying to manual grade (sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity)
    sqlalchemy 1.3.7 py37h01d97ff_0 conda-forge
    stemming from File "/usr/local/miniconda3/envs/earth-analytics-python/lib/python3.7/site-packages/nbgrader/api.py", line 2504, in notebook_submission_dicts ).join(SubmittedAssignment, Notebook, Assignment, Student, Grade, GradeCell)\
    Karen Cranston
    @kcranston
    although I thought this was fixed with jupyter/nbgrader#1080
    Karen Cranston
    @kcranston
    ok, reading through the release notes for 0.6.0, I see I did not do the requested updates. Now getting an alembic error when running nbgrader db upgrade
    Karen Cranston
    @kcranston
    Sorry for yesterday's stream-of-consciousness. My nbgrader version was 0.5.6 (eager to install the partial credit feature) and once I updated to 0.6.0 all is well.
    Doug Blank
    @dsblank
    Good to hear, @kcranston !
    Adam Morris
    @abmorris
    Is setting c.CourseDirectory.db_assignments in nbgrader_config.py meant to populate the database with assignments? It doesn't seem to
    John Kitchin
    @jkitchin
    Hi everyone! I wondered if there is a library of examples for autograded problems somewhere? e.g T/F, multiple choice, numeric answers, etc? Most examples I have found focus on testing functions. I teach in engineering though, and most of our problems look more like scripts. Are there ways to use nbgrader and autograding for that?
    FOSSO
    @jtande

    I am trying to setup a JHUB on Azure (kube v1.20.5). I am interested in using ngshare service to provide nbgrader functionality on the jhub.
    After set up, the ngshare is forever pending:
    kubectl -n uncg-jhub get pod

    NAME                              READY   STATUS    RESTARTS   AGE       
    continuous-image-puller-dt9zv     1/1     Running   0          52m          
    continuous-image-puller-jklff     1/1     Running   0          52m            
    continuous-image-puller-mv5lr     1/1     Running   0          52m        
    hub-78b64f7d7d-fzv7f              1/1     Running   0          52m              
    **ngshare-5cbd6fc5f7-kvr98**          0/1     **Pending**   0          52m      
    proxy-855cfcf49b-s462n            1/1     Running   0          52m               
    user-scheduler-7f499fc7c4-6x5mh   1/1     Running   0          52m       
    user-scheduler-7f499fc7c4-dq2j4   1/1     Running   0          52m

    A detail look at the ngshare pod return the even below(but this is not explicite enough)
    kubectl -n uncg-jhub describe pod ngshare-5cbd6fc5f7-kvr98

    Events:
      Type     Reason            Age        From  Message
      ----     ------            ----       ----  -------
      Warning  FailedScheduling  <unknown>        running PreBind plugin "VolumeBinding": binding volumes: provisioning failed for PVC "ngshare-pvc"
      Warning  FailedScheduling  <unknown>        running PreBind plugin "VolumeBinding": binding volumes: provisioning failed for PVC "ngshare-pvc"

    I then decided to take a look at the pvcs:
    kubectl -n uncg-jhub get pvc

    NAME               STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    claim-j-5ffossot   Bound     pvc-191bf0f2-787b-4d68-b017-33dec92e8cce   10Gi       RWO            default        4d21h
    claim-jfossota     Bound     pvc-fd16d745-4f14-4933-bd21-7074a119736c   10Gi       RWO            default        4d22h
    hub-db-dir         Bound     pvc-a8a38665-36f0-428e-86a4-4fe4bbf3c9bc   1Gi        RWO            default        46m
    ngshare-pvc        Pending                                                                        default        46m

    A peak into ngshare-pvc gives a reason for the failure (I believe is related to the cluster)

    Access Modes:  
    VolumeMode:    Filesystem
    Mounted By:    ngshare-5cbd6fc5f7-kvr98
    Events:
      Type     Reason                Age                   From                         Message
      ----     ------                ----                  ----                         -------
      Normal   WaitForFirstConsumer  48m                   persistentvolume-controller  waiting for first consumer to be created before binding
      Warning  ProvisioningFailed    41m (x11 over 48m)    persistentvolume-controller  **Failed** to provision volume with StorageClass "default": **invalid AccessModes** [ReadWriteMany]: **only AccessModes [ReadWriteOnce] are supported** with maxShares(0) < 2
      Normal   WaitForPodScheduled   3m20s (x31 over 48m)  persistentvolume-controller  waiting for pod ngshare-5cbd6fc5f7-kvr98 to be scheduled

    The even above is suggesting the Volume Access mode is invalid. Has anyone come accross this error? Any idear how to fix this is appreciated
    Thank you