{ "info": { "author": "olivetree", "author_email": "olivetree123@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Laka\n[![Build Status](https://travis-ci.org/olivetree123/Laka.svg?branch=master)](https://travis-ci.org/olivetree123/Laka) [![codecov](https://codecov.io/gh/olivetree123/Laka/branch/master/graph/badge.svg)](https://codecov.io/gh/olivetree123/Laka) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/27a69db7d26b4642b77f292711c35022)](https://www.codacy.com/manual/olivetree123/Laka?utm_source=github.com&utm_medium=referral&utm_content=olivetree123/Laka&utm_campaign=Badge_Grade) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/laka) ![PyPI](https://img.shields.io/pypi/v/laka?color=blue) ![PyPI - License](https://img.shields.io/pypi/l/laka) \n\nLaka is a microservice framework for Python, based on json and redis.\n\n## Install\n1. Step one\nInstall Fofo\n2. Step two\n ``` shell\n pip install laka\n ```\n\n## Feature\n - Service Register and Discovery\n - Transmit data with Json RPC\n\n## Tutorial: Server\n1. Create Server and Register Service\n ``` python\n from laka import LakaServer\n\n laka_server = LakaServer(\n service_name=\"lakaTest\", # Register Service with this name\n redis_host=\"localhost\", \n redis_port=6379, \n redis_queue=\"laka_request\", \n fofo_host=\"10.88.190.211\",\n fofo_port=6379,\n response_message=RESPONSE_MESSAGE,\n check_health=True,\n )\n ```\n2. Define param for Handler\n ``` python\n from laka import Param\n\n class CreateUserParam(Param):\n def __init__(self):\n self.account = None\n self.password = None\n self.tel = None\n \n def validate(self):\n \"\"\"\n validate will be run automatically\n you should not run validate by yourself\n \"\"\"\n if not (self.account and self.password):\n return False\n return True\n ```\n3. Define Handler\n ``` python\n from laka import Handler\n\n class CreateUserHandler(Handler):\n Param = CreateUserParam\n\n def handle(self):\n user = {\"password\":self.param.password, \"account\":self.param.account}\n return HandlerOK(user)\n ```\n4. Add router\n ``` python\n # COMMAND_CREATE_USER = 101\n laka_server.router(COMMAND_CREATE_USER, CreateUserHandler)\n ```\n5. Accept & Handle request \n ``` python\n for queue, cmd in laka_server.accept_request():\n handler_response = laka_server.handle(cmd)\n ```\n## Tutorial: Client\n1. Create Client\n ``` python\n from laka import LakaClient\n\n laka_client = LakaClient(\n service_name=\"lakaTest\", # service_name is the service you want to connect to\n fofo_host=\"10.88.190.211\",\n fofo_port=6379,\n )\n ```\n2. Define & Create param \n ``` python\n from laka import Param\n\n class CreateUserParam(Param):\n \n def __init__(self, account, password, tel=None):\n self.account = account\n self.password = password\n self.tel = tel\n \n def validate(self):\n \"\"\"\n validate will be run in request automatically\n you should not run validate by yourself\n \"\"\"\n if not (self.account and self.password):\n return False\n return True\n\n param = CreateUserParam(\"olivetree\", \"123456\")\n ```\n3. Send Request\n ``` python\n request_id = laka_client.request(COMMAND_CREATE_USER, param)\n ```\n4. Get Response\n ``` python\n response = laka_client.accept_response(request_id)\n print(\"response = \", response.json())\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/olivetree123/Laka", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Laka", "package_url": "https://pypi.org/project/Laka/", "platform": "", "project_url": "https://pypi.org/project/Laka/", "project_urls": { "Homepage": "https://github.com/olivetree123/Laka" }, "release_url": "https://pypi.org/project/Laka/0.3/", "requires_dist": null, "requires_python": "", "summary": "Micro Service Framework for Python", "version": "0.3", "yanked": false, "yanked_reason": null }, "last_serial": 6006955, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8ff772ff8b22ed72778ef7add528509b", "sha256": "18a7c844d326f3268bbfaf6ee43386f01477644e95d5915f762776b6ffc1ca0c" }, "downloads": -1, "filename": "Laka-0.1.tar.gz", "has_sig": false, "md5_digest": "8ff772ff8b22ed72778ef7add528509b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4887, "upload_time": "2019-10-14T03:39:30", "upload_time_iso_8601": "2019-10-14T03:39:30.353609Z", "url": "https://files.pythonhosted.org/packages/78/e2/1731a14388ccbd76c94032749dd424255ae87fc3d3820bfc93e3ba96c3b1/Laka-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "243da7829c39aabda179d7dc4d0c4750", "sha256": "5263b58d8f4f0d903a7dfd01fcb4dabcf8e1f0c2ea539a03d1f089746c79b2a2" }, "downloads": -1, "filename": "Laka-0.1.1.tar.gz", "has_sig": false, "md5_digest": "243da7829c39aabda179d7dc4d0c4750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4934, "upload_time": "2019-10-14T04:10:23", "upload_time_iso_8601": "2019-10-14T04:10:23.107980Z", "url": "https://files.pythonhosted.org/packages/cb/97/2538cdc194c161348596e58d4490975ad089504873b37f147d4df804da0a/Laka-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "35e2e604c2903f0ce2e9e72eb22fc349", "sha256": "409763e72a8197f56ec3e87fb2874d1cd32f5ada44f0364d8c37f4085a30d4eb" }, "downloads": -1, "filename": "Laka-0.1.2.tar.gz", "has_sig": false, "md5_digest": "35e2e604c2903f0ce2e9e72eb22fc349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4930, "upload_time": "2019-10-14T07:25:14", "upload_time_iso_8601": "2019-10-14T07:25:14.571649Z", "url": "https://files.pythonhosted.org/packages/ec/5e/7b1c3dec1bdba23bac35a53f4d09594ff2cb8c900561ceae6839addda918/Laka-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8539704e14c6b25306f4df63325aac03", "sha256": "6aa3e97c6649e75873362f61e5bd4f66243743592e9a4f2855797d3fa7327a4e" }, "downloads": -1, "filename": "Laka-0.1.3.tar.gz", "has_sig": false, "md5_digest": "8539704e14c6b25306f4df63325aac03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5532, "upload_time": "2019-10-14T12:37:50", "upload_time_iso_8601": "2019-10-14T12:37:50.452049Z", "url": "https://files.pythonhosted.org/packages/9b/c1/a84f9f0bb7e97a791239e33b9644bf7424f1a326da827cc4bb7ec97eecd6/Laka-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c20b6ee7170646c333dd754cd6715fa0", "sha256": "e6670a5a532bf5531b09b934150cae24c0e89db17e0cc8a88818d48ab6d94bdd" }, "downloads": -1, "filename": "Laka-0.1.4.tar.gz", "has_sig": false, "md5_digest": "c20b6ee7170646c333dd754cd6715fa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6005, "upload_time": "2019-10-14T14:07:44", "upload_time_iso_8601": "2019-10-14T14:07:44.558775Z", "url": "https://files.pythonhosted.org/packages/44/c9/b090558d9b5609c146bc29476f9eb3dee143394f0a59c55c3be43cef0e95/Laka-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "dc4d2727cb855d66e16c206f7d64fa9e", "sha256": "239c5a731aed22a6280a63632b37592a520ee81c0689c19b792c98df323a43f8" }, "downloads": -1, "filename": "Laka-0.1.5.tar.gz", "has_sig": false, "md5_digest": "dc4d2727cb855d66e16c206f7d64fa9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6286, "upload_time": "2019-10-15T12:29:39", "upload_time_iso_8601": "2019-10-15T12:29:39.338789Z", "url": "https://files.pythonhosted.org/packages/18/cc/92c31b9a1746947323e1054419abc9f5ced1147c6586465a29ed2d165dac/Laka-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b0bbb0611d394c901fcc55e402f07954", "sha256": "818df431a37c7c49dbe0ceaccf10c3da69b47f3b97e1ec70c95aebda78f43c40" }, "downloads": -1, "filename": "Laka-0.1.6.tar.gz", "has_sig": false, "md5_digest": "b0bbb0611d394c901fcc55e402f07954", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6291, "upload_time": "2019-10-15T12:44:22", "upload_time_iso_8601": "2019-10-15T12:44:22.366780Z", "url": "https://files.pythonhosted.org/packages/b4/ec/cc40e39506dd48fe28447a0f2ab0ab0d2315fdc4c8c3478f6d42063464d2/Laka-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "7f2d52900d68f527857102a706167756", "sha256": "117a8ce54edb039fd5b5480c993644fb6176da77639f6dd6dc16c306c3208292" }, "downloads": -1, "filename": "Laka-0.2.tar.gz", "has_sig": false, "md5_digest": "7f2d52900d68f527857102a706167756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7446, "upload_time": "2019-10-16T11:36:32", "upload_time_iso_8601": "2019-10-16T11:36:32.822200Z", "url": "https://files.pythonhosted.org/packages/e5/20/15a103af5044d1b6bc49da7abba6c4c704f38b3543391c9995565eeb2a41/Laka-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "392e73cff7ecae5eefa9aa3abb3082e0", "sha256": "e56ecd5cd7c386e8eb61696aa2cd6e08f2c7b9b9d711ebb281747e834177deba" }, "downloads": -1, "filename": "Laka-0.3.tar.gz", "has_sig": false, "md5_digest": "392e73cff7ecae5eefa9aa3abb3082e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7865, "upload_time": "2019-10-21T12:03:51", "upload_time_iso_8601": "2019-10-21T12:03:51.756483Z", "url": "https://files.pythonhosted.org/packages/d4/e6/4aa46d31ca4ca88a96ec2b09b9bbebde4012ed53b3f5c9cbd53884ab2463/Laka-0.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "392e73cff7ecae5eefa9aa3abb3082e0", "sha256": "e56ecd5cd7c386e8eb61696aa2cd6e08f2c7b9b9d711ebb281747e834177deba" }, "downloads": -1, "filename": "Laka-0.3.tar.gz", "has_sig": false, "md5_digest": "392e73cff7ecae5eefa9aa3abb3082e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7865, "upload_time": "2019-10-21T12:03:51", "upload_time_iso_8601": "2019-10-21T12:03:51.756483Z", "url": "https://files.pythonhosted.org/packages/d4/e6/4aa46d31ca4ca88a96ec2b09b9bbebde4012ed53b3f5c9cbd53884ab2463/Laka-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }