Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Package for converting thermo homework assignments

Project description


Homework assignment converter from Jupyter Notebooks to PDF

This 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


convert_thermo_hw --hw 1

will convert all of the .ipynb files in the homework-1 directory. You can also specify which problems should be converted by the problems argument, which takes a list of integers

convert_thermo_hw --hw 2 --problems 1 3 4

would convert problems 1, 3, and 4 in homework-2.

The option --by-hand allows certain problems to be marked as the solution should be done out by hand

convert_thermo_hw --hw 3 --by-hand 1 2

would mark problems 1 and 2 in homework-3 as to be done by hand instead of with the code.

The output files are placed in a directory called output in the homework-N directory.

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.4.2 - 2018-SEP-03


  • Test suite started, with a test of the ExtractOutputsPreprocessor that checks pathological filenames
  • Run test suite on TravisCI


  • Distribute the LICENSE file with built artifacts


  • Fix pathological image filenames that caused URL escaping errors

0.4.1 - 2018-AUG-30


  • Fix spaces in attached image names cause LaTeX to fail

0.4.0 - 2018-AUG-26


  • raw_html_filter to process raw inline HTML to equivalent LaTeX forms
  • Option to show the solution should be done by hand, --by-hand command line option


  • Reset all cell executions to be None when a Notebook is processed

0.3.1 - 2018-AUG-14


  • Expose filter functions from in

0.3.0 - 2018-AUG-14


0.2.5 - 2018-AUG-03


  • setup.cfg file added to configure some metadata
  • Add flake8 configuration to setup.cfg
  • More keywords to setup function in
  • Module docstring for the new preprocessors module
  • Export more classes and functions from


  • The HomeworkPreprocessor and SolnRemoverPreprocessor are moved from convert_thermo_hw module to preprocessors module


  • Fix some typing errors


  • Remove the ExtractOutputsPreprocessor which is not needed anymore

0.2.4 - 2018-AUG-03


  • PyPI deploy password for Travis CI must be encrypted with --pro flag

0.2.3 - 2018-AUG-03


  • Fix upload token decryption

0.2.2 - 2018-AUG-03


  • Typo in
  • Conda recipe description was not valid YAML

0.2.1 - 2018-AUG-03


  • Install conda-verify on Travis CI


  • Change Python version dependency in conda.recipe/meta.yaml to be less the 4.0


  • Fix accessing Jinja variables in conda.recipe/meta.yaml


0.2.0 - 2018-AUG-03


  • Add Travis CI configuration
  • Include the homework.tpl template file with the distribution
  • Appropriate classes are now exported in


  • Use PyMarkdownPreprocessor from our own module to avoid having jupyter_contrib_nbextensions as a dependency
  • Set the build_directory of the PDFExporter FileWriter instance to prevent writing intermediate files in the local directory
  • Sort the list of problems to be processed by problem number
  • Automatically write the Notebook outputs to a zip file
  • Automatically combine the PDF outputs to a single PDF file
  • Refactor the processing loop to avoid creating the FilesWriter on every iteration


  • Fix warnings about docstrings
  • Fix that paths must be resolved to be processed
  • Fix typos in docstrings
  • Specify that the long_description content for PyPI is Markdown formatted

0.1.0 - 2018-JUL-29


  • Convert Jupyter Notebook to PDF with and without solutions
  • Convert Jupyter Notebook to a set of Notebooks, with and without solutions
  • README with instructions for use

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for thermohw, version 0.4.2
Filename, size File type Python version Upload date Hashes
Filename, size thermohw-0.4.2-py3-none-any.whl (18.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size thermohw-0.4.2.tar.gz (13.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page