literary


Nameliterary JSON
Version 4.0.2 PyPI version JSON
download
home_pageNone
SummaryLiterate package development with Jupyter
upload_time2025-08-17 16:52:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseBSD 3-Clause License Copyright (c) 2020, Angus Hollands All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the hist package developers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords jupyter literate-programming nbconvert notebooks
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Literary logo with an orange cursive uppercase L inside black square brackets](https://raw.githubusercontent.com/agoose77/literary/master/assets/logo.png)

# Literary 

[![pypi-badge][]][pypi] [![binder-badge][]][binder] [![wiki-badge][]][wiki] [![gitter-badge][]][gitter] [![nbviewer](https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg)](https://nbviewer.jupyter.org/github/agoose77/literary/tree/master/src/) 

[gitter-badge]: https://badges.gitter.im/literary-nb/literary.svg
[gitter]: https://gitter.im/literary-nb/literary?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[binder-badge]: https://mybinder.org/badge_logo.svg
[binder]:
  https://mybinder.org/v2/gh/agoose77/literary/HEAD?urlpath=lab%2Ftree%2Fexamples
[pypi-badge]: https://img.shields.io/pypi/v/literary
[pypi]: https://pypi.org/project/literary
[wiki-badge]: https://img.shields.io/static/v1?label=wiki&message=read&color=green&logo=github
[wiki]: https://github.com/agoose77/literary/wiki

## 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](https://en.wikipedia.org/wiki/Bootstrapping); it is developed with Literary 🤯.

This package is an exploration of the [literate programming](http://www.literateprogramming.com) idea [pioneered by
 Donald
Knuth](https://www-cs-faculty.stanford.edu/~knuth/lp.html) and implemented in the
 [`nbdev` package](https://github.com/fastai/nbdev). 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.

[the wiki]: https://github.com/agoose77/literary/wiki
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "literary",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "jupyter, literate-programming, nbconvert, notebooks",
    "author": null,
    "author_email": "Angus Hollands <goosey15@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/bc/07/32516d72744ed6e7d5017e87c0b79890634b23fb489ad955748eb9e7121a/literary-4.0.2.tar.gz",
    "platform": null,
    "description": "![Literary logo with an orange cursive uppercase L inside black square brackets](https://raw.githubusercontent.com/agoose77/literary/master/assets/logo.png)\n\n# Literary \n\n[![pypi-badge][]][pypi] [![binder-badge][]][binder] [![wiki-badge][]][wiki] [![gitter-badge][]][gitter] [![nbviewer](https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg)](https://nbviewer.jupyter.org/github/agoose77/literary/tree/master/src/) \n\n[gitter-badge]: https://badges.gitter.im/literary-nb/literary.svg\n[gitter]: https://gitter.im/literary-nb/literary?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[binder-badge]: https://mybinder.org/badge_logo.svg\n[binder]:\n  https://mybinder.org/v2/gh/agoose77/literary/HEAD?urlpath=lab%2Ftree%2Fexamples\n[pypi-badge]: https://img.shields.io/pypi/v/literary\n[pypi]: https://pypi.org/project/literary\n[wiki-badge]: https://img.shields.io/static/v1?label=wiki&message=read&color=green&logo=github\n[wiki]: https://github.com/agoose77/literary/wiki\n\n## TL;DR\n> [!Info]\n> To get started, see [the wiki]\n\nLiterary 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](https://en.wikipedia.org/wiki/Bootstrapping); it is developed with Literary \ud83e\udd2f.\n\nThis package is an exploration of the [literate programming](http://www.literateprogramming.com) idea [pioneered by\n Donald\nKnuth](https://www-cs-faculty.stanford.edu/~knuth/lp.html) and implemented in the\n [`nbdev` package](https://github.com/fastai/nbdev). Although `nbdev` looks to be a very\nmature and comprehensive tool, it resembles a significant departure from conventional package development. Literary is an\nexploration of what a smaller `nbdev` might look like.\n\n## Philosophy \ud83d\udcd6\n1. **Low mental overhead**   \n Realistically, most Python programmers that wish to write packages need to have some\n familiarity with the Python package development model, including the conventional\nstructure of a package. For this reason, I feel that it is important to design\n`literary` such that these skills translate directly to designing libraries with\nnotebooks\n2. **Minimal downstream impact**  \n Users of `literary` packages should not realise that they are consuming \n notebook-generated code at runtime. This means that a pure-Python package needs to\n be generated from the notebooks, and it must use the conventional import model. For\n this reason, `literary` should only exist as a development dependency of\n the package.\n\n[the wiki]: https://github.com/agoose77/literary/wiki",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License\n        \n        Copyright (c) 2020, Angus Hollands\n        All rights reserved.\n        \n        Redistribution and use in source and binary forms, with or without\n        modification, are permitted provided that the following conditions are met:\n        \n        * Redistributions of source code must retain the above copyright notice, this\n          list of conditions and the following disclaimer.\n        \n        * Redistributions in binary form must reproduce the above copyright notice,\n          this list of conditions and the following disclaimer in the documentation\n          and/or other materials provided with the distribution.\n        \n        * Neither the name of the hist package developers nor the names of its\n          contributors may be used to endorse or promote products derived from\n          this software without specific prior written permission.\n        \n        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "Literate package development with Jupyter",
    "version": "4.0.2",
    "project_urls": {
        "Bug Tracker": "http://github.com/agoose77/literary/issues",
        "Repository": "http://github.com/agoose77/literary"
    },
    "split_keywords": [
        "jupyter",
        " literate-programming",
        " nbconvert",
        " notebooks"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be27742bdd2cae44593c70fe1269a970c969a78d8f7cd86087ce975b1d78deaf",
                "md5": "d69107f1efc793b0134cc65a81eee180",
                "sha256": "4da83483b9b13e8cc1cdb580228446d9cffeeb60b865b44d81c329b6ecbd6d02"
            },
            "downloads": -1,
            "filename": "literary-4.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d69107f1efc793b0134cc65a81eee180",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 19555,
            "upload_time": "2025-08-17T16:52:46",
            "upload_time_iso_8601": "2025-08-17T16:52:46.096052Z",
            "url": "https://files.pythonhosted.org/packages/be/27/742bdd2cae44593c70fe1269a970c969a78d8f7cd86087ce975b1d78deaf/literary-4.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc0732516d72744ed6e7d5017e87c0b79890634b23fb489ad955748eb9e7121a",
                "md5": "bbdd9065a12ccabcbaf5907d522e7cdc",
                "sha256": "ef1333b4d09ba53c22a2c4cb7cc2bb22d7139446a633af06304c3df6a71dfd72"
            },
            "downloads": -1,
            "filename": "literary-4.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "bbdd9065a12ccabcbaf5907d522e7cdc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 758603,
            "upload_time": "2025-08-17T16:52:47",
            "upload_time_iso_8601": "2025-08-17T16:52:47.371780Z",
            "url": "https://files.pythonhosted.org/packages/bc/07/32516d72744ed6e7d5017e87c0b79890634b23fb489ad955748eb9e7121a/literary-4.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-17 16:52:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "agoose77",
    "github_project": "literary",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "literary"
}
        
Elapsed time: 0.61244s