fullpy


Namefullpy JSON
Version 0.2 PyPI version JSON
download
home_pagehttps://bitbucket.org/jibalamy/fullpy
SummaryA 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_time2024-10-07 11:56:00
maintainerNone
docs_urlNone
authorLamy Jean-Baptiste (Jiba)
requires_python>=3.6
licenseLGPLv3+
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"
}
        
Elapsed time: 0.55264s