Skip to main content

Literate package development with Jupyter

Project description

Literary logo with an orange cursive uppercase L inside black square brackets

Literary

pypi-badge binder-badge wiki-badge gitter-badge nbviewer

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 📖

  1. 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 design literary such that these skills translate directly to designing libraries with notebooks
  2. Minimal downstream impact
    Users of literary 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


Download files

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

Source Distribution

literary-1.9.2.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

literary-1.9.2-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file literary-1.9.2.tar.gz.

File metadata

  • Download URL: literary-1.9.2.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for literary-1.9.2.tar.gz
Algorithm Hash digest
SHA256 7cdd1be422c0bec69c9603f763b6e98e4d4d531bc24b142d97065c269646572c
MD5 6b32befc0174a077203626ba2fcd9032
BLAKE2b-256 d3374390763a747b1571b0f59b348cf9218e74da972228553672963077731a37

See more details on using hashes here.

File details

Details for the file literary-1.9.2-py3-none-any.whl.

File metadata

  • Download URL: literary-1.9.2-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for literary-1.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e0df7a362398e9693364a06d731fbb0af73d51c9ac577be3290cf3ce83bdd4c8
MD5 dd3da18e8e6960f38316944ac7883f48
BLAKE2b-256 7cd72500c8f97ce4030730d22c2bf95fd64cdc121a3696bb6a957ff8d2b07092

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page