bicchiere


Namebicchiere JSON
Version 1.3.1 PyPI version JSON
download
home_page
SummaryYet another python web (WSGI) micro-framework
upload_time2022-10-04 01:16:02
maintainer
docs_urlNone
author
requires_python>=3.6
licenseMIT License Copyright (c) 2022 Domingo Ernesto Savoretti Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords web wsgi app middleware server session templates websocket
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<h1 align="center">Bicchiere</h1>


<p align="center"><img title="Un bel bicchiere di Campari" src="https://bicchiere.sytes.net/static/img/bicchiere-rosso-2.jpg" alt="Bicchiere Logo"/></p>

## Yet another Python web (WSGI) micro-framework

Following [Flask](https://flask.palletsprojects.com/en/2.1.x/) and [Bottle](https://bottlepy.org/docs/dev/) footsteps, adding a bit of italian flavor :-)

## Install  
```bash
pip install bicchiere
```

## [Project Demo App](https://bicchiere.sytes.net)

Current version: 1.3.1

<p>
    <a href="https://pypi.python.org/pypi/bicchiere" target="_blank" rel="nofollow"><img alt="GitHub tag (latest by date)" src="https://img.shields.io/github/v/tag/sandy98/bicchiere?color=%230cc000&label=bicchiere"></a>           
    &nbsp;&nbsp;&nbsp;
    <a href="https://pepy.tech/project/bicchiere" rel="nofollow" target="_blank">
        <img src="https://static.pepy.tech/personalized-badge/bicchiere?period=total&units=international_system&left_color=black&right_color=blue&left_text=Downloads"/>
    </a>
</p>


## A drop from Bicchiere

```python
from bicchiere import Bicchiere

app = Bicchiere()
or
app = Bicchiere("La mia bella App")

@app.get("/")
def home():
    return "Bon giorno, cosa bevete oggi?"
    
if __name__ == "__main__":
    #This will run default server on http://localhost:8086
    app.run()
```

... and this is just about the classical WSGI **Hello, World**, for everything else please refer to [Bicchiere Wiki](https://github.com/sandy98/bicchiere/wiki)

Well... not really. A bit of rationale is in order here.

So, why Bicchiere?

- For one thing, reinventing the wheel is not only fun but highly educational, so, by all means, do it!

- I like Flask and Bottle. A lot. Both have things that I highly appreciate, simplicity in the first 
  place. But it doesn't end there.
- There's also the single file/no dependencies approach (Bottle), which I intend to mimic with Bicchiere. Although not a   mandatory thing, I like  it that way. 
- Built-in sessions (Flask). Although the user of the library must be free to choose whatever he likes regarding sessions or any other component of the application for that matter, I think session-handling is one of those must-have things in any web app these days. So, I provided basic session handling mechanism, in 3 flavors: memory, filesystem, and sqlite. This was the most that could be done without falling out of the boundaries of the Python Standard Library. Details on this at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-session) 
- Built-in templating mechanism (Bottle). Similar considerations apply. In my opinion, this is also a must have, regardless how micro is the framework/library. Then again, end-user must be free to choose. As a good WSGI compliant middleware, Bicchiere doesn't come in the way of the user if he prefers to use [Mako](https://www.makotemplates.org/), [Jinja2](https://jinja.palletsprojects.com/en/3.1.x/), [Genshi](https://genshi.edgewall.org/) or whatever he likes. Details at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-templates)
- WebSockets handling: to me, this is the fruit on the cake, for various reasons:
    1. It's been said that it can't be done under WSGI, reason the more to do it.
    2. Real time communication looks like another must have in the current landscape of web app development
    3. Then again, its a lot of fun. A lot of pain, too...
In any case, Bicchiere comes bundled with native WebSocket support - just taken out from the oven :-))
Details at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-Websocket) . Regretably, [the original Demo App](https://bicchiere.eu.pythonanywhere.com) won't work with websockets, because **Pythonanywhere** hasn't yet implemented the feature. As of now, there's a mirror at [bicchiere.sytes.net](http://bicchiere.sytes.net) which works fine, test at the home page and all. In any case, these issues are related to reverse proxy configuration and have nothing to see with the app/library itself.
- And still, there's a lot of stuff to be mentioned. More to come...

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "bicchiere",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "web,wsgi,app,middleware,server,session,templates,WebSocket",
    "author": "",
    "author_email": "Domingo E Savoretti <esavoretti@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4e/f8/17cb48a2431be4288b03633bfac800eda42753b24b8d910d84c1b6b97621/bicchiere-1.3.1.tar.gz",
    "platform": null,
    "description": "\n<h1 align=\"center\">Bicchiere</h1>\n\n\n<p align=\"center\"><img title=\"Un bel bicchiere di Campari\" src=\"https://bicchiere.sytes.net/static/img/bicchiere-rosso-2.jpg\" alt=\"Bicchiere Logo\"/></p>\n\n## Yet another Python web (WSGI) micro-framework\n\nFollowing [Flask](https://flask.palletsprojects.com/en/2.1.x/) and [Bottle](https://bottlepy.org/docs/dev/) footsteps, adding a bit of italian flavor :-)\n\n## Install  \n```bash\npip install bicchiere\n```\n\n## [Project Demo App](https://bicchiere.sytes.net)\n\nCurrent version: 1.3.1\n\n<p>\n    <a href=\"https://pypi.python.org/pypi/bicchiere\" target=\"_blank\" rel=\"nofollow\"><img alt=\"GitHub tag (latest by date)\" src=\"https://img.shields.io/github/v/tag/sandy98/bicchiere?color=%230cc000&label=bicchiere\"></a>           \n    &nbsp;&nbsp;&nbsp;\n    <a href=\"https://pepy.tech/project/bicchiere\" rel=\"nofollow\" target=\"_blank\">\n        <img src=\"https://static.pepy.tech/personalized-badge/bicchiere?period=total&units=international_system&left_color=black&right_color=blue&left_text=Downloads\"/>\n    </a>\n</p>\n\n\n## A drop from Bicchiere\n\n```python\nfrom bicchiere import Bicchiere\n\napp = Bicchiere()\nor\napp = Bicchiere(\"La mia bella App\")\n\n@app.get(\"/\")\ndef home():\n    return \"Bon giorno, cosa bevete oggi?\"\n    \nif __name__ == \"__main__\":\n    #This will run default server on http://localhost:8086\n    app.run()\n```\n\n... and this is just about the classical WSGI **Hello, World**, for everything else please refer to [Bicchiere Wiki](https://github.com/sandy98/bicchiere/wiki)\n\nWell... not really. A bit of rationale is in order here.\n\nSo, why Bicchiere?\n\n- For one thing, reinventing the wheel is not only fun but highly educational, so, by all means, do it!\n\n- I like Flask and Bottle. A lot. Both have things that I highly appreciate, simplicity in the first \n  place. But it doesn't end there.\n- There's also the single file/no dependencies approach (Bottle), which I intend to mimic with Bicchiere. Although not a   mandatory thing, I like  it that way. \n- Built-in sessions (Flask). Although the user of the library must be free to choose whatever he likes regarding sessions or any other component of the application for that matter, I think session-handling is one of those must-have things in any web app these days. So, I provided basic session handling mechanism, in 3 flavors: memory, filesystem, and sqlite. This was the most that could be done without falling out of the boundaries of the Python Standard Library. Details on this at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-session) \n- Built-in templating mechanism (Bottle). Similar considerations apply. In my opinion, this is also a must have, regardless how micro is the framework/library. Then again, end-user must be free to choose. As a good WSGI compliant middleware, Bicchiere doesn't come in the way of the user if he prefers to use [Mako](https://www.makotemplates.org/), [Jinja2](https://jinja.palletsprojects.com/en/3.1.x/), [Genshi](https://genshi.edgewall.org/) or whatever he likes. Details at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-templates)\n- WebSockets handling: to me, this is the fruit on the cake, for various reasons:\n    1. It's been said that it can't be done under WSGI, reason the more to do it.\n    2. Real time communication looks like another must have in the current landscape of web app development\n    3. Then again, its a lot of fun. A lot of pain, too...\nIn any case, Bicchiere comes bundled with native WebSocket support - just taken out from the oven :-))\nDetails at [the wiki (under construction)](https://github.com/sandy98/bicchiere/wiki/Bicchiere-Websocket) . Regretably, [the original Demo App](https://bicchiere.eu.pythonanywhere.com) won't work with websockets, because **Pythonanywhere** hasn't yet implemented the feature. As of now, there's a mirror at [bicchiere.sytes.net](http://bicchiere.sytes.net) which works fine, test at the home page and all. In any case, these issues are related to reverse proxy configuration and have nothing to see with the app/library itself.\n- And still, there's a lot of stuff to be mentioned. More to come...\n",
    "bugtrack_url": null,
    "license": "MIT License Copyright (c) 2022 Domingo Ernesto Savoretti Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Yet another python web (WSGI) micro-framework",
    "version": "1.3.1",
    "split_keywords": [
        "web",
        "wsgi",
        "app",
        "middleware",
        "server",
        "session",
        "templates",
        "websocket"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "59c9c9eaecf072437563a46c65b41f61",
                "sha256": "c7139f0dd633c199c28a9d7aeb4127905d1dbdc12bb90b17e6ef68c432799c94"
            },
            "downloads": -1,
            "filename": "bicchiere-1.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "59c9c9eaecf072437563a46c65b41f61",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 41429,
            "upload_time": "2022-10-04T01:15:59",
            "upload_time_iso_8601": "2022-10-04T01:15:59.940883Z",
            "url": "https://files.pythonhosted.org/packages/6c/09/225aba33333f5ed5511444195074925ceba735037c00ece22b1143763c9d/bicchiere-1.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "20dad0d8967a89dff7b8f03d8840d6a1",
                "sha256": "8108259d269fc8d5f8f05327b7aa15de72823c2466afe28881b1f57836436aad"
            },
            "downloads": -1,
            "filename": "bicchiere-1.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "20dad0d8967a89dff7b8f03d8840d6a1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 40407,
            "upload_time": "2022-10-04T01:16:02",
            "upload_time_iso_8601": "2022-10-04T01:16:02.911710Z",
            "url": "https://files.pythonhosted.org/packages/4e/f8/17cb48a2431be4288b03633bfac800eda42753b24b8d910d84c1b6b97621/bicchiere-1.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-10-04 01:16:02",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "bicchiere"
}
        
Elapsed time: 0.46597s