{ "info": { "author": "Brett Graham", "author_email": "braingram720@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "By default this will try to use tornado\n\nTo use gevent, set the environment variable: WSRPC_USE_GEVENT\n\n\n\nMake a web interface to a pizco served object (possibly many objects?)\n\nBrowser <-> pizco communication is handled by flask-sockets (websocket)\n\nFor my purposes I need support for:\n- setting config (dictionary)\n- checking when config is updated (signal?)\n- calling member functions\n- support for concurrent.futures\n\nAdditional things to add would be:\n- support for general 'remote objects'\n- support for non-standard json objects\n\nThis interface should support use of knockout.js observables so that:\n\nweb ui change <-> javascript variable <-> websocket <-> flask <-> pizco\n\n\nAn alternative is to 'ajaxify' objects directly. Making the pipeline:\n\nweb ui <-> js <-> ajax <-> flask <-> object\n\nThis limits connections to web protocols. Pizco is more direct.\n\n\nData values (numbers, strings, arrays, etc) should be mapped as follows:\n\nko.observable <-> hooks to websocket <-> flask <-> pizco\n\nFunctions should be mapped as follows:\n\nwrapped js function <-> websocket <-> flask <-> pizco\n\nObjects should be mapped with ko.mapping\n\nobject of ko.observables <-> hooks to websocket <-> flask <-> pizco\n\n\nAs a starting point, lets handle a simple ionode that supports:\n\n1) config setting/getting [this is all through configure]\n2) configure calling\n3) function returning future calling\n\n\nthis needs:\n1) mapped observable and signal handling for config\n2) remote object for function\n3) same as #2 and future support\n\nuse json rpc on top of websocket protocol\n\nclient ---- server\n startup\nconnect ->\ninspect -> example proxy object\njs object <- return proxy object properties, functions, etc\n\n functions\ncall method -> call proxy method in greenlet\nresult <- return result, join greenlet\n\n signals\nreg signal -> register for signal in greenlet\nprocess <- process changed event\nprocess <- process changed event\n many ...\n\nif an object is blocking (say camera) Is it ok to just continue to block?\nI think so, this makes websocket timeout? (seems to be ok with longer polling)\nPerhaps futures could be handled differently", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "wsrpc", "package_url": "https://pypi.org/project/wsrpc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wsrpc/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/wsrpc/0.0.2/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.0.2" }, "last_serial": 1204757, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "94a5ce7f9db18d5acb5d40cdc1be2736", "sha256": "37df6d30f8259c8e56a90fd9692e834ce4100e8f50e504e3db5d1f2b55ad26f2" }, "downloads": -1, "filename": "wsrpc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "94a5ce7f9db18d5acb5d40cdc1be2736", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10118, "upload_time": "2014-08-27T21:02:15", "url": "https://files.pythonhosted.org/packages/e7/8d/ba43dd1cc48d91f55791f07ec47b559a51259088ef6e29acdbb98993ae1d/wsrpc-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1573e22e15320984ee3f64fa61ad1508", "sha256": "977fbd123a459af82016c9d5473c812578d9c6d5ea832e116514c1d7d77cf6f6" }, "downloads": -1, "filename": "wsrpc-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1573e22e15320984ee3f64fa61ad1508", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9941, "upload_time": "2014-08-28T01:11:25", "url": "https://files.pythonhosted.org/packages/98/5f/379c9ff0f6787890ee6617a6a9190adac565483235e4a5bd8227c848d576/wsrpc-0.0.2.tar.gz" } ], "dev": [ { "comment_text": "", "digests": { "md5": "d56d071a3b1592053444959edc5d52e5", "sha256": "96f49f5894e0bb8acc5a1597e54cd5dd1ab744a1b636298f3ba23c3973bd5c10" }, "downloads": -1, "filename": "wsrpc-dev.tar.gz", "has_sig": false, "md5_digest": "d56d071a3b1592053444959edc5d52e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10120, "upload_time": "2014-08-27T20:40:13", "url": "https://files.pythonhosted.org/packages/64/5f/af1f78026ef7db74d54f97f116766657a240d212020deb5b14d4f80ad47e/wsrpc-dev.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1573e22e15320984ee3f64fa61ad1508", "sha256": "977fbd123a459af82016c9d5473c812578d9c6d5ea832e116514c1d7d77cf6f6" }, "downloads": -1, "filename": "wsrpc-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1573e22e15320984ee3f64fa61ad1508", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9941, "upload_time": "2014-08-28T01:11:25", "url": "https://files.pythonhosted.org/packages/98/5f/379c9ff0f6787890ee6617a6a9190adac565483235e4a5bd8227c848d576/wsrpc-0.0.2.tar.gz" } ] }