# banana-cli
The goal of the Banana CLI is to bring an npm-like experience to ML development loops.
This version includes:
- `banana init` to create a project with boilerplate
- `banana install` to install packages from the requirements.txt
- `banana --version` to show the current version
- `banana deploy` to easily deploy the local folder to Banana.dev without using GitHub
[Here's a demo video](https://www.loom.com/share/86d4e7b0801549b9ab2f7a1acce772aa)
## Installing the CLI locally
```
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e ./
banana --version
```
---
This is a v0 release using SemVer; it is not stable and the interface can break at any time.
---
## To use it
1. Create a new project directory with
```bash
banana init my-app
cd my-app
```
2. Start the dev server
```bash
python3 app.py
```
3. Call your API (from a separate terminal)
```bash
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello I am a [MASK] model."}' http://localhost:8000/
```
The interactive dev server works like a react, next, or nodemon server: it selectively hot reloads components when you save changes to different parts of your `app.py` file.
The init() function is ran on startup and for every change to init().
The handler() function is ran on every change to handler(), without needing to wait for a long init()
## Play with it:
4. Try changing the handler, see what happens!
5. Try changing the init, see what happens!
## Future Development:
- Lock in a stable interface
- Add the following commands
- `banana stage` -> run a temporary deployment to Banana's cluster for on-GPU testing
- `banana test` -> unit test against local test cases
Raw data
{
"_id": null,
"home_page": "https://www.banana.dev",
"name": "banana-cli",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "Banana server,HTTP server,Banana,Framework",
"author": "Erik Dunteman",
"author_email": "erik@banana.dev",
"download_url": "https://files.pythonhosted.org/packages/a0/c1/bd16b8ebd64d5f7e00656bd73a28a5cf2dc711f1c76f2df5dd7da1a99df7/banana_cli-0.1.1.tar.gz",
"platform": null,
"description": "# banana-cli\n\nThe goal of the Banana CLI is to bring an npm-like experience to ML development loops. \n\nThis version includes:\n- `banana init` to create a project with boilerplate\n- `banana install` to install packages from the requirements.txt\n- `banana --version` to show the current version\n- `banana deploy` to easily deploy the local folder to Banana.dev without using GitHub\n\n[Here's a demo video](https://www.loom.com/share/86d4e7b0801549b9ab2f7a1acce772aa)\n\n\n## Installing the CLI locally\n\n```\npython3 -m venv .venv\nsource .venv/bin/activate\npip3 install -e ./\nbanana --version\n```\n\n---\nThis is a v0 release using SemVer; it is not stable and the interface can break at any time.\n---\n\n## To use it\n\n1. Create a new project directory with \n```bash\nbanana init my-app\ncd my-app\n```\n2. Start the dev server\n```bash\npython3 app.py\n```\n\n3. Call your API (from a separate terminal)\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"prompt\": \"Hello I am a [MASK] model.\"}' http://localhost:8000/\n``` \n\nThe interactive dev server works like a react, next, or nodemon server: it selectively hot reloads components when you save changes to different parts of your `app.py` file.\n\nThe init() function is ran on startup and for every change to init().\n\nThe handler() function is ran on every change to handler(), without needing to wait for a long init()\n\n## Play with it:\n\n4. Try changing the handler, see what happens!\n5. Try changing the init, see what happens!\n\n## Future Development:\n- Lock in a stable interface\n- Add the following commands\n - `banana stage` -> run a temporary deployment to Banana's cluster for on-GPU testing\n - `banana test` -> unit test against local test cases\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "The Banana CLI helps you build Potassium apps",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://www.banana.dev"
},
"split_keywords": [
"banana server",
"http server",
"banana",
"framework"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "38885542ba68b4bd4bda7a47886864974a817d21d0852d15f16a8e8bb4f26f78",
"md5": "f715763deda75e5c068096d8359860ed",
"sha256": "5421161c398cffffa5f2c740c92b4657b761d7c5dda19305328de45e9246393e"
},
"downloads": -1,
"filename": "banana_cli-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f715763deda75e5c068096d8359860ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 18365,
"upload_time": "2023-12-15T20:50:26",
"upload_time_iso_8601": "2023-12-15T20:50:26.894643Z",
"url": "https://files.pythonhosted.org/packages/38/88/5542ba68b4bd4bda7a47886864974a817d21d0852d15f16a8e8bb4f26f78/banana_cli-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a0c1bd16b8ebd64d5f7e00656bd73a28a5cf2dc711f1c76f2df5dd7da1a99df7",
"md5": "d999b5e8b25ddd0c47ba015bb74cd67c",
"sha256": "4a8443add5d8e9d3992e4975c3fa49a9a655fc5f1fed48c72e6fc3384db586ef"
},
"downloads": -1,
"filename": "banana_cli-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "d999b5e8b25ddd0c47ba015bb74cd67c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 17535,
"upload_time": "2023-12-15T20:50:28",
"upload_time_iso_8601": "2023-12-15T20:50:28.985480Z",
"url": "https://files.pythonhosted.org/packages/a0/c1/bd16b8ebd64d5f7e00656bd73a28a5cf2dc711f1c76f2df5dd7da1a99df7/banana_cli-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-15 20:50:28",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "banana-cli"
}