Metadata-Version: 2.1
Name: banana-cli
Version: 0.0.4
Summary: The Banana CLI helps you build Potassium apps
Home-page: https://www.banana.dev
Author: Erik Dunteman
Author-email: erik@banana.dev
License: Apache License 2.0
Keywords: Banana server,HTTP server,Banana,Framework
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: Click
Requires-Dist: gitpython
Requires-Dist: termcolor
Requires-Dist: requests
Requires-Dist: websocket-client

# banana-cli (WORK IN PROGRESS)

The Banana CLI helps you build Potassium apps

Watch a [demo here](https://www.loom.com/share/e258f228280a4fe9bb4012f57416306e)

## Hot-Reload Dev Server

The interactive dev server works like a react, next, or nodemon server in that it hot reloads on changes to different parts of your `app.py` file.

On startup, and on changes to the init() block, it runs init() and handler().

On changes to the handler() block, it reruns the handler() without needing to wait for another init

It does this by pushing code in logical chunks to a jupyter notebook backend, to persist memory between refreshes.

### To use it

Start the jupyter backend:
1. set up a virtual env `python3 -m venv venv`
2. activate into that env `. ./venv/bin/activate`
3. install dependencies `pip3 install -r requirements.txt`
4. run a jupyter notebook server `jupyter notebook`
   - Copy the "token" string in the URL

Run the code watcher:
(in a new shell)

5. Put that token into watcher.py as jupyter_token
6. Run watcher.py `python3 watcher.py` to watch app.py for changes

Play with it:

7. Try changing the handler, see what happens!
8. Try changing the init, see what happens!


