{ "info": { "author": "yukinagae", "author_email": "yuki.nagae1130@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# nameko-design\n\n![logo](https://raw.githubusercontent.com/yukinagae/nameko-design/master/logo.png)\n\nGenerate [Nameko](https://www.nameko.io/) http files from design schema inspired by [goa](https://goa.design/)\n\n## Dependencies\n\n- Python3.6\n- [Poetry](https://github.com/sdispater/poetry)\n\n## Installation\n\n```bash\ncd nameko-design\npoetry install\n```\n\n## Usage\n\n```bash\ncd nameko-design\npoetry run nameko-design nameko_design/sample.py\n```\n\n## Design\n\nThis API design schema\n\n```python\nwith Service('http_service'):\n Title('This is a http service')\n\n with Method('liveness'):\n Description('liveness probe')\n Result(str)\n HTTP(GET, '/liveness')\n\n with Method('readiness'):\n Description('readiness probe')\n Result(str)\n HTTP(GET, '/readiness')\n```\n\nwill generate the below nameko file\n\n```python\nfrom nameko.web.handlers import http\n\n\nclass HttpService:\n name = 'http service'\n\n @http('GET', '/liveness')\n def liveness(self, request) -> str:\n pass\n\n @http('GET', '/readiness')\n def readiness(self, request) -> str:\n pass\n```\n\n## TODO\n\n- [ ] Configure http url and port\n- [ ] Add URL parameter and type\n- [ ] Add payload (name, type, description, position etc)\n- [ ] Add validation\n- [ ] Add gRPC server\n- [ ] Generate proto files\n- [ ] Generate swagger json\n\nWhat I want:\n\n```python\nwith Service('example_service'):\n Title('This is an example service')\n\n with Method('liveness'):\n Description('liveness probe')\n Result(str)\n HTTP(GET, '/liveness')\n\n with Method('add'):\n Description('a + b')\n with Payload(): # Not yet implemented\n Field(1, \"a\", int, \"left operand\") # Not yet implemented\n Field(2, \"b\", int, \"right operand\") # Not yet implemented\n Required(\"a\", \"b\") # Not yet implemented\n Result(int)\n HTTP(GET, '/add/{a}/{b}') # Not yet implemented\n GRPC() # Not yet implemented\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/yukinagae/nameko-design", "keywords": "nameko,microservices,design,framework", "license": "MIT", "maintainer": "yukinagae", "maintainer_email": "yuki.nagae1130@gmail.com", "name": "nameko-design", "package_url": "https://pypi.org/project/nameko-design/", "platform": "", "project_url": "https://pypi.org/project/nameko-design/", "project_urls": { "Homepage": "https://github.com/yukinagae/nameko-design", "Repository": "https://github.com/yukinagae/nameko-design" }, "release_url": "https://pypi.org/project/nameko-design/0.1.dev2/", "requires_dist": [ "Jinja2 (>=2.10,<3.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Generate http files from design schema inspired by goa", "version": "0.1.dev2" }, "last_serial": 5902375, "releases": { "0.1.dev1": [ { "comment_text": "", "digests": { "md5": "31b47ae5ee8b52ecd62d05f517828ae4", "sha256": "f50bf0b7640a9d37a2393aa69809a1786b91cb8da86814b8d3d3b9c67dd8ab9a" }, "downloads": -1, "filename": "nameko_design-0.1.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "31b47ae5ee8b52ecd62d05f517828ae4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 4642, "upload_time": "2019-09-29T11:03:56", "url": "https://files.pythonhosted.org/packages/71/43/a3745a4a90bb7cb7f8d3a38cb9a3045cbcc1c98723219a7821e6451005ad/nameko_design-0.1.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44991bec5867102a91895f6e1a15f625", "sha256": "f68a549c0117cbe18e1d011548b2dea0168d7852137c9f9b6d6a0688458bd001" }, "downloads": -1, "filename": "nameko-design-0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "44991bec5867102a91895f6e1a15f625", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4063, "upload_time": "2019-09-29T11:03:50", "url": "https://files.pythonhosted.org/packages/43/88/3554c2ce9c4613886e834b3a578837b03390e0122b0a43b525d3b5dd34cf/nameko-design-0.1.dev1.tar.gz" } ], "0.1.dev2": [ { "comment_text": "", "digests": { "md5": "96e3b72da24c04beea46537d15e3e373", "sha256": "2843d6aa10fd18fcdc14063458b8bea33ffe6f6165cdb68f72082024f9dc4439" }, "downloads": -1, "filename": "nameko_design-0.1.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "96e3b72da24c04beea46537d15e3e373", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 4652, "upload_time": "2019-09-29T11:10:23", "url": "https://files.pythonhosted.org/packages/ed/74/db5197beb8d1462cc54adbb701bc4f3037ac174edba5bc658fcecf388fe2/nameko_design-0.1.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7ba06e4e8d55cb4b151d458210b425a", "sha256": "9b83ddc9eebcc2f2ca35fb9a9b0267708b1f2d3cc459b815a60d347fa34a0837" }, "downloads": -1, "filename": "nameko-design-0.1.dev2.tar.gz", "has_sig": false, "md5_digest": "e7ba06e4e8d55cb4b151d458210b425a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4092, "upload_time": "2019-09-29T11:10:18", "url": "https://files.pythonhosted.org/packages/c3/87/ba59e70eabdd70507e6cb1479c98b5885ca2bb0f0fb4266931d1ff10ce42/nameko-design-0.1.dev2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "96e3b72da24c04beea46537d15e3e373", "sha256": "2843d6aa10fd18fcdc14063458b8bea33ffe6f6165cdb68f72082024f9dc4439" }, "downloads": -1, "filename": "nameko_design-0.1.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "96e3b72da24c04beea46537d15e3e373", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 4652, "upload_time": "2019-09-29T11:10:23", "url": "https://files.pythonhosted.org/packages/ed/74/db5197beb8d1462cc54adbb701bc4f3037ac174edba5bc658fcecf388fe2/nameko_design-0.1.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7ba06e4e8d55cb4b151d458210b425a", "sha256": "9b83ddc9eebcc2f2ca35fb9a9b0267708b1f2d3cc459b815a60d347fa34a0837" }, "downloads": -1, "filename": "nameko-design-0.1.dev2.tar.gz", "has_sig": false, "md5_digest": "e7ba06e4e8d55cb4b151d458210b425a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4092, "upload_time": "2019-09-29T11:10:18", "url": "https://files.pythonhosted.org/packages/c3/87/ba59e70eabdd70507e6cb1479c98b5885ca2bb0f0fb4266931d1ff10ce42/nameko-design-0.1.dev2.tar.gz" } ] }