{ "info": { "author": "Patrick Kage", "author_email": "patrick.r.kage@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# wirepickle\n\nEffortless python remote procedure calling with pickle over [ZeroMQ](http://zeromq.org).\nAllows you to expose a single class instance as an API server over every transport layer\nthat ZeroMQ provides.\n\n## Quick Setup\n\nInstall wirepickle using your favorite package manager:\n\n```bash\n$ pip install wirepickle\n```\n\n### Server\n\nNext, on your server, annotate the methods you want to expose with the `@expose` decorator:\n\n```python\nfrom wirepickle.server import expose, Server\n\nclass Foo:\n @expose('bar')\n def bar(self):\n print('bar')\n return 0\n\n @expose('baz')\n def baz(self, arg1, kwarg1='baz'):\n print(kwarg1)\n return self.bar() + arg1\n```\n\nNote that you can return anything that can be pickled as a return value,\nand that stdout will be mirrored to the client.\n\nThen, pass an instance of the class to the `Server` constructor to create the server.\nTo start listening, call the `Server#listen()` method on the constructed server with\na bind URI:\n\n```python\nif __name__ == '__main__':\n instance = Foo()\n\n Server(instance).listen('tcp://*:12345')\n```\n\n### Client\n\nSimply pass a URI to connect to and start using the methods.\n\n```python\nfrom wirepickle.client import Client\n\nfoo = Client('tcp://127.0.0.1:12345')\n\nfoo.bar()\n```\n\nIf desired, you can pass a `timeout` kwarg to the `Client` constructor:\n\n```python\nfoo = Client('tcp://127.0.0.1:12345', timeout=1_000) # milliseconds\n```\n\n\n", "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/pkage/wirepickle", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "wirepickle", "package_url": "https://pypi.org/project/wirepickle/", "platform": "", "project_url": "https://pypi.org/project/wirepickle/", "project_urls": { "Homepage": "https://github.com/pkage/wirepickle" }, "release_url": "https://pypi.org/project/wirepickle/1.0.1/", "requires_dist": [ "termcolor", "pyzmq" ], "requires_python": "", "summary": "Effortless Python RPC with ZeroMQ", "version": "1.0.1" }, "last_serial": 5667370, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1086a1c81a9507428526456efe01d1dc", "sha256": "cc63c4e6e8f115bdb8bef49c37efb0f7bd083eb5b173deed841090406f338946" }, "downloads": -1, "filename": "wirepickle-1.0.0-py3-none-any.whl", "has_sig": true, "md5_digest": "1086a1c81a9507428526456efe01d1dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5082, "upload_time": "2019-08-12T15:47:55", "url": "https://files.pythonhosted.org/packages/a7/72/d483959c3cd086ebe41f08dee412e8c9edc6bd888a98c1b30de20561570b/wirepickle-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5fabc63b68c33625bced99479e38f98e", "sha256": "fcf953626b3826ddf0843b13699ebe7f9b210ea8ce6559e51635685ec26b483a" }, "downloads": -1, "filename": "wirepickle-1.0.0.tar.gz", "has_sig": true, "md5_digest": "5fabc63b68c33625bced99479e38f98e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4307, "upload_time": "2019-08-12T15:47:58", "url": "https://files.pythonhosted.org/packages/19/fe/2c5164ef6251beedd2c4eeb3024d8721b89ecfaf726ac7891eab79affe38/wirepickle-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "265bc1168460718fb99037db62b9bdc0", "sha256": "b2625e5330f22906b0c318bebad66b7c12661d2ac4e6615439d108dc5941e87d" }, "downloads": -1, "filename": "wirepickle-1.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "265bc1168460718fb99037db62b9bdc0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5084, "upload_time": "2019-08-12T16:07:01", "url": "https://files.pythonhosted.org/packages/84/7b/eb1c815201692a54eb06e7df6401c3fbe3b8c340226bac985005784dab7b/wirepickle-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3e38c6e37432d21d799b344332c8070", "sha256": "6ddd35e4eae010a856c02aa18c47a6228f763a95ead6a96a3a0d540e865263fd" }, "downloads": -1, "filename": "wirepickle-1.0.1.tar.gz", "has_sig": true, "md5_digest": "d3e38c6e37432d21d799b344332c8070", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4305, "upload_time": "2019-08-12T16:07:03", "url": "https://files.pythonhosted.org/packages/76/08/e1fd7b610f366a616eaf775b45fc5c6646f131325ef296c1003739ce021d/wirepickle-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "265bc1168460718fb99037db62b9bdc0", "sha256": "b2625e5330f22906b0c318bebad66b7c12661d2ac4e6615439d108dc5941e87d" }, "downloads": -1, "filename": "wirepickle-1.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "265bc1168460718fb99037db62b9bdc0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5084, "upload_time": "2019-08-12T16:07:01", "url": "https://files.pythonhosted.org/packages/84/7b/eb1c815201692a54eb06e7df6401c3fbe3b8c340226bac985005784dab7b/wirepickle-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3e38c6e37432d21d799b344332c8070", "sha256": "6ddd35e4eae010a856c02aa18c47a6228f763a95ead6a96a3a0d540e865263fd" }, "downloads": -1, "filename": "wirepickle-1.0.1.tar.gz", "has_sig": true, "md5_digest": "d3e38c6e37432d21d799b344332c8070", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4305, "upload_time": "2019-08-12T16:07:03", "url": "https://files.pythonhosted.org/packages/76/08/e1fd7b610f366a616eaf775b45fc5c6646f131325ef296c1003739ce021d/wirepickle-1.0.1.tar.gz" } ] }