Name | fullpy JSON |
Version |
0.2
JSON |
| download |
home_page | https://bitbucket.org/jibalamy/fullpy |
Summary | A module for developping client-server web application entirely in Python, with semantic data persistance using OWL ontologies and remote function calls (RPC) via Ajax or WebSocket. |
upload_time | 2024-10-07 11:56:00 |
maintainer | None |
docs_url | None |
author | Lamy Jean-Baptiste (Jiba) |
requires_python | >=3.6 |
license | LGPLv3+ |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
FullPy
======
FullPy is a Python module for developing client-server web application. Here are the main features:
* Both client and server are written in Python, and can share pieces of code.
FullPy uses `Brython <https://brython.info/>`_ for client-side execution of Python in the web browser.
* Semantic-aware data persistance using OWL ontologies instead of a database.
FullPy uses `Owlready2 <https://bitbucket.org/jibalamy/owlready2>`_ for managing ontologies and automatically storing them in a SQLite3 database.
* Remote function calls between client and server, with object serialization.
FullPy can use both Ajax (single way client->server calls) or WebSockets (client->server and server->client calls)
* FullPy also provides many high-level services, such as authentication, translation support, HTML widget system, etc.
* FullPy can run over multiple backend: Flask, Werkzeug and Gunicorn (only Gunicorn is supported for WebSockets).
Short example
-------------
Here is an example of FullPy web application:
::
# Server
import sys, os, os.path
from fullpy.server import *
class MyWebApp(ServerSideWebapp):
def __init__(self):
ServerSideWebapp.__init__(self)
self.name = "demo"
self.url = "/index.html"
self.title = "FullPy demo"
self.static_folder = os.path.join(os.path.dirname(__file__), "static")
self.use_python_client(os.path.join(os.path.dirname(__file__), "client.py"))
self.use_ajax(debug = True)
@rpc # Mark the function as remotely callable by the client (RPC = remote procedure call)
def server_hello(self, session):
return "Hello world!"
from fullpy.server.gunicorn_backend import *
serve_forever([MyWebApp()], "http://127.0.0.1:5000")
::
# Client
from fullpy.client import *
class MyWebApp(ClientSideWebapp):
def on_started(self):
def done(response):
html = HTML("""FullPy Demo loaded Ok! Server says: '%s'.""" % response)
html.show()
webapp.server_hello(done) # Call the server_hello() remote function on the server
MyWebApp()
Changelog
---------
version 1 - 0.1
***************
* Initial release
version 1 - 0.2
***************
* Second release
Links
-----
FullPy on BitBucket (Git development repository): https://bitbucket.org/jibalamy/fullpy
FullPy on PyPI (Python Package Index, stable release): https://pypi.python.org/pypi/FullPy
Documentation: http://fullpy.readthedocs.io/
Contact "Jiba" Jean-Baptiste Lamy:
::
<jean-baptiste.lamy *@* univ-paris13 *.* fr>
LIMICS
INSERM, Université Sorbonne Paris Nord, Sorbonne Université
Bureau 149
74 rue Marcel Cachin
93017 BOBIGNY
FRANCE
Raw data
{
"_id": null,
"home_page": "https://bitbucket.org/jibalamy/fullpy",
"name": "fullpy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Lamy Jean-Baptiste (Jiba)",
"author_email": "jibalamy@free.fr",
"download_url": "https://files.pythonhosted.org/packages/40/a0/3b7f3e7b03a846bfd2855ce8fcb132ea553f8e4f25096e21e87ad9ddfac7/fullpy-0.2.tar.gz",
"platform": null,
"description": "FullPy\n======\n\nFullPy is a Python module for developing client-server web application. Here are the main features:\n\n * Both client and server are written in Python, and can share pieces of code.\n FullPy uses `Brython <https://brython.info/>`_ for client-side execution of Python in the web browser.\n \n * Semantic-aware data persistance using OWL ontologies instead of a database.\n FullPy uses `Owlready2 <https://bitbucket.org/jibalamy/owlready2>`_ for managing ontologies and automatically storing them in a SQLite3 database.\n \n * Remote function calls between client and server, with object serialization.\n FullPy can use both Ajax (single way client->server calls) or WebSockets (client->server and server->client calls)\n\n * FullPy also provides many high-level services, such as authentication, translation support, HTML widget system, etc.\n\n * FullPy can run over multiple backend: Flask, Werkzeug and Gunicorn (only Gunicorn is supported for WebSockets).\n\n \nShort example\n-------------\n\nHere is an example of FullPy web application:\n\n::\n\n # Server\n \n import sys, os, os.path\n from fullpy.server import *\n\n class MyWebApp(ServerSideWebapp):\n def __init__(self):\n ServerSideWebapp.__init__(self)\n self.name = \"demo\"\n self.url = \"/index.html\"\n self.title = \"FullPy demo\"\n self.static_folder = os.path.join(os.path.dirname(__file__), \"static\")\n\n self.use_python_client(os.path.join(os.path.dirname(__file__), \"client.py\"))\n self.use_ajax(debug = True)\n\n @rpc # Mark the function as remotely callable by the client (RPC = remote procedure call)\n def server_hello(self, session):\n return \"Hello world!\"\n\n from fullpy.server.gunicorn_backend import *\n serve_forever([MyWebApp()], \"http://127.0.0.1:5000\")\n\n\n::\n\n # Client\n\n from fullpy.client import *\n \n class MyWebApp(ClientSideWebapp):\n def on_started(self):\n def done(response):\n html = HTML(\"\"\"FullPy Demo loaded Ok! Server says: '%s'.\"\"\" % response)\n html.show()\n webapp.server_hello(done) # Call the server_hello() remote function on the server\n\n MyWebApp()\n\n \nChangelog\n---------\n\nversion 1 - 0.1\n***************\n\n* Initial release\n\nversion 1 - 0.2\n***************\n\n* Second release\n\n \nLinks\n-----\n\nFullPy on BitBucket (Git development repository): https://bitbucket.org/jibalamy/fullpy\n\nFullPy on PyPI (Python Package Index, stable release): https://pypi.python.org/pypi/FullPy\n\nDocumentation: http://fullpy.readthedocs.io/\n\n\nContact \"Jiba\" Jean-Baptiste Lamy:\n\n::\n\n <jean-baptiste.lamy *@* univ-paris13 *.* fr>\n LIMICS\n INSERM, Universit\u00e9 Sorbonne Paris Nord, Sorbonne Universit\u00e9\n Bureau 149\n 74 rue Marcel Cachin\n 93017 BOBIGNY\n FRANCE\n",
"bugtrack_url": null,
"license": "LGPLv3+",
"summary": "A module for developping client-server web application entirely in Python, with semantic data persistance using OWL ontologies and remote function calls (RPC) via Ajax or WebSocket.",
"version": "0.2",
"project_urls": {
"Homepage": "https://bitbucket.org/jibalamy/fullpy"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "40a03b7f3e7b03a846bfd2855ce8fcb132ea553f8e4f25096e21e87ad9ddfac7",
"md5": "162c20244b8d75399801941699f0f4af",
"sha256": "e3b87e39fbd9f6b997b9a715e488924889fda98ef9f6bf4e66f63dda9db1aa75"
},
"downloads": -1,
"filename": "fullpy-0.2.tar.gz",
"has_sig": false,
"md5_digest": "162c20244b8d75399801941699f0f4af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 4313098,
"upload_time": "2024-10-07T11:56:00",
"upload_time_iso_8601": "2024-10-07T11:56:00.478669Z",
"url": "https://files.pythonhosted.org/packages/40/a0/3b7f3e7b03a846bfd2855ce8fcb132ea553f8e4f25096e21e87ad9ddfac7/fullpy-0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-07 11:56:00",
"github": false,
"gitlab": false,
"bitbucket": true,
"codeberg": false,
"bitbucket_user": "jibalamy",
"bitbucket_project": "fullpy",
"lcname": "fullpy"
}