<p align="center">
<a href="" rel="noopener">
<img src="https://raw.githubusercontent.com/Sas2k/Lemon/main/Lemon-Banner.png" alt="Lemon Logo"></a>
</p>
<div align="center">
[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![GitHub Issues](https://img.shields.io/github/issues/Sas2k/Lemon.svg)](https://github.com/Sas2k/Lemon/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/Sas2k/Lemon.svg)](https://github.com/Sas2k/Lemon/pulls)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)
[![Downloads](https://static.pepy.tech/personalized-badge/lemon-library?period=total&units=international_system&left_color=yellow&right_color=orange&left_text=Downloads)](https://pepy.tech/project/lemon-library)
</div>
---
<p align="center"> An Experimental Full-Stack Framework For Python.
<br>
</p>
## 📝 Table of Contents
- [📝 Table of Contents](#-table-of-contents)
- [🧐 About ](#-about-)
- [🗒 To-Do ](#-to-do-)
- [🏁 Getting Started ](#-getting-started-)
- [Folder Structure for apps](#folder-structure-for-apps)
- [Installing](#installing)
- [⛏️ Built Using ](#️-built-using-)
- [✍️ Authors ](#️-authors-)
## 🧐 About <a name = "about"></a>
A full-stack framework built with python. The library is shipped with Bootstrap 5 for your styling needs.
Docs: https://sas2k.github.io/Lemon
Discord Server: https://discord.gg/Dw6hCp3usF
Features:
- UI Library (Development)
- A full Back-end Capabilities
- Django style route adding (See `examples/django-routing.py`)
- An ORM and migrations feature (check-out -> examples/Lemon-App) (ORM supports strings only for now.)
- React like syntax
- middleware api
- a terminal app to create app [create-lemon-app < app-name >]
- Component Generator [https://github.com/Sas2k/Lemon-CLI]
- Reactivity (See `examples/reactivity-example`)
- Testing (See `examples/Tests.py`)
- Custom Exception Handler (`examples/exception-handler.py`)
- Blueprint Routing (`examples/Lemon-App`)
> If you want to have live reloading try uvicorn: https://www.uvicorn.org/
> If you don't think this isn't capable to handle anything check these out! <br>
> https://portfolio-sas2k.vercel.app/ | https://github.com/Sas2k/portfolio <br>
> https://github.com/Sas2k/HTTP-Blog
## 🗒 To-Do <a name = "To-Do"></a>
> Legend: <br>
> [x] - checked
> [\*] - doing
> [ ] - Not Done
- [ ] Form Data Handling (Currently being Developed)
- [ ] States (Currently being Developed)
## 🏁 Getting Started <a name = "getting_started"></a>
Docs Are still in Development Try heading over to `/examples` for some idea.
Here is an example below
```python
from Lemon.components import Component
from Lemon.Server.server import Server
app = Server(static_dir=None)
Root = Component("Home Page", None, None) #Root component
class Home(Component):
"Home Page Component"
name = "Home"
def item(props: dict):
"The Item Function: where the html and props are passed"
return """
<h1>Hello World!</h1>
"""
Root.add([Home])
@app.route("/") #Route decorator
def index(request, response):
home_page = Root.render("<Home/>")
response.text = home_page
app.run() #runs the app
```
### Folder Structure for apps
Here is the folder structure I recommend.
(you can create your own structure based on your needs)
```
App/
- src/
- Components/
- __init__.py
- components.py
- Models/
- __init__.py
- models.py
- Routes/
- __init__.py
- routes.py
- Public/
- css/
- style.css
- js/
- script.js
- app.py
- base.py
- README.md
```
### Installing
To install with,
pip: `pip install Lemon-Library`
## ⛏️ Built Using <a name = "built_using"></a>
- [Python](https://python.org)
- [Waitress](https://pypi.org/project/waitress/)
- [WebOb](https://pypi.org/project/WebOb/)
- [Parse](https://pypi.org/project/parse)
- [whitenoise](https://pypi.org/project/whitenoise/)
- [requests](https://pypi.org/project/requests/)
- [pytest](https://pypi.org/project/pytest/)
- [requests (wsgi-adapter)](https://pypi.org/project/requests-wsgi-adapter/)
- [black](https://pypi.org/project/black/)
## ✍️ Authors <a name = "authors"></a>
<a href="https://github.com/Sas2k/Lemon/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Sas2k/Lemon" />
</a>
See also the list of [contributors](https://github.com/Sas2k/Lemon/contributors) who participated in this project.
Raw data
{
"_id": null,
"home_page": "https://github.com/Sas2k/Lemon",
"name": "Lemon-Library",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "setuptools",
"author": "Sasen Perera",
"author_email": "sas8.communications@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/1d/71/2bc7d9563d86636a79160ab1e123a8782052311c0ab52027540c9f7b68d2/Lemon-Library-1.3.9.tar.gz",
"platform": null,
"description": "<p align=\"center\">\r\n <a href=\"\" rel=\"noopener\">\r\n <img src=\"https://raw.githubusercontent.com/Sas2k/Lemon/main/Lemon-Banner.png\" alt=\"Lemon Logo\"></a>\r\n</p>\r\n<div align=\"center\">\r\n\r\n[![Status](https://img.shields.io/badge/status-active-success.svg)]()\r\n[![GitHub Issues](https://img.shields.io/github/issues/Sas2k/Lemon.svg)](https://github.com/Sas2k/Lemon/issues)\r\n[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/Sas2k/Lemon.svg)](https://github.com/Sas2k/Lemon/pulls)\r\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)\r\n[![Downloads](https://static.pepy.tech/personalized-badge/lemon-library?period=total&units=international_system&left_color=yellow&right_color=orange&left_text=Downloads)](https://pepy.tech/project/lemon-library)\r\n\r\n</div>\r\n\r\n---\r\n\r\n<p align=\"center\"> An Experimental Full-Stack Framework For Python.\r\n <br> \r\n</p>\r\n\r\n## \ud83d\udcdd Table of Contents\r\n\r\n- [\ud83d\udcdd Table of Contents](#-table-of-contents)\r\n- [\ud83e\uddd0 About ](#-about-)\r\n- [\ud83d\uddd2 To-Do ](#-to-do-)\r\n- [\ud83c\udfc1 Getting Started ](#-getting-started-)\r\n - [Folder Structure for apps](#folder-structure-for-apps)\r\n - [Installing](#installing)\r\n- [\u26cf\ufe0f Built Using ](#\ufe0f-built-using-)\r\n- [\u270d\ufe0f Authors ](#\ufe0f-authors-)\r\n\r\n## \ud83e\uddd0 About <a name = \"about\"></a>\r\n\r\nA full-stack framework built with python. The library is shipped with Bootstrap 5 for your styling needs.\r\n\r\nDocs: https://sas2k.github.io/Lemon\r\n\r\nDiscord Server: https://discord.gg/Dw6hCp3usF\r\n\r\nFeatures:\r\n- UI Library (Development)\r\n- A full Back-end Capabilities\r\n- Django style route adding (See `examples/django-routing.py`)\r\n- An ORM and migrations feature (check-out -> examples/Lemon-App) (ORM supports strings only for now.)\r\n- React like syntax\r\n- middleware api\r\n- a terminal app to create app [create-lemon-app < app-name >]\r\n- Component Generator [https://github.com/Sas2k/Lemon-CLI]\r\n- Reactivity (See `examples/reactivity-example`)\r\n- Testing (See `examples/Tests.py`)\r\n- Custom Exception Handler (`examples/exception-handler.py`)\r\n- Blueprint Routing (`examples/Lemon-App`)\r\n\r\n\r\n> If you want to have live reloading try uvicorn: https://www.uvicorn.org/\r\n\r\n> If you don't think this isn't capable to handle anything check these out! <br>\r\n> https://portfolio-sas2k.vercel.app/ | https://github.com/Sas2k/portfolio <br>\r\n> https://github.com/Sas2k/HTTP-Blog\r\n\r\n## \ud83d\uddd2 To-Do <a name = \"To-Do\"></a>\r\n\r\n> Legend: <br>\r\n> [x] - checked\r\n> [\\*] - doing\r\n> [ ] - Not Done\r\n\r\n- [ ] Form Data Handling (Currently being Developed)\r\n- [ ] States (Currently being Developed)\r\n\r\n## \ud83c\udfc1 Getting Started <a name = \"getting_started\"></a>\r\n\r\nDocs Are still in Development Try heading over to `/examples` for some idea.\r\nHere is an example below\r\n\r\n```python\r\nfrom Lemon.components import Component\r\nfrom Lemon.Server.server import Server\r\n\r\napp = Server(static_dir=None) \r\nRoot = Component(\"Home Page\", None, None) #Root component\r\n\r\nclass Home(Component):\r\n \"Home Page Component\"\r\n name = \"Home\"\r\n \r\n def item(props: dict): \r\n \"The Item Function: where the html and props are passed\"\r\n return \"\"\"\r\n <h1>Hello World!</h1>\r\n \"\"\"\r\n\r\nRoot.add([Home])\r\n\r\n@app.route(\"/\") #Route decorator\r\ndef index(request, response):\r\n home_page = Root.render(\"<Home/>\")\r\n response.text = home_page\r\n\r\napp.run() #runs the app\r\n```\r\n\r\n### Folder Structure for apps\r\n\r\nHere is the folder structure I recommend.\r\n(you can create your own structure based on your needs)\r\n```\r\nApp/\r\n - src/\r\n - Components/\r\n - __init__.py\r\n - components.py\r\n - Models/\r\n - __init__.py\r\n - models.py\r\n - Routes/\r\n - __init__.py\r\n - routes.py\r\n - Public/\r\n - css/\r\n - style.css\r\n - js/\r\n - script.js\r\n - app.py\r\n - base.py\r\n - README.md\r\n```\r\n\r\n### Installing\r\n\r\nTo install with,\r\n\r\npip: `pip install Lemon-Library`\r\n\r\n## \u26cf\ufe0f Built Using <a name = \"built_using\"></a>\r\n\r\n- [Python](https://python.org)\r\n- [Waitress](https://pypi.org/project/waitress/)\r\n- [WebOb](https://pypi.org/project/WebOb/)\r\n- [Parse](https://pypi.org/project/parse)\r\n- [whitenoise](https://pypi.org/project/whitenoise/)\r\n- [requests](https://pypi.org/project/requests/)\r\n- [pytest](https://pypi.org/project/pytest/)\r\n- [requests (wsgi-adapter)](https://pypi.org/project/requests-wsgi-adapter/)\r\n- [black](https://pypi.org/project/black/)\r\n\r\n## \u270d\ufe0f Authors <a name = \"authors\"></a>\r\n\r\n<a href=\"https://github.com/Sas2k/Lemon/graphs/contributors\">\r\n <img src=\"https://contrib.rocks/image?repo=Sas2k/Lemon\" />\r\n</a>\r\n\r\nSee also the list of [contributors](https://github.com/Sas2k/Lemon/contributors) who participated in this project.\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "An experimental Full-Stack Framework for Python",
"version": "1.3.9",
"project_urls": {
"Homepage": "https://github.com/Sas2k/Lemon"
},
"split_keywords": [
"setuptools"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fa99484f271b7a90205871155dfdc8b231639784538de6f500d159d69b0f3ba8",
"md5": "47cb9d740769b5a440f67b8f58bdb32f",
"sha256": "ecf76d8a573201756c3e1affc3b5b33eb471f35cbfae2f64f5e954da7f44e11d"
},
"downloads": -1,
"filename": "Lemon_Library-1.3.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "47cb9d740769b5a440f67b8f58bdb32f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 15739,
"upload_time": "2023-11-09T13:05:54",
"upload_time_iso_8601": "2023-11-09T13:05:54.650306Z",
"url": "https://files.pythonhosted.org/packages/fa/99/484f271b7a90205871155dfdc8b231639784538de6f500d159d69b0f3ba8/Lemon_Library-1.3.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1d712bc7d9563d86636a79160ab1e123a8782052311c0ab52027540c9f7b68d2",
"md5": "9ebe7e58309432ad19b41a18126883c6",
"sha256": "e4ca90aee1ae2b5a08dd9a4e42db24f08066a09a06ada416c813e5513175f2e7"
},
"downloads": -1,
"filename": "Lemon-Library-1.3.9.tar.gz",
"has_sig": false,
"md5_digest": "9ebe7e58309432ad19b41a18126883c6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13107,
"upload_time": "2023-11-09T13:05:57",
"upload_time_iso_8601": "2023-11-09T13:05:57.489605Z",
"url": "https://files.pythonhosted.org/packages/1d/71/2bc7d9563d86636a79160ab1e123a8782052311c0ab52027540c9f7b68d2/Lemon-Library-1.3.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-09 13:05:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Sas2k",
"github_project": "Lemon",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "lemon-library"
}