dj-notebook


Namedj-notebook JSON
Version 0.7.0 PyPI version JSON
download
home_page
SummaryDjango + shell_plus + Jupyter notebooks made easy
upload_time2024-03-02 09:27:05
maintainer
docs_urlNone
author
requires_python
licenseGNU General Public License v3
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <a href="https://dj-notebook.readthedocs.io"><img src="https://dj-notebook.readthedocs.io/en/latest/img/dj-notebook-logo.png" alt="dj-notebook"></a>
</p>

Django + shell_plus + Jupyter notebooks made easy

---

A Jupyter notebook with access to objects from the Django ORM is a powerful tool to introspect data and run ad-hoc queries. 

Full documentation available at [dj-notebook](https://dj-notebook.readthedocs.io/)

---

## Features

The ever-growing list of features:

- Easy Jupyter notebooks with Django
- Built-in integration with the imported objects from django-extensions `shell_plus`
- Saves the state between sessions so you don't need to remember what you did
- Inheritance diagrams on any object, including ORM models
- Converts any Django QuerySet to Pandas Dataframe
- Handy function for displaying MermaidJS charts 
- Generates visual maps of model relations
- Works in the browser, VSCode, PyCharm, Emacs, Vim, and more!

## Installation

Use your installation tool of choice, here we use venv and pip:

```bash
python -m venv venv
source venv/bin/activate
pip install dj_notebook
```

## Usage

First, find your project's `manage.py` file and open it. Copy whatever is being set to `DJANGO_SETTINGS_MODULE` into your clipboard.

Create an ipython notebook in the same directory as `manage.py`, or another directory of your choosing. In VSCode,
simply add a new `.ipynb` file. If using Jupyter Lab, use the `File -> New ->
Notebook` menu option.

Then in the first cell enter:

```python
from dj_notebook import activate

plus = activate()

# If you have created your notebook in a different directory, instead do:
# plus = activate(search_dir="/path/to/your/project")

# If that throws an error, try one of the following:

# DJANGO_SETTINGS_MODULE_VALUE aka "book_store.settings"
# plus = activate("DJANGO_SETTINGS_MODULE_VALUE")

# Point to location of dotenv file with Django settings
# plus = activate(dotenv_file='.env')
```

In future cells, you can now load and run Django objects, including the ORM. This three line snippet should give an idea of what you can now do:

```python
from django.contrib.auth import get_user_model
User = get_user_model()
User.objects.all()
```

## Usage Plus

But wait, it gets better!

When you activated the Django environment, you instantiated a variable called 'plus'. The 'plus' variable  is an object that contains everything loaded from django-extensions' `shell_plus`. Here's a demonstration, try running this snippet:

```python
plus.User.objects.all()
```

We also provide a utility for introspection of classes, which can be useful in sophisticated project architectures. Running this code in a Jupyter notebook shell:

```python
plus.diagram(plus.User)
```

Generates this image

<img src="https://mermaid.ink/img/Y2xhc3NEaWFncmFtCiAgY2xhc3MgZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfVXNlclsiZGphbmdvLmNvbnRyaWIuYXV0aC5tb2RlbHM6OlVzZXIiXQogIGRqYW5nb19kYl9tb2RlbHNfdXRpbHNfQWx0ZXJzRGF0YSA8fC0tIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbAogIGNsYXNzIGRqYW5nb19kYl9tb2RlbHNfdXRpbHNfQWx0ZXJzRGF0YVsiZGphbmdvLmRiLm1vZGVscy51dGlsczo6QWx0ZXJzRGF0YSJdCiAgZGphbmdvX2NvbnRyaWJfYXV0aF9iYXNlX3VzZXJfQWJzdHJhY3RCYXNlVXNlciA8fC0tIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX0Fic3RyYWN0VXNlcgogIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX1Blcm1pc3Npb25zTWl4aW4gPHwtLSBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19BYnN0cmFjdFVzZXIKICBjbGFzcyBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19BYnN0cmFjdFVzZXJbImRqYW5nby5jb250cmliLmF1dGgubW9kZWxzOjpBYnN0cmFjdFVzZXIiXQogIGNsYXNzIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbFsiZGphbmdvLmRiLm1vZGVscy5iYXNlOjpNb2RlbCJdCiAgY2xhc3MgZGphbmdvX2NvbnRyaWJfYXV0aF9iYXNlX3VzZXJfQWJzdHJhY3RCYXNlVXNlclsiZGphbmdvLmNvbnRyaWIuYXV0aC5iYXNlX3VzZXI6OkFic3RyYWN0QmFzZVVzZXIiXQogIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbCA8fC0tIGRqYW5nb19jb250cmliX2F1dGhfYmFzZV91c2VyX0Fic3RyYWN0QmFzZVVzZXIKICBkamFuZ29fZGJfbW9kZWxzX2Jhc2VfTW9kZWwgPHwtLSBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19QZXJtaXNzaW9uc01peGluCiAgZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfQWJzdHJhY3RVc2VyIDx8LS0gZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfVXNlcgogIGNsYXNzIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX1Blcm1pc3Npb25zTWl4aW5bImRqYW5nby5jb250cmliLmF1dGgubW9kZWxzOjpQZXJtaXNzaW9uc01peGluIl0="/>

Here's another useful diagram:

```python
plus.model_graph(plus.User)
```

<image src="https://mermaid.ink/img/Zmxvd2NoYXJ0IFRECiAgTG9nRW50cnkgLS0tIFVzZXIKICBVc2VyIC0tLSBBYnN0cmFjdFVzZXIKICBVc2VyIC0tLSBHcm91cAogIFVzZXIgLS0tIFBlcm1pc3Npb24K"/>

## QuerySet to Dataframe

Want to convert a Django query to a Pandas Dataframe? We got you covered.

```python
plus.read_frame(plus.User.objects.all())
```

## More things you can do!

[dj-notebook official documentation](https://dj-notebook.readthedocs.io/)


## Contributors

<!-- readme: contributors -start -->
<table>
<tr>
    <td align="center">
        <a href="https://github.com/pydanny">
            <img src="https://avatars.githubusercontent.com/u/62857?v=4" width="100;" alt="pydanny"/>
            <br />
            <sub><b>Daniel Roy Greenfeld</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/skyforest">
            <img src="https://avatars.githubusercontent.com/u/13559970?v=4" width="100;" alt="skyforest"/>
            <br />
            <sub><b>Cody Antunez</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/geoffbeier">
            <img src="https://avatars.githubusercontent.com/u/133355?v=4" width="100;" alt="geoffbeier"/>
            <br />
            <sub><b>Geoff Beier</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/nmpowell">
            <img src="https://avatars.githubusercontent.com/u/184579?v=4" width="100;" alt="nmpowell"/>
            <br />
            <sub><b>Nick Powell</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/specbeck">
            <img src="https://avatars.githubusercontent.com/u/98754084?v=4" width="100;" alt="specbeck"/>
            <br />
            <sub><b>Saransh Sood</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/anna-zhydko">
            <img src="https://avatars.githubusercontent.com/u/68199135?v=4" width="100;" alt="anna-zhydko"/>
            <br />
            <sub><b>Anna Zhydko</b></sub>
        </a>
    </td></tr>
<tr>
    <td align="center">
        <a href="https://github.com/Tejoooo">
            <img src="https://avatars.githubusercontent.com/u/112956566?v=4" width="100;" alt="Tejoooo"/>
            <br />
            <sub><b>Tejo Kaushal</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/bloodearnest">
            <img src="https://avatars.githubusercontent.com/u/1042?v=4" width="100;" alt="bloodearnest"/>
            <br />
            <sub><b>Simon Davy</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/akashverma0786">
            <img src="https://avatars.githubusercontent.com/u/138790903?v=4" width="100;" alt="akashverma0786"/>
            <br />
            <sub><b>Null</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/DaveParr">
            <img src="https://avatars.githubusercontent.com/u/8363743?v=4" width="100;" alt="DaveParr"/>
            <br />
            <sub><b>Dave Parr</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/syyong">
            <img src="https://avatars.githubusercontent.com/u/12908907?v=4" width="100;" alt="syyong"/>
            <br />
            <sub><b>Siew-Yit Yong</b></sub>
        </a>
    </td></tr>
</table>
<!-- readme: contributors -end -->

## Special thanks

These are people who aren't in our formal git history but should be.

- [Tom Preston](https://github.com/prestto) did seminal work on Python paths that later became the foundation of dj-notebook
- [Evie Clutton](https://github.com/evieclutton) was co-author of a pull request and they don't show up in the contributor  list above
- [Tim Schilling](https://github.com/tim-schilling) assisted with the `model_graph` method
- [Charlie Denton](https://github.com/meshy) is responsible for django-schema-graph, which we leverage as part of the `model_graph` feature
- [Christopher Clarke](https://github.com/chrisdev) built `django-pandas`, which dj-notebook uses
- [Stephen Moore](https://github.com/delfick) for some early work done on the internals of dj-notebook before it was open sourced.
- [django-extensions](django-extensions) for providing so many useful tools over the years, and being one of the backbones of this project

<!-- readme: prestto,evieclutton,tim-schilling,meshy,chrisdev,delfick,django-extensions -start -->
<table>
<tr>
    <td align="center">
        <a href="https://github.com/prestto">
            <img src="https://avatars.githubusercontent.com/u/13559801?v=4" width="100;" alt="prestto"/>
            <br />
            <sub><b>Tom Preston</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/evieclutton">
            <img src="https://avatars.githubusercontent.com/u/44432176?v=4" width="100;" alt="evieclutton"/>
            <br />
            <sub><b>Null</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/tim-schilling">
            <img src="https://avatars.githubusercontent.com/u/1281215?v=4" width="100;" alt="tim-schilling"/>
            <br />
            <sub><b>Tim Schilling</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/meshy">
            <img src="https://avatars.githubusercontent.com/u/767671?v=4" width="100;" alt="meshy"/>
            <br />
            <sub><b>Charlie Denton</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/chrisdev">
            <img src="https://avatars.githubusercontent.com/u/701689?v=4" width="100;" alt="chrisdev"/>
            <br />
            <sub><b>Christopher  Clarke</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/delfick">
            <img src="https://avatars.githubusercontent.com/u/109301?v=4" width="100;" alt="delfick"/>
            <br />
            <sub><b>Stephen Moore</b></sub>
        </a>
    </td></tr>
<tr>
    <td align="center">
        <a href="https://github.com/django-extensions">
            <img src="https://avatars.githubusercontent.com/u/65559?v=4" width="100;" alt="django-extensions"/>
            <br />
            <sub><b>Django Extensions</b></sub>
        </a>
    </td></tr>
</table>
<!-- readme: prestto,evieclutton,tim-schilling,meshy,chrisdev,delfick,django-extensions -end -->

## Construction

This package was created with [Cookiecutter](https://github.com/cookiecutter/cookiecutter) and the [simplicity](https://github.com/pydanny/simplicity) project template.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "dj-notebook",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "Daniel Roy Greenfeld <daniel@feldroy.com>, Anna Zhydko <anna.zhydko@krakentechnologies.ltd>",
    "keywords": "",
    "author": "",
    "author_email": "Daniel Roy Greenfeld <daniel@feldroy.com>, Anna Zhydko <anna.zhydko@krakentechnologies.ltd>",
    "download_url": "https://files.pythonhosted.org/packages/b7/39/5b4d4a775d0583d8f38d401563aa571a45f203ad23ba69a40d872ce6ae36/dj_notebook-0.7.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <a href=\"https://dj-notebook.readthedocs.io\"><img src=\"https://dj-notebook.readthedocs.io/en/latest/img/dj-notebook-logo.png\" alt=\"dj-notebook\"></a>\n</p>\n\nDjango + shell_plus + Jupyter notebooks made easy\n\n---\n\nA Jupyter notebook with access to objects from the Django ORM is a powerful tool to introspect data and run ad-hoc queries. \n\nFull documentation available at [dj-notebook](https://dj-notebook.readthedocs.io/)\n\n---\n\n## Features\n\nThe ever-growing list of features:\n\n- Easy Jupyter notebooks with Django\n- Built-in integration with the imported objects from django-extensions `shell_plus`\n- Saves the state between sessions so you don't need to remember what you did\n- Inheritance diagrams on any object, including ORM models\n- Converts any Django QuerySet to Pandas Dataframe\n- Handy function for displaying MermaidJS charts \n- Generates visual maps of model relations\n- Works in the browser, VSCode, PyCharm, Emacs, Vim, and more!\n\n## Installation\n\nUse your installation tool of choice, here we use venv and pip:\n\n```bash\npython -m venv venv\nsource venv/bin/activate\npip install dj_notebook\n```\n\n## Usage\n\nFirst, find your project's `manage.py` file and open it. Copy whatever is being set to `DJANGO_SETTINGS_MODULE` into your clipboard.\n\nCreate an ipython notebook in the same directory as `manage.py`, or another directory of your choosing. In VSCode,\nsimply add a new `.ipynb` file. If using Jupyter Lab, use the `File -> New ->\nNotebook` menu option.\n\nThen in the first cell enter:\n\n```python\nfrom dj_notebook import activate\n\nplus = activate()\n\n# If you have created your notebook in a different directory, instead do:\n# plus = activate(search_dir=\"/path/to/your/project\")\n\n# If that throws an error, try one of the following:\n\n# DJANGO_SETTINGS_MODULE_VALUE aka \"book_store.settings\"\n# plus = activate(\"DJANGO_SETTINGS_MODULE_VALUE\")\n\n# Point to location of dotenv file with Django settings\n# plus = activate(dotenv_file='.env')\n```\n\nIn future cells, you can now load and run Django objects, including the ORM. This three line snippet should give an idea of what you can now do:\n\n```python\nfrom django.contrib.auth import get_user_model\nUser = get_user_model()\nUser.objects.all()\n```\n\n## Usage Plus\n\nBut wait, it gets better!\n\nWhen you activated the Django environment, you instantiated a variable called 'plus'. The 'plus' variable  is an object that contains everything loaded from django-extensions' `shell_plus`. Here's a demonstration, try running this snippet:\n\n```python\nplus.User.objects.all()\n```\n\nWe also provide a utility for introspection of classes, which can be useful in sophisticated project architectures. Running this code in a Jupyter notebook shell:\n\n```python\nplus.diagram(plus.User)\n```\n\nGenerates this image\n\n<img src=\"https://mermaid.ink/img/Y2xhc3NEaWFncmFtCiAgY2xhc3MgZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfVXNlclsiZGphbmdvLmNvbnRyaWIuYXV0aC5tb2RlbHM6OlVzZXIiXQogIGRqYW5nb19kYl9tb2RlbHNfdXRpbHNfQWx0ZXJzRGF0YSA8fC0tIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbAogIGNsYXNzIGRqYW5nb19kYl9tb2RlbHNfdXRpbHNfQWx0ZXJzRGF0YVsiZGphbmdvLmRiLm1vZGVscy51dGlsczo6QWx0ZXJzRGF0YSJdCiAgZGphbmdvX2NvbnRyaWJfYXV0aF9iYXNlX3VzZXJfQWJzdHJhY3RCYXNlVXNlciA8fC0tIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX0Fic3RyYWN0VXNlcgogIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX1Blcm1pc3Npb25zTWl4aW4gPHwtLSBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19BYnN0cmFjdFVzZXIKICBjbGFzcyBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19BYnN0cmFjdFVzZXJbImRqYW5nby5jb250cmliLmF1dGgubW9kZWxzOjpBYnN0cmFjdFVzZXIiXQogIGNsYXNzIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbFsiZGphbmdvLmRiLm1vZGVscy5iYXNlOjpNb2RlbCJdCiAgY2xhc3MgZGphbmdvX2NvbnRyaWJfYXV0aF9iYXNlX3VzZXJfQWJzdHJhY3RCYXNlVXNlclsiZGphbmdvLmNvbnRyaWIuYXV0aC5iYXNlX3VzZXI6OkFic3RyYWN0QmFzZVVzZXIiXQogIGRqYW5nb19kYl9tb2RlbHNfYmFzZV9Nb2RlbCA8fC0tIGRqYW5nb19jb250cmliX2F1dGhfYmFzZV91c2VyX0Fic3RyYWN0QmFzZVVzZXIKICBkamFuZ29fZGJfbW9kZWxzX2Jhc2VfTW9kZWwgPHwtLSBkamFuZ29fY29udHJpYl9hdXRoX21vZGVsc19QZXJtaXNzaW9uc01peGluCiAgZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfQWJzdHJhY3RVc2VyIDx8LS0gZGphbmdvX2NvbnRyaWJfYXV0aF9tb2RlbHNfVXNlcgogIGNsYXNzIGRqYW5nb19jb250cmliX2F1dGhfbW9kZWxzX1Blcm1pc3Npb25zTWl4aW5bImRqYW5nby5jb250cmliLmF1dGgubW9kZWxzOjpQZXJtaXNzaW9uc01peGluIl0=\"/>\n\nHere's another useful diagram:\n\n```python\nplus.model_graph(plus.User)\n```\n\n<image src=\"https://mermaid.ink/img/Zmxvd2NoYXJ0IFRECiAgTG9nRW50cnkgLS0tIFVzZXIKICBVc2VyIC0tLSBBYnN0cmFjdFVzZXIKICBVc2VyIC0tLSBHcm91cAogIFVzZXIgLS0tIFBlcm1pc3Npb24K\"/>\n\n## QuerySet to Dataframe\n\nWant to convert a Django query to a Pandas Dataframe? We got you covered.\n\n```python\nplus.read_frame(plus.User.objects.all())\n```\n\n## More things you can do!\n\n[dj-notebook official documentation](https://dj-notebook.readthedocs.io/)\n\n\n## Contributors\n\n<!-- readme: contributors -start -->\n<table>\n<tr>\n    <td align=\"center\">\n        <a href=\"https://github.com/pydanny\">\n            <img src=\"https://avatars.githubusercontent.com/u/62857?v=4\" width=\"100;\" alt=\"pydanny\"/>\n            <br />\n            <sub><b>Daniel Roy Greenfeld</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/skyforest\">\n            <img src=\"https://avatars.githubusercontent.com/u/13559970?v=4\" width=\"100;\" alt=\"skyforest\"/>\n            <br />\n            <sub><b>Cody Antunez</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/geoffbeier\">\n            <img src=\"https://avatars.githubusercontent.com/u/133355?v=4\" width=\"100;\" alt=\"geoffbeier\"/>\n            <br />\n            <sub><b>Geoff Beier</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/nmpowell\">\n            <img src=\"https://avatars.githubusercontent.com/u/184579?v=4\" width=\"100;\" alt=\"nmpowell\"/>\n            <br />\n            <sub><b>Nick Powell</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/specbeck\">\n            <img src=\"https://avatars.githubusercontent.com/u/98754084?v=4\" width=\"100;\" alt=\"specbeck\"/>\n            <br />\n            <sub><b>Saransh Sood</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/anna-zhydko\">\n            <img src=\"https://avatars.githubusercontent.com/u/68199135?v=4\" width=\"100;\" alt=\"anna-zhydko\"/>\n            <br />\n            <sub><b>Anna Zhydko</b></sub>\n        </a>\n    </td></tr>\n<tr>\n    <td align=\"center\">\n        <a href=\"https://github.com/Tejoooo\">\n            <img src=\"https://avatars.githubusercontent.com/u/112956566?v=4\" width=\"100;\" alt=\"Tejoooo\"/>\n            <br />\n            <sub><b>Tejo Kaushal</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/bloodearnest\">\n            <img src=\"https://avatars.githubusercontent.com/u/1042?v=4\" width=\"100;\" alt=\"bloodearnest\"/>\n            <br />\n            <sub><b>Simon Davy</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/akashverma0786\">\n            <img src=\"https://avatars.githubusercontent.com/u/138790903?v=4\" width=\"100;\" alt=\"akashverma0786\"/>\n            <br />\n            <sub><b>Null</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/DaveParr\">\n            <img src=\"https://avatars.githubusercontent.com/u/8363743?v=4\" width=\"100;\" alt=\"DaveParr\"/>\n            <br />\n            <sub><b>Dave Parr</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/syyong\">\n            <img src=\"https://avatars.githubusercontent.com/u/12908907?v=4\" width=\"100;\" alt=\"syyong\"/>\n            <br />\n            <sub><b>Siew-Yit Yong</b></sub>\n        </a>\n    </td></tr>\n</table>\n<!-- readme: contributors -end -->\n\n## Special thanks\n\nThese are people who aren't in our formal git history but should be.\n\n- [Tom Preston](https://github.com/prestto) did seminal work on Python paths that later became the foundation of dj-notebook\n- [Evie Clutton](https://github.com/evieclutton) was co-author of a pull request and they don't show up in the contributor  list above\n- [Tim Schilling](https://github.com/tim-schilling) assisted with the `model_graph` method\n- [Charlie Denton](https://github.com/meshy) is responsible for django-schema-graph, which we leverage as part of the `model_graph` feature\n- [Christopher Clarke](https://github.com/chrisdev) built `django-pandas`, which dj-notebook uses\n- [Stephen Moore](https://github.com/delfick) for some early work done on the internals of dj-notebook before it was open sourced.\n- [django-extensions](django-extensions) for providing so many useful tools over the years, and being one of the backbones of this project\n\n<!-- readme: prestto,evieclutton,tim-schilling,meshy,chrisdev,delfick,django-extensions -start -->\n<table>\n<tr>\n    <td align=\"center\">\n        <a href=\"https://github.com/prestto\">\n            <img src=\"https://avatars.githubusercontent.com/u/13559801?v=4\" width=\"100;\" alt=\"prestto\"/>\n            <br />\n            <sub><b>Tom Preston</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/evieclutton\">\n            <img src=\"https://avatars.githubusercontent.com/u/44432176?v=4\" width=\"100;\" alt=\"evieclutton\"/>\n            <br />\n            <sub><b>Null</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/tim-schilling\">\n            <img src=\"https://avatars.githubusercontent.com/u/1281215?v=4\" width=\"100;\" alt=\"tim-schilling\"/>\n            <br />\n            <sub><b>Tim Schilling</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/meshy\">\n            <img src=\"https://avatars.githubusercontent.com/u/767671?v=4\" width=\"100;\" alt=\"meshy\"/>\n            <br />\n            <sub><b>Charlie Denton</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/chrisdev\">\n            <img src=\"https://avatars.githubusercontent.com/u/701689?v=4\" width=\"100;\" alt=\"chrisdev\"/>\n            <br />\n            <sub><b>Christopher  Clarke</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/delfick\">\n            <img src=\"https://avatars.githubusercontent.com/u/109301?v=4\" width=\"100;\" alt=\"delfick\"/>\n            <br />\n            <sub><b>Stephen Moore</b></sub>\n        </a>\n    </td></tr>\n<tr>\n    <td align=\"center\">\n        <a href=\"https://github.com/django-extensions\">\n            <img src=\"https://avatars.githubusercontent.com/u/65559?v=4\" width=\"100;\" alt=\"django-extensions\"/>\n            <br />\n            <sub><b>Django Extensions</b></sub>\n        </a>\n    </td></tr>\n</table>\n<!-- readme: prestto,evieclutton,tim-schilling,meshy,chrisdev,delfick,django-extensions -end -->\n\n## Construction\n\nThis package was created with [Cookiecutter](https://github.com/cookiecutter/cookiecutter) and the [simplicity](https://github.com/pydanny/simplicity) project template.\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3",
    "summary": "Django + shell_plus + Jupyter notebooks made easy",
    "version": "0.7.0",
    "project_urls": {
        "bugs": "https://github.com/pydanny/dj-notebook/issues",
        "changelog": "https://github.com/pydanny/dj-notebook/blob/master/CHANGELOG.md",
        "documentation": "https://dj-notebook.readthedocs.io/",
        "homepage": "https://github.com/pydanny/dj-notebook"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a800df11fc80da67dc2e1cea35484a779d229155929d688f9104415551b714f",
                "md5": "5b8e789052b5ce3c440c9ea83f2342fd",
                "sha256": "b8e75d4578adf8948d858502b6cd80b7c6ba520208d8d2716ded38017a877948"
            },
            "downloads": -1,
            "filename": "dj_notebook-0.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5b8e789052b5ce3c440c9ea83f2342fd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 22516,
            "upload_time": "2024-03-02T09:27:03",
            "upload_time_iso_8601": "2024-03-02T09:27:03.092808Z",
            "url": "https://files.pythonhosted.org/packages/4a/80/0df11fc80da67dc2e1cea35484a779d229155929d688f9104415551b714f/dj_notebook-0.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7395b4d4a775d0583d8f38d401563aa571a45f203ad23ba69a40d872ce6ae36",
                "md5": "f2e12755a50d9c8516fc50186ae9257a",
                "sha256": "048bd593808be243a056e548630e1d6b2c6ef592999811a7e11c8361da68b3f8"
            },
            "downloads": -1,
            "filename": "dj_notebook-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f2e12755a50d9c8516fc50186ae9257a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 28859,
            "upload_time": "2024-03-02T09:27:05",
            "upload_time_iso_8601": "2024-03-02T09:27:05.179839Z",
            "url": "https://files.pythonhosted.org/packages/b7/39/5b4d4a775d0583d8f38d401563aa571a45f203ad23ba69a40d872ce6ae36/dj_notebook-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-02 09:27:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pydanny",
    "github_project": "dj-notebook",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "dj-notebook"
}
        
Elapsed time: 1.68571s