{ "info": { "author": "Artem Malyshev", "author_email": "proofit404@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development" ], "description": ".. |travis| image:: https://travis-ci.org/proofit404/service-factory.png\n :target: https://travis-ci.org/proofit404/service-factory\n :alt: Build Status\n\n.. |coveralls| image:: https://coveralls.io/repos/proofit404/service-factory/badge.png\n :target: https://coveralls.io/r/proofit404/service-factory\n :alt: Coverage Status\n\n.. |requires| image:: https://requires.io/github/proofit404/service-factory/requirements.svg\n :target: https://requires.io/github/proofit404/service-factory/requirements\n :alt: Requirements Status\n\n.. |landscape| image:: https://landscape.io/github/proofit404/service-factory/master/landscape.svg\n :target: https://landscape.io/github/proofit404/service-factory/master\n :alt: Code Health\n\n===============\nservice-factory\n===============\n\n|travis| |coveralls| |requires| |landscape|\n\nJSON RPC service factory for Python.\n\nUsage\n-----\n\nService factory in a nutshell:\n\n.. code:: python\n\n from service_factory import service_factory\n\n def add(one, two):\n \"\"\"Add two numbers.\"\"\"\n return one + two\n\n def mul(one, two):\n \"\"\"Multiply two numbers.\"\"\"\n return one * two\n\n app = [add, mul]\n\n if __name__ == '__main__':\n service_factory(app, host='localhost', port=0)\n\nRun this as usual python file:\n\n.. code:: bash\n\n $ python calc.py\n service factory starts at port 9001\n\nSee it works:\n\n.. code:: bash\n\n $ curl -X POST -d '{\"jsonrpc\": \"2.0\", \"method\": \"add\", \"params\": [1, 2], \"id\": 1}' -H 'Content-Type:application/json;' http://localhost:9001/\n\nYou can use any callable list from arbitrary module to run your\napplication:\n\n.. code:: bash\n\n $ python -m service_factory calc:app --host=localhost --port=auto\n # or\n $ service_factory calc:app --host=localhost --port=auto\n\nTODO\n----\n\n* process all errors codes\n* batch processing\n* notifications\n* WSGI provider\n* tornado provider\n* aiohttp provider\n* --port-file option\n* console entry point\n* make providers act as context managers\n* ``user_error(code, message, data=None)``\n* WSGI authorization\n* sphinx docs\n* Django user permissions for rpc method\n* Celery service implementation\n* RQ service implementation\n\n.. :changelog:\n\nChangelog\n---------\n\n0.1.5 (2016-10-09)\n++++++++++++++++++\n\n- Zip unsafe for setuptools.\n\n0.1.4 (2016-09-02)\n++++++++++++++++++\n\n- Use 0 port value for automatic port detection.\n\n0.1.3 (2016-08-25)\n++++++++++++++++++\n\n- Remove ``six`` library from install requires.\n\n0.1.2 (2015-03-05)\n++++++++++++++++++\n\n- Remove allowed hosts parameters from ``service_factory`` function.\n\n0.1.1 (2015-03-05)\n++++++++++++++++++\n\n- Remove wildcard parameters from ``service_factory`` function. This\n fix ``provider_cls`` resolution issue.\n\n0.1.0 (2015-03-04)\n++++++++++++++++++\n\n- Initial release.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/proofit404/service-factory", "keywords": "", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "service_factory", "package_url": "https://pypi.org/project/service_factory/", "platform": "any", "project_url": "https://pypi.org/project/service_factory/", "project_urls": { "Homepage": "https://github.com/proofit404/service-factory" }, "release_url": "https://pypi.org/project/service_factory/0.1.5/", "requires_dist": null, "requires_python": "", "summary": "JSON RPC service factory for Python.", "version": "0.1.5" }, "last_serial": 5838747, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "df605878a004206b0ae5af43bd66285a", "sha256": "63d9f373aeed61f978e8d136dc3f3841e58c261c2fde5d22b961331e7c52d87e" }, "downloads": -1, "filename": "service_factory-0.1.0.tar.gz", "has_sig": false, "md5_digest": "df605878a004206b0ae5af43bd66285a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17701, "upload_time": "2015-03-04T19:02:39", "url": "https://files.pythonhosted.org/packages/6d/f1/06849d6daca480447222c914b71e2c5f02318db09791123d97c138f37213/service_factory-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ab054b1ef7f2b7bb37d07d49773b15f4", "sha256": "87194bc63a916c194b9918078d355cd3c699b90eaf9e970ebbec8abe72ba5fe3" }, "downloads": -1, "filename": "service_factory-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ab054b1ef7f2b7bb37d07d49773b15f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17828, "upload_time": "2015-03-04T21:06:33", "url": "https://files.pythonhosted.org/packages/24/6a/32cef545b086ffe85d33c2724eba4543bf84538570b365b31a980abd40cd/service_factory-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ee800203f02f94cc04dfa256b1b34b91", "sha256": "162b19afc77099f184feecbe9997a1170365c8c5ef854507bf399305f79617ab" }, "downloads": -1, "filename": "service_factory-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ee800203f02f94cc04dfa256b1b34b91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17811, "upload_time": "2015-03-09T09:52:55", "url": "https://files.pythonhosted.org/packages/d2/c0/5f47c58ac513510806831d0a0fbfb4fe4ab68bd72c2fe58e4b08c21f4efb/service_factory-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "781091982f3cb48b06eca7559e7d0143", "sha256": "38a7c58978e9b2161c3e2a461a06028f40caa69fbf0721bd0494b5bc84ca72d5" }, "downloads": -1, "filename": "service_factory-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "781091982f3cb48b06eca7559e7d0143", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10032, "upload_time": "2016-08-25T08:39:41", "url": "https://files.pythonhosted.org/packages/f2/b5/37a523d4ea593831eef23795a5a8b558205d7f7d1f1383eb632641075948/service_factory-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "035cb95cf2afbf5946cb7b2377f73e9e", "sha256": "fd55e6e718d61b0061e12121582ba83fb5bf3e26b0f2c533a50ce62c98b26749" }, "downloads": -1, "filename": "service_factory-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "035cb95cf2afbf5946cb7b2377f73e9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10032, "upload_time": "2016-08-25T08:39:43", "url": "https://files.pythonhosted.org/packages/80/24/b9b0fa73e4636f1e8134e34fe132aabb4f187c27406f349b360ccc7a1fd2/service_factory-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffdcec96d01bbca437eded256a7da492", "sha256": "5d15466529da3b8a1ab575c04d068e2d266eca73d978d955738f92086c90afdd" }, "downloads": -1, "filename": "service_factory-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ffdcec96d01bbca437eded256a7da492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17333, "upload_time": "2016-08-25T08:39:45", "url": "https://files.pythonhosted.org/packages/ec/74/24bf8bec9714f007a2532876165bc36b11b796ae340f8e152af3b9e51578/service_factory-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "fb1b296274e85bd49f48e69e9800876e", "sha256": "bebb312859489339fc5210bfce7f598f453e9544606ce4015cf42cffe94c1ed5" }, "downloads": -1, "filename": "service_factory-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "fb1b296274e85bd49f48e69e9800876e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10011, "upload_time": "2016-09-01T21:06:20", "url": "https://files.pythonhosted.org/packages/e5/df/ba93e998b0b085d22157545c3b91cb0ca20c10f6c42a9b7c385007c19d1c/service_factory-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25deca5ecae8ee03f81a9686e18deea8", "sha256": "4f0dbef5d8b8c583655f56fd2c2b4ee47444fa7f6c00db3e26e48cb84610f1c3" }, "downloads": -1, "filename": "service_factory-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "25deca5ecae8ee03f81a9686e18deea8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10014, "upload_time": "2016-09-01T21:06:22", "url": "https://files.pythonhosted.org/packages/29/b0/dae733881d1949ee9975389705358baeb473d4a9484781cddbf83a4bedc7/service_factory-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9076d0a61d889d8b6249a16c616790ab", "sha256": "3e7900108f6a5a38b95c5e3a393320bc0c1e0708311c764373cf30ddf15d7c6a" }, "downloads": -1, "filename": "service_factory-0.1.4.tar.gz", "has_sig": false, "md5_digest": "9076d0a61d889d8b6249a16c616790ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17490, "upload_time": "2016-09-01T21:06:27", "url": "https://files.pythonhosted.org/packages/87/a4/4f73db99fa7f4ad2a09a4883b14ecb08c3f209658c4e586ddc9c83f4e980/service_factory-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "c0c9b94c955f75efa8e82c854342416e", "sha256": "19a69f7bd68de5d503313419a34048c138eade272a7c681828c13360087b5bba" }, "downloads": -1, "filename": "service_factory-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "c0c9b94c955f75efa8e82c854342416e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10066, "upload_time": "2016-10-09T17:31:41", "url": "https://files.pythonhosted.org/packages/f0/12/7ab1c1f62748b00aa0adc479758e771966088a79d8323c64c873cd591f3b/service_factory-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6cd1d81b51af9bb1c1076258d6776c0", "sha256": "d466a7b1e1f0e196abdc27a69aef6afdaff3b1814146068573e9c46ae8be2658" }, "downloads": -1, "filename": "service_factory-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b6cd1d81b51af9bb1c1076258d6776c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10067, "upload_time": "2016-10-09T17:31:46", "url": "https://files.pythonhosted.org/packages/51/ad/7e07f1f11919033a883acc18eb60e0f45e221d98edc42657060f36ff451e/service_factory-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0dd7745280da2284e8bdc2c03b853e4", "sha256": "3f23f6e1a59eb2657eff48be5ee42e4cbd8f90eb3d134eab0017e13c54f6e3f7" }, "downloads": -1, "filename": "service_factory-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a0dd7745280da2284e8bdc2c03b853e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17587, "upload_time": "2016-10-09T17:31:52", "url": "https://files.pythonhosted.org/packages/d1/32/bacd539bc748af613082f8cf80c82311373a05bb4af2d43bc2ff5bbdcdcc/service_factory-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c0c9b94c955f75efa8e82c854342416e", "sha256": "19a69f7bd68de5d503313419a34048c138eade272a7c681828c13360087b5bba" }, "downloads": -1, "filename": "service_factory-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "c0c9b94c955f75efa8e82c854342416e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10066, "upload_time": "2016-10-09T17:31:41", "url": "https://files.pythonhosted.org/packages/f0/12/7ab1c1f62748b00aa0adc479758e771966088a79d8323c64c873cd591f3b/service_factory-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6cd1d81b51af9bb1c1076258d6776c0", "sha256": "d466a7b1e1f0e196abdc27a69aef6afdaff3b1814146068573e9c46ae8be2658" }, "downloads": -1, "filename": "service_factory-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b6cd1d81b51af9bb1c1076258d6776c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10067, "upload_time": "2016-10-09T17:31:46", "url": "https://files.pythonhosted.org/packages/51/ad/7e07f1f11919033a883acc18eb60e0f45e221d98edc42657060f36ff451e/service_factory-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0dd7745280da2284e8bdc2c03b853e4", "sha256": "3f23f6e1a59eb2657eff48be5ee42e4cbd8f90eb3d134eab0017e13c54f6e3f7" }, "downloads": -1, "filename": "service_factory-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a0dd7745280da2284e8bdc2c03b853e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17587, "upload_time": "2016-10-09T17:31:52", "url": "https://files.pythonhosted.org/packages/d1/32/bacd539bc748af613082f8cf80c82311373a05bb4af2d43bc2ff5bbdcdcc/service_factory-0.1.5.tar.gz" } ] }