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

[!Info] To get started, see the wiki

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-4.0.2.tar.gz (758.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

literary-4.0.2-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: literary-4.0.2.tar.gz
  • Upload date:
  • Size: 758.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for literary-4.0.2.tar.gz
Algorithm Hash digest
SHA256 ef1333b4d09ba53c22a2c4cb7cc2bb22d7139446a633af06304c3df6a71dfd72
MD5 bbdd9065a12ccabcbaf5907d522e7cdc
BLAKE2b-256 bc0732516d72744ed6e7d5017e87c0b79890634b23fb489ad955748eb9e7121a

See more details on using hashes here.

Provenance

The following attestation bundles were made for literary-4.0.2.tar.gz:

Publisher: ci-cd.yml on agoose77/literary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: literary-4.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for literary-4.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4da83483b9b13e8cc1cdb580228446d9cffeeb60b865b44d81c329b6ecbd6d02
MD5 d69107f1efc793b0134cc65a81eee180
BLAKE2b-256 be27742bdd2cae44593c70fe1269a970c969a78d8f7cd86087ce975b1d78deaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for literary-4.0.2-py3-none-any.whl:

Publisher: ci-cd.yml on agoose77/literary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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