The goal of this project is to consolidate all of the information together under a single location.
Create a new website using Hugo’s scientific python theme (see #2639). This should contain the same content as the current version of pybamm.org (the pybamm.org URL will be reassigned to this page)
Link docs.pybamm.org to our readthedocs API docs and user guide (it might make sense to move the user guide out)
Move information from this wiki page to the website
Use nbconvert (or other) to run and display static versions of the jupyter notebooks on the website; also use nbstripout to clear the output of notebooks in version control
As a stretch goal, the student will be expected to survey other popular python packages for ideas on how to improve our documentation infrastructure. Some ideas are:
Using sphinxcontrib-bibtex to print references from bibtex instead of hardcoding them in docstrings as we currently do
Dependency trees
In the API docs, link to examples where various functionality is used (scikit-learn)
Note that the focus of this project is not on writing documentation but on improving the infrastructure around it.
While PyBaMM goes deep into advanced models of batteries, much can be done with simpler “back-of-the-envelope” calculations for the capacity, energy, mass, and cost of a battery. The goal of this project will be to create a library for techno-economic analysis that can be combined with existing PyBaMM functionality. This project will draw inspiration from existing libraries (https://github.com/mjlacey/cellmodels, https://github.com/ndrewwang/BotB). See those repositories for more detail on what the outcome might look like.
Dockerizing and simplifying PyBaMM’s installation#
PyBaMM currently has multiple required and optional dependencies, but the installation process for some of them is not straightforward. PyBaMM depends on tox to unify the installation process at the moment, but Dockerizing the process (without removing the tox dependency) will make it uniform for every platform and developer. The goal of this project would be to make PyBaMM’s developer installation, with optional as well as default dependencies, a breeze. Ideally, in the end, developers will be able to install PyBaMM (with specific dependencies chosen by them) using a single command.