{ "info": { "author": "Edward Banner", "author_email": "edward.banner@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: MacOS X", "Framework :: IPython", "Framework :: Jupyter", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Programming Language :: Python :: 3.6", "Topic :: Education", "Topic :: Software Development", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Debuggers", "Topic :: Software Development :: Documentation", "Topic :: Text Editors", "Topic :: Text Editors :: Emacs", "Topic :: Text Editors :: Integrated Development Environments (IDE)" ], "description": "PYNT (PYthon iNTeractive)\n=========================\n\nGet your code into a jupyter notebook. Anytime. Anywhere.\n\nCheck out my `SciPy 2018 talk `__ for the\nmotivation and a feature tour of pynt.\n\n|MELPA| |PyPI version| |Built with Spacemacs|\n\nFeatures\n--------\n\nGenerate jupyter notebooks on the fly\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNo more copy and pasting code into jupyter notebooks. Each line of code\ngets its own cell.\n\n.. figure:: https://github.com/ebanner/pynt-assets/blob/master/gif/generate-notebook.gif\n :alt: Alt Text\n\n Alt Text\n\nAttach a jupyter notebook to a running process\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRun a command which hits the code in the notebook. Restart the notebook\nkernel to attach to that process.\n\n.. figure:: https://github.com/ebanner/pynt-assets/blob/master/gif/attach%20notebook.gif\n :alt: Alt Text\n\n Alt Text\n\nSyntax transformations\n~~~~~~~~~~~~~~~~~~~~~~\n\nUnroll the first pass of loops for increased interactivity.\n\n.. figure:: https://github.com/ebanner/pynt-assets/blob/master/gif/loop%20unrolling.gif\n :alt: Alt Text\n\n Alt Text\n\nScroll the resulting jupyter notebook with the code buffer\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNever forget which cell a code line corresponds to.\n\n.. figure:: https://github.com/ebanner/pynt-assets/blob/master/gif/scroll-notebook.gif\n :alt: Alt Text\n\n Alt Text\n\nQuick Start\n-----------\n\n*Disclaimer: pynt is in beta. Make sure to back-up your code before\nusing it!*\n\nInstall the codebook module `from\nPyPI `__ with\n`pip `__.\n\n::\n\n $ pip install codebook \n\nThen install pynt in emacs through `MELPA `__.\n\n::\n\n M-x package-install RET pynt\n\nThe next time you visit a python file pynt mode will be active.\n\nWhat is pynt?\n-------------\n\npynt is an emacs minor mode for getting source code into jupyter\nnotebooks so you can hack on it there. If you have access to source code\nand a command to call it with then you can get your code into a jupyter\nnotebook.\n\nHowever, just pasting your code into one big jupyter notebook cell is\nnot particularly useful. pynt also\n\n- splits up code into cells so it\u2019s easy to evaluate small bits\n- sets up the state required to run code (by allowing you to attach\n notebooks to external processes)\n- takes code previously buried in various namespaces (e.g.\u00a0functions\n and loops) and exposes them to the global namespace so you can\n interact with them\n\nUsing pynt\n----------\n\nIt is highly recommended that you familiarize yourself with `Emacs\nIPython Notebook\n(EIN) `__ first as\npynt, at its core, is a tool to make working with EIN easier.\n\nOnce you have opened a python file and pynt mode is active, cursor over\nto the region of code you would like to dump into a notebook and hit\n``C-c C-s``. If you need to \u201cre-dump\u201d the code into the notebook then\nhit ``C-c C-e``.\n\nIf you want to attach a jupyter notebook to a running process, then run\na command which hits the jupyter notebook code. Restart the jupyter\nnotebook kernel with ``C-c C-r``\n(``ein:notebook-restart-kernel-command``). When you see the message\n``ein: [info] Starting channels WS: ...`` your notebook is attached!\n\nHow pynt works\n--------------\n\npynt uses a `custom kernel\nmanager `__ for attaching to jupyter\nnotebook kernels started via third-party processes. When pynt generates\na jupyter notebook from a code region that code region is replaced with\na IPython kernel breakpoint so that subsequent commands that hit it will\nstart a jupyter kernel for the notebook to attach to. See\n`here `__\nfor more information.\n\npynt also makes heavy use of the\n```ast`` `__ module to parse\nyour code into chunks which are then dumped into notebook cells.\n\nRelated Projects\n----------------\n\npynt is a tool that truly `stands on the shoulders of\ngiants `__.\nHere are some projects where if they had not existed, then pynt would\nnot have been possible.\n\n- `Jupyter `__\n\n - `Emacs IPython\n Notebook `__\n\n- `Emacs `__\n\n - `Spacemacs `__\n\n- `Python `__\n- `SLIME `__\n\n - `vim-slime `__\n\n.. |MELPA| image:: https://melpa.org/packages/pynt-badge.svg\n :target: https://melpa.org/#/pynt\n.. |PyPI version| image:: https://badge.fury.io/py/codebook.svg\n :target: https://badge.fury.io/py/codebook\n.. |Built with Spacemacs| image:: https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg\n :target: http://spacemacs.org\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/ebanner/pynt", "keywords": "interactive programming jupyter ipython emacs", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "codebook", "package_url": "https://pypi.org/project/codebook/", "platform": "", "project_url": "https://pypi.org/project/codebook/", "project_urls": { "Homepage": "http://github.com/ebanner/pynt" }, "release_url": "https://pypi.org/project/codebook/1.2.2/", "requires_dist": null, "requires_python": "", "summary": "Emacs minor mode for generating and interacting with jupyter notebooks", "version": "1.2.2" }, "last_serial": 4097403, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "422c454aad414a5f581bc63f3ddc7f13", "sha256": "c4d52262e9b37ac5dd85ec54879f8971878b45cb8b08f9a38b920277d6f8e35c" }, "downloads": -1, "filename": "codebook-1.0.0.tar.gz", "has_sig": false, "md5_digest": "422c454aad414a5f581bc63f3ddc7f13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10150, "upload_time": "2018-02-28T01:57:09", "url": "https://files.pythonhosted.org/packages/fe/19/26854bf05cc24ada300eb71059c77fdb07733099a5b95dee5c7c9587cf69/codebook-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "f6db55b987c437b54cf20b0e1a2b60c7", "sha256": "1102c4ba41d924781778e10fffa223ae678c74d7f4516761af2d85bb407c4a11" }, "downloads": -1, "filename": "codebook-1.1.0.tar.gz", "has_sig": false, "md5_digest": "f6db55b987c437b54cf20b0e1a2b60c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13286, "upload_time": "2018-03-01T01:20:57", "url": "https://files.pythonhosted.org/packages/6f/28/4cd8ada9cc9c76c827eb748920f8b44a61dde8013d80b96aa35d073e0825/codebook-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "bf38e4b1165dfe4b931ac672e80165c9", "sha256": "071822e3832220f70857b9c2b8ba53c719706df71781b4cb74d51835f665d1aa" }, "downloads": -1, "filename": "codebook-1.2.0.tar.gz", "has_sig": false, "md5_digest": "bf38e4b1165dfe4b931ac672e80165c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14860, "upload_time": "2018-04-01T04:15:12", "url": "https://files.pythonhosted.org/packages/7a/44/d137250de95428d059a8562fd952fb10f4a2f49a14856e1346a07ea4760d/codebook-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "02c87a27db0db0e6ecb0fc9a0f842cd0", "sha256": "05d779a8c1422d05cc79f70b27309f3c45b3fc1596772c8dc76b81389aaeda2f" }, "downloads": -1, "filename": "codebook-1.2.1.tar.gz", "has_sig": false, "md5_digest": "02c87a27db0db0e6ecb0fc9a0f842cd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14708, "upload_time": "2018-04-01T04:16:20", "url": "https://files.pythonhosted.org/packages/71/91/e8b16e0898a6532ff7eea9cafd16948deae162212b2e181a11b51393e50e/codebook-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "3598d700d49d17aea13a9efa11e139b0", "sha256": "7330bfc27a525ad11e0acfc6ff2335791912c9d2f899b00f2500fb6df6376c9b" }, "downloads": -1, "filename": "codebook-1.2.2.tar.gz", "has_sig": false, "md5_digest": "3598d700d49d17aea13a9efa11e139b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15105, "upload_time": "2018-07-24T15:20:54", "url": "https://files.pythonhosted.org/packages/58/e1/cb47797f23769bc26a78f5d990ead1d5e431a47bf3803240900b6d79efe7/codebook-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3598d700d49d17aea13a9efa11e139b0", "sha256": "7330bfc27a525ad11e0acfc6ff2335791912c9d2f899b00f2500fb6df6376c9b" }, "downloads": -1, "filename": "codebook-1.2.2.tar.gz", "has_sig": false, "md5_digest": "3598d700d49d17aea13a9efa11e139b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15105, "upload_time": "2018-07-24T15:20:54", "url": "https://files.pythonhosted.org/packages/58/e1/cb47797f23769bc26a78f5d990ead1d5e431a47bf3803240900b6d79efe7/codebook-1.2.2.tar.gz" } ] }