{ "info": { "author": "playerla", "author_email": "playerla.94@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Flask", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "[![ForTheBadge uses-badges](https://img.shields.io/badge/uses-flask-4ab?style=for-the-badge&labelColor=4cd)](https://palletsprojects.com/p/flask/)\n[![ForTheBadge uses-badges](https://img.shields.io/badge/uses-lit%20html-4ab?style=for-the-badge&labelColor=4cd)](https://lit-html.polymer-project.org/)\n[![ForTheBadge uses-badges](https://img.shields.io/badge/uses-Socket.IO-4ab?style=for-the-badge&labelColor=4cd)](https://socket.io/)\n\n[![Version: Alpha](https://img.shields.io/badge/version-alpha-yellow?style=for-the-badge)](.)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n[![Pypi version](https://img.shields.io/pypi/v/flask-socketio-lit-html?style=for-the-badge)](https://pypi.org/project/flask-socketio-lit-html/)\n[![ReadTheDocs](https://readthedocs.org/projects/flask-socketio-lit-html/badge/?version=latest&style=for-the-badge)](https://flask-socketio-lit-html.readthedocs.io/)\n[![Travis (.org)](https://img.shields.io/travis/playerla/flask-socketio-lit-html?style=for-the-badge)](https://travis-ci.org/playerla/flask-socketio-lit-html)\n[![codecov](https://img.shields.io/codecov/c/github/playerla/flask-socketio-lit-html?style=for-the-badge)](https://codecov.io/gh/playerla/flask-socketio-lit-html)\n[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/playerla/flask-socketio-lit-html?style=for-the-badge)](https://codeclimate.com/github/playerla/flask-socketio-lit-html)\n\n# Flask-Socket.IO-lit-html\n\nWebcomponents with Flask and SocketIO\n\n[Quick Start on documentation](https://flask-socketio-lit-html.readthedocs.io/introduction.html#introduction)\n\n[Todo App example](https://github.com/playerla/flask-wel-todoapp)\n\n## Proof of concept project to use Webcomponents in Python Flask\n\n* Generate a restful API (inspired from Flask-Restful)\n* Update html on data changes through [socketio](https://socket.io/) (Inspired from Angular properties reflection)\n* Based on the powerful [lit-element library](https://lit-element.polymer-project.org/guide/start)\n\n## Usage philosophy\n\nCreate user webcomponent from sqlalchemy design. GET and POST API on `/user`.\n```python\nclass User(db.Model):\n username = db.Column(db.String(80), nullable=False)\n\nblueprint = User.configure_blueprint(\"/user\", \"user-item\", \"user.html\")\napp.register_blueprint(blueprint)\n```\nDefine the webcomponent view in a jinja template\n```jinja\n{% block render %}\n${ this.username }\n{% endblock %}\n```\nDisplay the second user of your database with live update:\n```html\n\n
user 2:
\n```\n\nThis code represent the idea behind the module, look at app.py for a working example. Project may be modeled on [wtforms-alchemy](https://github.com/kvesteri/wtforms-alchemy)\n\n## Contribute : Pull requests are welcome !\n\n[![Edit with Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/playerla/flask-socketio-lit-html/tree/Dev)\n\n\n### Updating autodoc\n\n```sh\ncd docs && sphinx-apidoc -o source/ ../flask_socketio_lit_html\n```\n\n### Build and test package\n\n```sh\npoetry build && pip3 install dist/flask_socketio_lit_html* --force-reinstall\n```\n\n### Running browser tests\n```sh\ncd tests ; yarn ; yarn test\n```\nWebcomponent's shadow root are disabled when running testcafe (for selecting components)\n\n## Build lit-element with rollup.js\n```sh\ncd flask_socketio_lit_html/dependencies/ && yarn && yarn build && cd ../..\n```\n### Any questions ?\n\n[![Slack Status](https://img.shields.io/badge/slack-join-darkblue?style=for-the-badge)](https://join.slack.com/t/flasksocketio-vhj9931/shared_invite/enQtNzUwMDgzMDg5ODU3LWRhNDg4MmNmMTg2MDYwM2UxYjQ5ZDhkN2FmODY2MGI0NDU3YWNmNTdlOWZkM2YzZmZlMjdmYjNmY2JiZThhOGI)\n\n[![Join the community on Spectrum](https://img.shields.io/badge/Spectrum-join-purple?style=for-the-badge)](https://spectrum.chat/flask-sio-lit-html/)\n\n#### External resources\n\n[Learn webcomponents and lit-element on dev.to](https://dev.to/thepassle/web-components-from-zero-to-hero-4n4m)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/playerla/flask-socketio-lit-html", "keywords": "Webcomponents,Flask,lit-html", "license": "MIT", "maintainer": "playerla", "maintainer_email": "playerla.94@gmail.com", "name": "flask-socketio-lit-html", "package_url": "https://pypi.org/project/flask-socketio-lit-html/", "platform": "", "project_url": "https://pypi.org/project/flask-socketio-lit-html/", "project_urls": { "Documentation": "https://flask-socketio-lit-html.readthedocs.io", "Homepage": "https://github.com/playerla/flask-socketio-lit-html", "Repository": "https://github.com/playerla/flask-socketio-lit-html" }, "release_url": "https://pypi.org/project/flask-socketio-lit-html/0.1.3/", "requires_dist": [ "flask (>=1.1.1,<1.2.0)", "flask-sqlalchemy (>=2.4.0,<2.5.0)", "flask-socketio (>=4.2.1,<4.3.0)", "eventlet (>=0.25.1,<0.26.0)" ], "requires_python": ">=3.7,<4.0", "summary": "Simple Webcomponents with flask", "version": "0.1.3" }, "last_serial": 6004297, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c1a25e5f7b62dcb6f4aa47b8b51d5e2d", "sha256": "e4b8271ab74467e3799d51350541ccc67acb593559159029708c03328a3e061e" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c1a25e5f7b62dcb6f4aa47b8b51d5e2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6352, "upload_time": "2019-08-12T23:46:50", "url": "https://files.pythonhosted.org/packages/de/fd/0528f2c4313af9d51a6b8cc3c846a5056dc614dbfed81907c031612b91fd/flask_socketio_lit_html-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd89e05ab74f012723af8e39d17fdd93", "sha256": "e5679c99f3f45976fb1c8d5a9c9fce6c94a8bd2449cdc32f663ee665ea562c13" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0.tar.gz", "has_sig": false, "md5_digest": "dd89e05ab74f012723af8e39d17fdd93", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5039, "upload_time": "2019-08-12T23:50:04", "url": "https://files.pythonhosted.org/packages/03/88/34c6e6c032a95513870de2cf8f4daaa0bd1ed64b3bad772ef2e307fc642e/flask-socketio-lit-html-0.1.0.tar.gz" } ], "0.1.0rc1": [ { "comment_text": "", "digests": { "md5": "03d48c94a2389f68d559da71dff05eda", "sha256": "789ed312c341f4ef79f5a24ff56af19b19e9e1831e8c00b6b4601c7d294cc7ad" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "03d48c94a2389f68d559da71dff05eda", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6777, "upload_time": "2019-08-13T00:04:56", "url": "https://files.pythonhosted.org/packages/b6/7b/f33a256ac14a001e0fdf3c406dee29f0b7d334c29632b84e92a63057cb65/flask_socketio_lit_html-0.1.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2599608e648f7dea3d4f18521073c82", "sha256": "c4e2afd03dd0bf302d804862f52b717196a7d24cce586aa461f10bb379c6afd1" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "b2599608e648f7dea3d4f18521073c82", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5030, "upload_time": "2019-08-13T00:04:55", "url": "https://files.pythonhosted.org/packages/09/69/5b5051ed4b9c0e41ee798b417c5f2f3d973ea573146d1e699ae2ddba6635/flask-socketio-lit-html-0.1.0rc1.tar.gz" } ], "0.1.0rc2": [ { "comment_text": "", "digests": { "md5": "bc1313ffc3655eaa7a04606b5d30a28f", "sha256": "b5479f9debbac0883034ac8d8d3ed48287787c004539b995fe94ccde834f49a6" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "bc1313ffc3655eaa7a04606b5d30a28f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 5393, "upload_time": "2019-08-13T23:45:10", "url": "https://files.pythonhosted.org/packages/93/c3/d87bd294fdab3e892086c520d7f7f99795140534fe0d22e298623aa5dfd1/flask_socketio_lit_html-0.1.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bee94cc01582ddd28d9164e0b30e8e77", "sha256": "b04473384522b7575f737a483ea6a70f71522b51831b907b1ffc922bea14a93d" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0rc2.tar.gz", "has_sig": false, "md5_digest": "bee94cc01582ddd28d9164e0b30e8e77", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 4522, "upload_time": "2019-08-13T23:45:09", "url": "https://files.pythonhosted.org/packages/20/6c/290225314709623bbb259b26df008b6e9a0c0386d4c2bd7fed8f77ec17f3/flask-socketio-lit-html-0.1.0rc2.tar.gz" } ], "0.1.0rc3": [ { "comment_text": "", "digests": { "md5": "5b565c7d29c88005ecfc28562a70869d", "sha256": "f44fedd369d21635439510c692ca504d6242647fd54b6c776356e69664343b48" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "5b565c7d29c88005ecfc28562a70869d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 5595, "upload_time": "2019-08-18T10:50:18", "url": "https://files.pythonhosted.org/packages/76/db/c41456945cbe8814b0a4d6be7084968d19e09c18da4b2c9ed8aa6215e687/flask_socketio_lit_html-0.1.0rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2673046d346eae2b8ebbd2ed56c28a7", "sha256": "8e29178782a94cbb49ecd556bdffdbf02bcd9d9d53fec1fc48936108529c69e0" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0rc3.tar.gz", "has_sig": false, "md5_digest": "f2673046d346eae2b8ebbd2ed56c28a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 4789, "upload_time": "2019-08-18T10:50:17", "url": "https://files.pythonhosted.org/packages/4a/ed/e6ac29e41f1724872f9ddb1bbc5a702a2f7f1af2269ae43cceb447d36c33/flask-socketio-lit-html-0.1.0rc3.tar.gz" } ], "0.1.0rc4": [ { "comment_text": "", "digests": { "md5": "8c4885fd5b4640dea6885c993fe12506", "sha256": "d2cddec8bdc332fa5ca956cfc1f80db769ac5f4dff0d047abd22d8bf207785fc" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0rc4-py3-none-any.whl", "has_sig": false, "md5_digest": "8c4885fd5b4640dea6885c993fe12506", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6555, "upload_time": "2019-08-18T20:01:44", "url": "https://files.pythonhosted.org/packages/4a/e4/8f29bb6a1b49076a53f6d42fed8e43dffe9633674164ba2f94db027dbd4f/flask_socketio_lit_html-0.1.0rc4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29889fae6d307f97dbb3e8f5f35b5834", "sha256": "e820b927380e697854fcb6653565cfad4883190d4a8fdc5774f13f5686e3853e" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0rc4.tar.gz", "has_sig": false, "md5_digest": "29889fae6d307f97dbb3e8f5f35b5834", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5871, "upload_time": "2019-08-18T20:01:43", "url": "https://files.pythonhosted.org/packages/0f/13/0cc63a099829615b7447ec294834279e025f35178b32dcc0371f6626c17c/flask-socketio-lit-html-0.1.0rc4.tar.gz" } ], "0.1.0rc5": [ { "comment_text": "", "digests": { "md5": "a7312de22fe58562d69b579fabebf89a", "sha256": "250ad143655b190628fb7c14ad1511801671801ca32165c4b84286d0963b4ca4" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.0rc5-py3-none-any.whl", "has_sig": false, "md5_digest": "a7312de22fe58562d69b579fabebf89a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6555, "upload_time": "2019-08-20T23:28:16", "url": "https://files.pythonhosted.org/packages/91/f5/0e6a87f3a0f20c8f5c948d421ae83f11f0e43f52a8766c79708f737fc25e/flask_socketio_lit_html-0.1.0rc5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c053286b236ce2aa64170f91dd27b33a", "sha256": "ac876b13183c989ba8d86ee4d06c883d5553d5f1c447db5c1ad1b7d83d039ce0" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.0rc5.tar.gz", "has_sig": false, "md5_digest": "c053286b236ce2aa64170f91dd27b33a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5871, "upload_time": "2019-08-20T23:28:14", "url": "https://files.pythonhosted.org/packages/60/27/25468c9a048a363e9749961d5073cda24401cfc1b4976a6c35a306401e3c/flask-socketio-lit-html-0.1.0rc5.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "65f6268a8f41661968c21217853672ec", "sha256": "684433d066bee3e290d8685d62ccc13c59c04acc6e16c30236a064439ffe3403" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "65f6268a8f41661968c21217853672ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 36275, "upload_time": "2019-09-24T22:40:38", "url": "https://files.pythonhosted.org/packages/a8/d1/d7ff5abd84d769a92e28dfbe24f7c35de8de641c43fa6872648b400312ac/flask_socketio_lit_html-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79168729947e88a1c49c6a280857b708", "sha256": "679fd89f1ae1e58f76f4cfb04f426f47066a56c0fa441f3a853b01359f44944b" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.1.tar.gz", "has_sig": false, "md5_digest": "79168729947e88a1c49c6a280857b708", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 35999, "upload_time": "2019-09-24T22:40:37", "url": "https://files.pythonhosted.org/packages/0f/5f/ee0b3b90446a6ee2c362e788311ec294f484a5c837908148759c8d44aa56/flask-socketio-lit-html-0.1.1.tar.gz" } ], "0.1.1rc1": [ { "comment_text": "", "digests": { "md5": "26722c79e6933880aeb168aece5deb3e", "sha256": "896892e97c601e2f0d6a3db1a77d8c8d8eafe2ee747099f2a5b34832719a1203" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.1rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "26722c79e6933880aeb168aece5deb3e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7116, "upload_time": "2019-09-13T01:00:39", "url": "https://files.pythonhosted.org/packages/fa/c8/4f8fe00b7a219979a7a4f1cb594b4c0d08aac70bee9471f8a6bfa2ab26a9/flask_socketio_lit_html-0.1.1rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c974c5946f1f5fbe26e8d12764edb77", "sha256": "a513e121d09c5bc64441322938ffa8ca5d90aaa2055f39480fe22cd3681a8e23" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.1rc1.tar.gz", "has_sig": false, "md5_digest": "1c974c5946f1f5fbe26e8d12764edb77", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6514, "upload_time": "2019-09-13T01:00:34", "url": "https://files.pythonhosted.org/packages/96/3f/ce3233a5cf2159368a0a0e53974c1d924b278f0bb12903c70c0e01d0f464/flask-socketio-lit-html-0.1.1rc1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bea9438102e437f938943c8e458ba4e5", "sha256": "e9fcb026f038a1b4430b4e3e41fa9f9e501e5257e40cf27980463d60bd9f8b49" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bea9438102e437f938943c8e458ba4e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 36269, "upload_time": "2019-09-28T18:48:50", "url": "https://files.pythonhosted.org/packages/76/52/4c83dd816a6d265265d3c2d0372b0908687e2c1f1ab3a6b4be464d59b82f/flask_socketio_lit_html-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca8c9f40f2eb7b62d748d576d8e697e0", "sha256": "c0594a5f263b6350a20e49ac094605a5cf20ce7b0e6099453b1cc138b4995f5b" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ca8c9f40f2eb7b62d748d576d8e697e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 35960, "upload_time": "2019-09-28T18:48:48", "url": "https://files.pythonhosted.org/packages/60/d6/ced105f1e9e62afd40d93be6afc63c489c53b0a25635420d1fe8a32bbda3/flask-socketio-lit-html-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "94af1101232be1b8b9f95795804aad70", "sha256": "4f6ecd2359ae5f4f09b8ecedf52ac84faca43cd6ed256396d3121f907029886a" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "94af1101232be1b8b9f95795804aad70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 36267, "upload_time": "2019-10-20T18:48:00", "url": "https://files.pythonhosted.org/packages/f5/da/24cbbc05ff22ca73b2b0a9964a7f70f56aa9a9215ede007fe722da65fb88/flask_socketio_lit_html-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63853e3bc633b6a3c30ab1ed981a4eba", "sha256": "af4ec44c2e98945a633f1cb9b1abfe758fe4210dcb37548785e0d893a04cdaf8" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.3.tar.gz", "has_sig": false, "md5_digest": "63853e3bc633b6a3c30ab1ed981a4eba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 35992, "upload_time": "2019-10-20T18:47:59", "url": "https://files.pythonhosted.org/packages/1b/57/a2bcb7d850c8fa3d5b5bf1fc0e3ebf204c4e344fa23640fb30181420d4e6/flask-socketio-lit-html-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "94af1101232be1b8b9f95795804aad70", "sha256": "4f6ecd2359ae5f4f09b8ecedf52ac84faca43cd6ed256396d3121f907029886a" }, "downloads": -1, "filename": "flask_socketio_lit_html-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "94af1101232be1b8b9f95795804aad70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 36267, "upload_time": "2019-10-20T18:48:00", "url": "https://files.pythonhosted.org/packages/f5/da/24cbbc05ff22ca73b2b0a9964a7f70f56aa9a9215ede007fe722da65fb88/flask_socketio_lit_html-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63853e3bc633b6a3c30ab1ed981a4eba", "sha256": "af4ec44c2e98945a633f1cb9b1abfe758fe4210dcb37548785e0d893a04cdaf8" }, "downloads": -1, "filename": "flask-socketio-lit-html-0.1.3.tar.gz", "has_sig": false, "md5_digest": "63853e3bc633b6a3c30ab1ed981a4eba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 35992, "upload_time": "2019-10-20T18:47:59", "url": "https://files.pythonhosted.org/packages/1b/57/a2bcb7d850c8fa3d5b5bf1fc0e3ebf204c4e344fa23640fb30181420d4e6/flask-socketio-lit-html-0.1.3.tar.gz" } ] }