Package: thermohw
thermohwHomework assignment converter from Jupyter Notebooks to PDFThis package installs a CLI script to convert Jupyter Notebook homework
assignments to PDF (with and without solutions) and a set of Notebooks
(with and without solutions).Given a directory structure such as.
├── homework
|   ├── homework-1
│   │   ├── homework-1-1.ipynb
│   │   ├── homework-1-2.ipynb
│   │   ├── homework-1-3.ipynb
│   │   ├── homework-1-4.ipynb
│   │   ├── homework-1-5.ipynb
│   │   ├── homework-1-6.ipynb
|   ├── homework-2
│   │   ├── homework-2-1.ipynb
│   │   ├── homework-2-2.ipynb
│   │   ├── homework-2-3.ipynb
│   │   ├── homework-2-4.ipynb
...runningconvert_thermo_hw--hw1will convert all of the.ipynbfiles in thehomework-1directory. You can also specify which
problems should be converted by theproblemsargument, which takes a list of integersconvert_thermo_hw--hw2--problems134would convert problems 1, 3, and 4 inhomework-2.The option--by-handallows certain problems to be marked as the solution should be done out by
handconvert_thermo_hw--hw3--by-hand12would mark problems 1 and 2 inhomework-3as to be done by hand instead of with the code.The output files are placed in a directory calledoutputin thehomework-Ndirectory.Change LogAll notable changes to this project will be documented in this file.The format is based onKeep a Changelogand this project adheres toSemantic Versioning.0.7.1- 2021-JAN-12FixedIPython package is a dependency for its code lexer0.7.0- 2021-JAN-12AddedTheSolutionRemoverpreprocessor now uses cell tags to find the solution and its partsAlegacycommand line argument switches back to the old method of finding the solution based on parsing the source of the cellA test of the new tag-basedSolutionRemoverChangedHighlighted answer cells cannot be deleted in the assignment notebookSupport for Python 3.6 is droppedMoved tosrcdirectory layout and don't include tests with the packageFixedType hinting forresourcesdictionaries in some preprocessorsRemovedRemove exam processing, which didn't work well and wasn't really used0.6.0- 2020-SEP-11AddedOption to clean the output folder can be specified.Test with the latest Python 3.9ChangedChange base template for our template tostyle_jupyterinstead ofstyle_ipython. Has a number of benefits, most notably, line breaking in code cells.FixedFix uploading the Anaconda package0.5.2- 2020-SEP-03ChangedSwitch to GitHub Actions0.5.1- 2020-SEP-03FixedThe version number was incorrect for v0.5.0Tests!0.5.0- 2020-SEP-03AddedAdd ability to process exam files into assignments and solutionsCells that contain the word "Sketch" indicate that they require an image submissionChangedRun Black on all the code filesDelete Pymarkdown variables from the cell metadata to avoid revealing the solutionsMovecombine_pdf_as_bytes()toutils.pyOnly runxelatexon the converted files onceFixedFiles without### part namenow correctly excludes the solutionRemovedTheHomeworkPreprocessorclass was no longer useful, because it was removing things it shouldn't have been0.4.2- 2018-SEP-03AddedTest suite started, with a test of theExtractOutputsPreprocessorthat checks pathological filenamesRun test suite on TravisCIChangedDistribute the LICENSE file with built artifactsFixedFix pathological image filenames that caused URL escaping errors0.4.1- 2018-AUG-30FixedFix spaces in attached image names cause LaTeX to fail0.4.0- 2018-AUG-26Addedraw_html_filterto process raw inline HTML to equivalent LaTeX formsOption to show the solution should be done by hand,--by-handcommand line optionChangedReset all cell executions to be None when a Notebook is processed0.3.1- 2018-AUG-14AddedExpose filter functions fromdiv_filter.pyin__init__.py0.3.0- 2018-AUG-14AddedAdd filter to convertBootstrapalert-*classes to LaTeXtcolorboxes0.2.5- 2018-AUG-03Addedsetup.cfgfile added to configure some metadataAddflake8configuration tosetup.cfgMore keywords tosetupfunction insetup.pyModule docstring for the newpreprocessorsmoduleExport more classes and functions from__init__.pyChangedTheHomeworkPreprocessorandSolnRemoverPreprocessorare moved fromconvert_thermo_hwmodule topreprocessorsmoduleFixedFix some typing errorsRemovedRemove theExtractOutputsPreprocessorwhich is not needed anymore0.2.4- 2018-AUG-03FixedPyPI deploy password for Travis CI must be encrypted with--proflag0.2.3- 2018-AUG-03FixedFix anaconda.org upload token decryption0.2.2- 2018-AUG-03FixedTypo in README.mdConda recipe description was not valid YAML0.2.1- 2018-AUG-03AddedInstallconda-verifyon Travis CIChangedChange Python version dependency inconda.recipe/meta.yamlto be less the 4.0FixedFix accessing Jinja variables inconda.recipe/meta.yamlRemoved0.2.0- 2018-AUG-03AddedAdd Travis CI configurationInclude thehomework.tpltemplate file with the distributionAppropriate classes are now exported in__init__.pyChangedUsePyMarkdownPreprocessorfrom our own module to avoid havingjupyter_contrib_nbextensionsas a dependencySet thebuild_directoryof thePDFExporterFileWriterinstance to prevent writing intermediate files in the local directorySort the list of problems to be processed by problem numberAutomatically write the Notebook outputs to a zip fileAutomatically combine the PDF outputs to a single PDF fileRefactor the processing loop to avoid creating theFilesWriteron every iterationFixedFix warnings about docstringsFix that paths must be resolved to be processedFix typos in docstringsSpecify that thelong_descriptioncontent for PyPI is Markdown formatted0.1.0- 2018-JUL-29AddedConvert Jupyter Notebook to PDF with and without solutionsConvert Jupyter Notebook to a set of Notebooks, with and without solutionsREADME with instructions for use