{ "info": { "author": "Drucker team and contributors", "author_email": "drucker.developers@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "# rekcurd-client\n\n[![Build Status](https://travis-ci.com/rekcurd/drucker-client.svg?branch=master)](https://travis-ci.com/rekcurd/drucker-client)\n[![PyPI version](https://badge.fury.io/py/rekcurd-client.svg)](https://badge.fury.io/py/rekcurd-client)\n[![codecov](https://codecov.io/gh/rekcurd/drucker-client/branch/master/graph/badge.svg)](https://codecov.io/gh/rekcurd/drucker-client \"Non-generated packages only\")\n[![pypi supported versions](https://img.shields.io/pypi/pyversions/rekcurd-client.svg)](https://pypi.python.org/pypi/rekcurd-client)\n\nRekcurd client is the project for integrating ML module. Any Rekcurd service is connectable. It can connect the Rekcurd service on Kubernetes.\n\n\n## Parent Project\nhttps://github.com/rekcurd/drucker-parent\n\n\n## Components\n- [Rekcurd](https://github.com/rekcurd/drucker): Project for serving ML module.\n- [Rekcurd-dashboard](https://github.com/rekcurd/drucker-dashboard): Project for managing ML model and deploying ML module.\n- [Rekcurd-client](https://github.com/rekcurd/drucker-client) (here): Project for integrating ML module. \n\n\n## Installation\nFrom source:\n\n```\ngit clone --recursive https://github.com/rekcurd/drucker-client.git\ncd drucker-client\npython setup.py install\n```\n\nFrom [PyPi](https://pypi.org/project/rekcurd_client/) directly:\n\n```\npip install rekcurd_client\n```\n\n## How to use\nExample code is available [here](./example/sample.py).\n\n```python\nfrom drucker_client import DruckerWorkerClient\nfrom drucker_client.logger import logger\n\n\nhost = 'localhost:5000'\nclient = DruckerWorkerClient(logger=logger, host=host)\n\ninput = [0,0,0,1,11,0,0,0,0,0,\n 0,7,8,0,0,0,0,0,1,13,\n 6,2,2,0,0,0,7,15,0,9,\n 8,0,0,5,16,10,0,16,6,0,\n 0,4,15,16,13,16,1,0,0,0,\n 0,3,15,10,0,0,0,0,0,2,\n 16,4,0,0]\nresponse = client.run_predict_arrint_arrint(input)\n```\n\nWhen you use Kubernetes and deploy Rekcurd service via Rekcurd dashboard, you can access your Rekcurd service like the below.\n\n```python\nfrom drucker_client import DruckerWorkerClient\nfrom drucker_client.logger import logger\n\n\ndomain = 'example.com'\napp = 'drucker-sample'\nenv = 'development'\nclient = DruckerWorkerClient(logger=logger, domain=domain, app=app, env=env)\n\ninput = [0,0,0,1,11,0,0,0,0,0,\n 0,7,8,0,0,0,0,0,1,13,\n 6,2,2,0,0,0,7,15,0,9,\n 8,0,0,5,16,10,0,16,6,0,\n 0,4,15,16,13,16,1,0,0,0,\n 0,3,15,10,0,0,0,0,0,2,\n 16,4,0,0]\nresponse = client.run_predict_arrint_arrint(input)\n```\n\n### DruckerWorkerClient\nYou need to use an appropriate method for your Rekcurd service. The methods are generated according to the input and output formats. *V* is the length of feature vector. *M* is the number of classes. If your algorithm is a binary classifier, you set *M* to 1. If your algorithm is a multi-class classifier, you set *M* to the number of classes.\n\n|method |input: data
(required) |input: option |output: label
(required) |output: score
(required) |output: option |\n|:---|:---|:---|:---|:---|:---|\n|run_predict_string_string |string |string (json) |string |double |string (json) |\n|run_predict_string_bytes |string |string (json) |bytes |double |string (json) |\n|run_predict_string_arrint |string |string (json) |int[*M*] |double[*M*] |string (json) |\n|run_predict_string_arrfloat |string |string (json) |double[*M*] |double[*M*] |string (json) |\n|run_predict_string_arrstring |string |string (json) |string[*M*] |double[*M*] |string (json) |\n|run_predict_bytes_string |bytes |string (json) |string |double |string (json) |\n|run_predict_bytes_bytes |bytes |string (json) |bytes |double |string (json) |\n|run_predict_bytes_arrint |bytes |string (json) |int[*M*] |double[*M*] |string (json) |\n|run_predict_bytes_arrfloat |bytes |string (json) |double[*M*] |double[*M*] |string (json) |\n|run_predict_bytes_arrstring |bytes |string (json) |string[*M*] |double[*M*] |string (json) |\n|run_predict_arrint_string |int[*V*] |string (json) |string |double |string (json) |\n|run_predict_arrint_bytes |int[*V*] |string (json) |bytes |double |string (json) |\n|run_predict_arrint_arrint |int[*V*] |string (json) |int[*M*] |double[*M*] |string (json) |\n|run_predict_arrint_arrfloat |int[*V*] |string (json) |double[*M*] |double[*M*] |string (json) |\n|run_predict_arrint_arrstring |int[*V*] |string (json) |string[*M*] |double[*M*] |string (json) |\n|run_predict_arrfloat_string |double[*V*] |string (json) |string |double |string (json) |\n|run_predict_arrfloat_bytes |double[*V*] |string (json) |bytes |double |string (json) |\n|run_predict_arrfloat_arrint |double[*V*] |string (json) |int[*M*] |double[*M*] |string (json) |\n|run_predict_arrfloat_arrfloat |double[*V*] |string (json) |double[*M*] |double[*M*] |string (json) |\n|run_predict_arrfloat_arrstring |double[*V*] |string (json) |string[*M*] |double[*M*] |string (json) |\n|run_predict_arrstring_string |string[*V*] |string (json) |string |double |string (json) |\n|run_predict_arrstring_bytes |string[*V*] |string (json) |bytes |double |string (json) |\n|run_predict_arrstring_arrint |string[*V*] |string (json) |int[*M*] |double[*M*] |string (json) |\n|run_predict_arrstring_arrfloat |string[*V*] |string (json) |double[*M*] |double[*M*] |string (json) |\n|run_predict_arrstring_arrstring |string[*V*] |string (json) |string[*M*] |double[*M*] |string (json) |\n\nThe input \"option\" field needs to be a json format. Any style is Ok but we have some reserved fields below.\n\n|Field |Type |Description |\n|:---|:---|:---|\n|suppress_log_input |bool |True: NOT print the input and output to the log message.
False (default): Print the input and output to the log message.\n\n\n## Unittest\n```\n$ python -m unittest\n```\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/drucker/drucker-client", "keywords": "Drucker,Kubernetes,Python client,gRPC", "license": "Apache License Version 2.0", "maintainer": "", "maintainer_email": "", "name": "drucker-client", "package_url": "https://pypi.org/project/drucker-client/", "platform": "", "project_url": "https://pypi.org/project/drucker-client/", "project_urls": { "Homepage": "https://github.com/drucker/drucker-client" }, "release_url": "https://pypi.org/project/drucker-client/0.4.5/", "requires_dist": [ "grpcio (>=1.13.0)", "grpcio-tools (>=1.13.0)", "fluent-logger (>=0.9.3)", "python-json-logger (>=0.1.9)" ], "requires_python": "", "summary": "A Python gRPC client for Drucker.", "version": "0.4.5" }, "last_serial": 4758524, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "37573eab6b398ee3f1590474412e8173", "sha256": "ea0d3efa260414451b9dcf02e551c3f0a744dc117a32cb6646626b83ccec7589" }, "downloads": -1, "filename": "drucker_client-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "37573eab6b398ee3f1590474412e8173", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18926, "upload_time": "2018-11-07T02:31:03", "url": "https://files.pythonhosted.org/packages/29/bb/6ac7ddc6301f40afa5f95a302b6adfd0b311c63f24f9b3048f4d94e25887/drucker_client-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74d9f390ae28b1416e27814a92736184", "sha256": "fa2f29c027f1ba37a9c7994125d106623fe741b223e538ca6e1a94df7bfc1ad7" }, "downloads": -1, "filename": "drucker_client-0.4.0.tar.gz", "has_sig": false, "md5_digest": "74d9f390ae28b1416e27814a92736184", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14510, "upload_time": "2018-11-07T02:31:05", "url": "https://files.pythonhosted.org/packages/47/43/63079bf7ceb865977ef1d0bc1c9ef7e0a3c6581dd213de348e347317b103/drucker_client-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "4037f279b6dfab23fbe7c236bb3c2b27", "sha256": "c3bed3de855302615cfcf0b5185e53e8c197b7f75eee4a5cc001fcdfbe2a7122" }, "downloads": -1, "filename": "drucker_client-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4037f279b6dfab23fbe7c236bb3c2b27", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20375, "upload_time": "2018-11-20T07:40:47", "url": "https://files.pythonhosted.org/packages/de/32/5cf7ed6531ace15ca5815dd2240b597983bd8fea86d8f3d8cffe8c599831/drucker_client-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad4997c0978973da29992c7a1e1297ba", "sha256": "85e401710378071c6b28eaf864da19547ad9a59ffaeeced12040b43258ff9ed2" }, "downloads": -1, "filename": "drucker_client-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ad4997c0978973da29992c7a1e1297ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15974, "upload_time": "2018-11-20T07:40:49", "url": "https://files.pythonhosted.org/packages/19/21/cadea3cf9363e9dff6603db27d5c981363c2a905305039fc2021782740e7/drucker_client-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "f7bcbe60c31a9178ef61e8f9709f1a18", "sha256": "9a18e142e9645829023d0bedac5c70c0cf54192b4e3d8ca0eeb013c317358e12" }, "downloads": -1, "filename": "drucker_client-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f7bcbe60c31a9178ef61e8f9709f1a18", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20376, "upload_time": "2018-11-28T04:21:11", "url": "https://files.pythonhosted.org/packages/c5/a4/c4b0ac55684c7aa7580d85525b9fc84cc15cdfa94dbc2b9a0059efb2c144/drucker_client-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1285247bcf7cd3ed15d83383f6ed399c", "sha256": "050dce7c9adc9b16bcfe67442e18b333216d35ca4d4949fce39739954ebdec40" }, "downloads": -1, "filename": "drucker_client-0.4.2.tar.gz", "has_sig": false, "md5_digest": "1285247bcf7cd3ed15d83383f6ed399c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15978, "upload_time": "2018-11-28T04:21:12", "url": "https://files.pythonhosted.org/packages/06/3a/138ad8d067008ce055ff2943c62d5c76d66025d1dd0a51d06c23c878ad85/drucker_client-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "71b0f23ea5b5688096807bd74391c7a1", "sha256": "7150b4b1e30166308a14349ec0f96013fd92965041326e3d2b3fd5cffe10cc94" }, "downloads": -1, "filename": "drucker_client-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "71b0f23ea5b5688096807bd74391c7a1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20857, "upload_time": "2018-12-26T01:17:51", "url": "https://files.pythonhosted.org/packages/af/e7/e4cd10298031f619df8d72202c3c901017aeceb9b16ced35b7cdece249b2/drucker_client-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f0df0342016f5b09383d0deac184a8f", "sha256": "89e9e7138b804c7d52126fd2485930244875b1b9758fd22cfad63d4bc283d812" }, "downloads": -1, "filename": "drucker_client-0.4.3.tar.gz", "has_sig": false, "md5_digest": "3f0df0342016f5b09383d0deac184a8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16491, "upload_time": "2018-12-26T01:17:53", "url": "https://files.pythonhosted.org/packages/7d/fd/796a37140de7c04759a8f94280e4f7805e63d157eb1ca81031afba253616/drucker_client-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "66b44fb115e6e115feca22d2225f6d57", "sha256": "86088988433ac7f745f3811a6fb3165bc2065d3c721d7b5a7dc8e7b3e1d543e1" }, "downloads": -1, "filename": "drucker_client-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66b44fb115e6e115feca22d2225f6d57", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21283, "upload_time": "2019-01-15T23:45:52", "url": "https://files.pythonhosted.org/packages/b3/e7/dc3faf6c76c2ff8625c99bcbf5741559a68256f844bd852c38fc110bde68/drucker_client-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50f5fd5efa3a1a51cdb2f59cc0358ff9", "sha256": "6fc8a701933e17358d426fd4512e274c5d70ebe6d647d312057077c65ae301b8" }, "downloads": -1, "filename": "drucker_client-0.4.4.tar.gz", "has_sig": false, "md5_digest": "50f5fd5efa3a1a51cdb2f59cc0358ff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16673, "upload_time": "2019-01-15T23:45:53", "url": "https://files.pythonhosted.org/packages/75/77/ea68c90d4cfea8dbdd47d067b09da141db12e5d4fe13a532e19b83159d55/drucker_client-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "7a0d474b7612d09ac8c11c54a423f7ba", "sha256": "66107d5308640d67a7ce10312d72b865dd7f69c3035a8c535049ea07d242d471" }, "downloads": -1, "filename": "drucker_client-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a0d474b7612d09ac8c11c54a423f7ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21290, "upload_time": "2019-01-30T07:53:44", "url": "https://files.pythonhosted.org/packages/4a/4d/b9c1d3b2370a9af1ded4e467f0cfac01b20404198cff38508b78ce4e08e5/drucker_client-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c72a2d1af47ae3ea984ab7ef6c026c9b", "sha256": "fe6d4782b47389b8224824c390bf459e9a6000130de37086db6be5ff4d8ba1f2" }, "downloads": -1, "filename": "drucker_client-0.4.5.tar.gz", "has_sig": false, "md5_digest": "c72a2d1af47ae3ea984ab7ef6c026c9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20663, "upload_time": "2019-01-30T07:53:46", "url": "https://files.pythonhosted.org/packages/3a/0a/235cac0febe996630e53365b1da3534259b0a44bd538e5a8dcaced751239/drucker_client-0.4.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7a0d474b7612d09ac8c11c54a423f7ba", "sha256": "66107d5308640d67a7ce10312d72b865dd7f69c3035a8c535049ea07d242d471" }, "downloads": -1, "filename": "drucker_client-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a0d474b7612d09ac8c11c54a423f7ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21290, "upload_time": "2019-01-30T07:53:44", "url": "https://files.pythonhosted.org/packages/4a/4d/b9c1d3b2370a9af1ded4e467f0cfac01b20404198cff38508b78ce4e08e5/drucker_client-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c72a2d1af47ae3ea984ab7ef6c026c9b", "sha256": "fe6d4782b47389b8224824c390bf459e9a6000130de37086db6be5ff4d8ba1f2" }, "downloads": -1, "filename": "drucker_client-0.4.5.tar.gz", "has_sig": false, "md5_digest": "c72a2d1af47ae3ea984ab7ef6c026c9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20663, "upload_time": "2019-01-30T07:53:46", "url": "https://files.pythonhosted.org/packages/3a/0a/235cac0febe996630e53365b1da3534259b0a44bd538e5a8dcaced751239/drucker_client-0.4.5.tar.gz" } ] }