{ "info": { "author": "Dibya Ghosh", "author_email": "dibya@berkeley.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: BSD License", "Topic :: Utilities" ], "description": "gsExport\n========\n\n**gsExport** is a utility designed to help educators simplify and\nstreamline the process of grading student notebooks. Designed to\nalleviate the struggles realized in UC Berkeley\u2019s *Data 8*, the system\nallows students to easily export Jupyter notebooks as PDFs which are\nsegmented to allow for easy grading through the Gradescope interface.\n\nFeatures\n--------\n\nThe system is easy to use, once installed on the client computer.\n\nIn order to generate the PDF file for a notebook, students simply run the following\ncommands\n\n::\n\n import gsExport\n gsExport.generateSubmission(\"hw01a.ipynb\")\n\n\nThe exporting tool does the following:\n\n\n- We diff the student\u2019s notebook with the default \u201cbeginning\u201d notebook,\n to see what regions students actually contributed to. By doing so, we\n eliminate a lot of the text/in-place code which doesn\u2019t need to be\n graded\n- Using a custom LaTex template, we export to PDF (with pagebreaks as necessary)\n\nStructure Requirements\n----------------------\n\nHow to work with gsExport\n\nIn your notebook, add the following\n\n- add the text `#newpage` in the Markdown cells before which you'd like to pagebreak (for example, the beginning of a question)\n- add '#student' on all cells in which you expect the student to write information\n\nTo generate the new notebook, run the following commands in the shell\n\n::\n\n jupyter nbconvert hw01a.ipynb --NotebookExporter.preprocessors=\"['gsExport.gsExportPreprocessor']\" --to notebook \n\nwhich will generate a notebook with all the appropriate structure in hw01a.nbconvert.ipynb. The following structure inside the IPython notebook is added\n\n- The number of '#newpages' in nb['metadata']['number_of_pages']\n- All cells with '#student' set cell['metadata']['#student'] = True, and the line with '#student' is removed\n- We save a list of MD5 checksums of each cell in the notebook metadata: nb['metadata]['checksums']\n\n\n\nInstallation\n------------\n\n::\n\n pip install gsExport\n pip install git+git://github.com/dibyaghosh/gsExport # alternatively\n\nDevelopment\n-----------\n\n- **exporter.py** - contains the main logic for the exporter\n- **utils.py** - contains utilities for importing and exporting\n notebooks\n- **ok\\_grading.py** - contains the OK autograder and export logic\n\nFor those interested in bundling files\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSee **setup.py** for the commands required to install bundled files See\n**utils.py** for the commands required to fetch the bundled files (this\nis actually quite jank right now, because of a weird bug with *Jupyter\nnbConvert* )", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://packages.python.org/gsExport", "keywords": "gradescope jupyter notebook pdf submission latex export", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "gsExport", "package_url": "https://pypi.org/project/gsExport/", "platform": "", "project_url": "https://pypi.org/project/gsExport/", "project_urls": { "Homepage": "http://packages.python.org/gsExport" }, "release_url": "https://pypi.org/project/gsExport/0.19.1.1/", "requires_dist": null, "requires_python": "", "summary": "A set of utilities to expedite submission of jupyter notebooks to Gradescope", "version": "0.19.1.1" }, "last_serial": 4748159, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6d8e70a02245f52d542924bc859e9823", "sha256": "c52fcf1f53660fa0835370369b51cf1cf6af5fccf721dcb08cc451ee6578c18c" }, "downloads": -1, "filename": "gsExport-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6d8e70a02245f52d542924bc859e9823", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4281, "upload_time": "2016-11-07T19:53:43", "url": "https://files.pythonhosted.org/packages/02/b8/1a4bb05bf28c6cda730a4fd4a3edfd2f9653514afe68d58aea2ee815d1b6/gsExport-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "be99d1e2bda27b13ce76503515e7c2f9", "sha256": "07734f0391d8dbec85bcd94cd64df71ac18597c214357e2c6a8271d8a3eb4353" }, "downloads": -1, "filename": "gsExport-0.0.2.tar.gz", "has_sig": false, "md5_digest": "be99d1e2bda27b13ce76503515e7c2f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4456, "upload_time": "2016-12-19T20:10:54", "url": "https://files.pythonhosted.org/packages/a3/bd/4bfef108a1464d4141c7ad658f9559022b3cd0fb1297c1bbee090bca9a83/gsExport-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "9caaa8d7c43f400683ff97c8d7ab7caf", "sha256": "582a185f869916cd2b678daf5891c16d65aa7885f9e5dfe8a83bc9c7d538175d" }, "downloads": -1, "filename": "gsExport-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9caaa8d7c43f400683ff97c8d7ab7caf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4519, "upload_time": "2017-01-13T04:48:48", "url": "https://files.pythonhosted.org/packages/e9/62/817896fc59936c3de407f624d9aae06621eecdcd8e47c92d9156a43db1ff/gsExport-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "0bb7255872535328e951defe37251700", "sha256": "dca4954abdcc2d6b555c2736967014424232b220995f8bc030f1b98e5a0c30e5" }, "downloads": -1, "filename": "gsExport-0.0.4.tar.gz", "has_sig": false, "md5_digest": "0bb7255872535328e951defe37251700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4667, "upload_time": "2017-01-13T21:19:12", "url": "https://files.pythonhosted.org/packages/0b/2a/a763579a70b6a69dfd478fd4379961d0af3a63a0b622244c0bb2133dd451/gsExport-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "7ee78d49af9c9fb90cead1f4ce3807bf", "sha256": "304c571eeb314d28bdfd698aad639aa3f31628f7deca499ab8dbdb4b0b82139a" }, "downloads": -1, "filename": "gsExport-0.0.5.tar.gz", "has_sig": false, "md5_digest": "7ee78d49af9c9fb90cead1f4ce3807bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3730, "upload_time": "2017-01-13T21:30:34", "url": "https://files.pythonhosted.org/packages/7c/d5/037ff4f7626adae0dbc2be6bd1b1b2087dd2bca8ef068becf970ceb8419e/gsExport-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "97b741c040e12e84dde856189f8284f3", "sha256": "4bd8d0cf66c71b5f624fce5d0f47f9130ff54477afb50039471bc85b1bbcad32" }, "downloads": -1, "filename": "gsExport-0.0.6.tar.gz", "has_sig": false, "md5_digest": "97b741c040e12e84dde856189f8284f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4938, "upload_time": "2017-01-23T05:16:47", "url": "https://files.pythonhosted.org/packages/fd/07/f05636a6b280e3e4908e6edc376f18274e4efff654d4c34e88cc360673ad/gsExport-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e4f5f598241099c3da032b2b42853cbc", "sha256": "fcbfcd133e52188a127d31e7c7a614fcc07ed4d93e3a4bfc858d0b4fe6c35b11" }, "downloads": -1, "filename": "gsExport-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e4f5f598241099c3da032b2b42853cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4929, "upload_time": "2017-01-23T05:30:26", "url": "https://files.pythonhosted.org/packages/9a/7d/8c283bb7eeba1c261f3b604e4e64e8f8ab47e375e980aaede7963905ba26/gsExport-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "56da1320db3f754c8f566857b209fe58", "sha256": "ac6228f4013d10ed763d94bbc0c3c02743c4ed839f9e1c0e12052578f391aadc" }, "downloads": -1, "filename": "gsExport-0.0.8.tar.gz", "has_sig": false, "md5_digest": "56da1320db3f754c8f566857b209fe58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5072, "upload_time": "2017-01-23T05:43:21", "url": "https://files.pythonhosted.org/packages/81/d5/f0cbfb44686e8c1409644fdf427b860015a885f6af59f678eef9bea6775a/gsExport-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "977f9ced785db6b9791c21cc50f19386", "sha256": "78a4332fe6fe73db2694039bffddf041379d36da88a763c4fc5cd30ca3ec3bfb" }, "downloads": -1, "filename": "gsExport-0.0.9.tar.gz", "has_sig": false, "md5_digest": "977f9ced785db6b9791c21cc50f19386", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5169, "upload_time": "2017-01-23T05:44:27", "url": "https://files.pythonhosted.org/packages/53/2f/18cb0ecb2827026666e2d05cb9de57f8a1f8d4792b150e88b4fc3fbb0ff9/gsExport-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "aecb0be257be2c512a068dce8fbd9dae", "sha256": "53c250b0723f8c8016c6d997f9300f38bf5760673a85f7b0ecdb3b5e7a1dbaf5" }, "downloads": -1, "filename": "gsExport-0.1.0.tar.gz", "has_sig": false, "md5_digest": "aecb0be257be2c512a068dce8fbd9dae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5477, "upload_time": "2017-01-23T06:19:52", "url": "https://files.pythonhosted.org/packages/3e/34/c85374af2e622ea837515a27e6451743040966a3726a1a5b1c7802b79000/gsExport-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5c135b4f5c5825e5ebdd3b0e7f7dae32", "sha256": "9f8c26d64c272daaea4456a4836f654e4c8134f0ef97c9b5ad99870f90657514" }, "downloads": -1, "filename": "gsExport-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5c135b4f5c5825e5ebdd3b0e7f7dae32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5827, "upload_time": "2017-01-23T07:30:31", "url": "https://files.pythonhosted.org/packages/87/43/dc6021362fd51bb6babc791231919ae93d468ce648bba803d2dc8cab0a7b/gsExport-0.1.1.tar.gz" } ], "0.18.8": [ { "comment_text": "", "digests": { "md5": "65ecdb67fea5c526e3ec4e8d59ef6800", "sha256": "c090ef1a374a87d203307f379957ff9d6bb227d5f586d44dcfe810381226daa6" }, "downloads": -1, "filename": "gsExport-0.18.8.tar.gz", "has_sig": false, "md5_digest": "65ecdb67fea5c526e3ec4e8d59ef6800", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5824, "upload_time": "2018-08-22T16:29:49", "url": "https://files.pythonhosted.org/packages/d9/59/4229176056762439e0ffd5a24cdf85588e384926dd0e85a4c3c8ee99c893/gsExport-0.18.8.tar.gz" } ], "0.18.8.1": [ { "comment_text": "", "digests": { "md5": "27ff85a2f8d0f0b0e8b1470232887472", "sha256": "bbbb4d09c321b1017c2b27a3df3a996398afb16cecd99d5df8827373d30482b5" }, "downloads": -1, "filename": "gsExport-0.18.8.1.tar.gz", "has_sig": false, "md5_digest": "27ff85a2f8d0f0b0e8b1470232887472", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5828, "upload_time": "2018-08-23T20:02:11", "url": "https://files.pythonhosted.org/packages/6f/78/69c726ebb172a472d47074a5d0fc51e2ab04c34cd654a9deea54db7773bb/gsExport-0.18.8.1.tar.gz" } ], "0.19.1.1": [ { "comment_text": "", "digests": { "md5": "2944f632b8da4041d701aea43249a4ff", "sha256": "65037137ab331e88b14c4e5129583d3bd223b7bc536d1e66a105177bce2b7371" }, "downloads": -1, "filename": "gsExport-0.19.1.1.tar.gz", "has_sig": false, "md5_digest": "2944f632b8da4041d701aea43249a4ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5890, "upload_time": "2019-01-28T04:37:20", "url": "https://files.pythonhosted.org/packages/17/29/4ffc5a7de2ae4a9c0f78527281fcc94f6a63f8218df31797d204eb7ff71e/gsExport-0.19.1.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "7867b6c035b273830b0806dbb401a392", "sha256": "35058812edcb80545082b71c4be049d0189b56e6739c383e3017b495e6a00950" }, "downloads": -1, "filename": "gsExport-0.2.2.tar.gz", "has_sig": false, "md5_digest": "7867b6c035b273830b0806dbb401a392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6222, "upload_time": "2017-02-19T23:04:10", "url": "https://files.pythonhosted.org/packages/45/ed/2db017f229a93494ae9b4c32bcbf5107658a2fbec90163576cd9c50d67ce/gsExport-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ac6b76b385990ceacc9c0ff3225c82e4", "sha256": "e48909f41bbb81be24e8d38dc543856ba9a61c4354d045ca8f93fc520a045193" }, "downloads": -1, "filename": "gsExport-0.2.3.tar.gz", "has_sig": false, "md5_digest": "ac6b76b385990ceacc9c0ff3225c82e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6218, "upload_time": "2017-02-19T23:09:13", "url": "https://files.pythonhosted.org/packages/35/9a/c42dc901a62222125d085fe0ab5cb9d6587ac7887530bf5f6c27fcb9d99c/gsExport-0.2.3.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "7f942b4e672a53d07def6dede7f2fdc5", "sha256": "53aff2cdb3472aae28083dc332e726cf2600bfd9f1b3871abf068f758b8164f2" }, "downloads": -1, "filename": "gsExport-0.9.10.tar.gz", "has_sig": false, "md5_digest": "7f942b4e672a53d07def6dede7f2fdc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5808, "upload_time": "2018-01-19T17:34:58", "url": "https://files.pythonhosted.org/packages/15/47/747516232a2f22d3bd90351776659f2945d57be0dd5ecb445dd71e0aff2a/gsExport-0.9.10.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "7ff309b8a79d0e44ddb5a19f5486cad4", "sha256": "2149e58aba1157e69350f9fcdf57049f4958e7dea1db0e4ee211565fb2418771" }, "downloads": -1, "filename": "gsExport-0.9.9.tar.gz", "has_sig": false, "md5_digest": "7ff309b8a79d0e44ddb5a19f5486cad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5853, "upload_time": "2018-01-18T23:38:07", "url": "https://files.pythonhosted.org/packages/9c/da/b22d45aa7f8f2daf57449b8577c5bd9ee0d8389ebf277d99f948b0a8a570/gsExport-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2944f632b8da4041d701aea43249a4ff", "sha256": "65037137ab331e88b14c4e5129583d3bd223b7bc536d1e66a105177bce2b7371" }, "downloads": -1, "filename": "gsExport-0.19.1.1.tar.gz", "has_sig": false, "md5_digest": "2944f632b8da4041d701aea43249a4ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5890, "upload_time": "2019-01-28T04:37:20", "url": "https://files.pythonhosted.org/packages/17/29/4ffc5a7de2ae4a9c0f78527281fcc94f6a63f8218df31797d204eb7ff71e/gsExport-0.19.1.1.tar.gz" } ] }