Literate package development with Jupyter
Project description
Literary
TL;DR
Literary is a Python tool to make Jupyter (IPython) notebooks behave like pure-Python packages. This allows pure-Python packages to be generated from notebooks, and notebooks to be imported at runtime. Literary now bootstraps itself; it is developed with Literary 🤯.
This package is an exploration of the literate programming idea pioneered by
Donald
Knuth and implemented in the
nbdev
package. Although nbdev
looks to be a very
mature and comprehensive tool, it resembles a significant departure from conventional package development. Literary is an
exploration of what a smaller nbdev
might look like.
Philosophy 📖
- Low mental overhead
Realistically, most Python programmers that wish to write packages need to have some familiarity with the Python package development model, including the conventional structure of a package. For this reason, I feel that it is important to designliterary
such that these skills translate directly to designing libraries with notebooks - Minimal downstream impact
Users ofliterary
packages should not realise that they are consuming notebook-generated code at runtime. This means that a pure-Python package needs to be generated from the notebooks, and it must use the conventional import model. For this reason,literary
should only exist as a development dependency of the package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.