{ "info": { "author": "Asyncy", "author_email": "me@kennethreitz.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n# omg.py\n\nA micro-framework for the excellent **[Open Microservices Guide](https://microservices.guide/)**, for suppportive code written in Python 3.6+.\n\n**Note**: this is pre-release software, and is subject to improvement. Contributions are welcome! This framework is being developed for [other languages](https://github.com/microservices?utf8=%E2%9C%93&q=omg.*&type=&language=), as well. If you'd like to help, [let us know](kenneth@storyscript.io)!\n\n# Intended / Example Usage\n\n```shell\n$ cat service.py\n```\n```python\nimport omg\nfrom uuid import uuid4\n\nservice = omg.Microservice(name='uuid')\n\n@service.register()\ndef new(prefix: str) -> str:\n \"\"\"Generates a UUID, with a given prefix.\"\"\"\n return f'{prefix}{uuid4().hex}'\n\nif __name__ == '__main__':\n service.serve()\n```\n\n`register` takes some optional arguments: `name` and `path`. You can also call `service.add(f=new)`, instead.\n\nNext, run the command `$ omg-generate` `microservice.yml` files will automatically be generated, for your application:\n\n```shell\n$ omg-generate service:service\n\u2026\n'microservice.yml' written to disk!\n```\n\n```yaml\n$ cat microservice.yml\nactions:\n new:\n help: Generates a UUID, with a given prefix.\n arguments:\n prefix:\n in: query\n required: true\n type: string\n http:\n method: get\n path: /new\n port: 8080\n output:\n type: string\nlifecycle:\n startup:\n command:\n - python3\n - /app/service.py\nomg: 1\n\n```\n\n```shell\n$ cat Dockerfile\nFROM kennethreitz/pipenv\nCOPY . /app\nCMD [\"python3\", \"service.py\"]\n```\n\nNow, run your microservice!\n\n```shell\n$ python service.py\n2019-05-09 14:45:39,342 - micro - DEBUG - Initiating 'uuid' service.\n2019-05-09 14:45:39,344 - micro - DEBUG - Registering Flask endpoint: '/new'\n2019-05-09 14:45:39,344 - micro - DEBUG - Dockerfile './Dockerfile' already exists!\n2019-05-09 14:45:39,345 - micro - DEBUG - Microservice Manifest './microservice.yml' already exists!\n2019-05-09 14:45:39,346 - micro - INFO - Serving on: '*:8080'\n```\n\nThis will spawn a Flask application (using the production-ready [waitress web server](https://docs.pylonsproject.org/projects/waitress/en/stable/)), preconfigured to serve the masses!\n\nOr, use the [omg-cli](https://github.com/microservices/omg-cli):\n\n```shell\n$ omg run new -a prefix='user-'\n\u2026\n```\n\n## Installation\n\n```shell\n$ pip install omg.py\n```\n\n**P.S.** Do provide feedback, if you desire! :)\n\n\u2728 \ud83c\udf70 \u2728\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/microservices/omg.py", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "omg-micro", "package_url": "https://pypi.org/project/omg-micro/", "platform": "", "project_url": "https://pypi.org/project/omg-micro/", "project_urls": { "Homepage": "https://github.com/microservices/omg.py" }, "release_url": "https://pypi.org/project/omg-micro/0.4.0/", "requires_dist": [ "pyyaml", "Flask", "waitress", "setproctitle", "docopt", "inflection" ], "requires_python": ">=3.6.0", "summary": "A micro-framework for the OMG, and code written in Python 3.6+.", "version": "0.4.0" }, "last_serial": 5380804, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7e2a4b3677e85df5c83c99a15adb6af6", "sha256": "4770d2afca2625774d52cc515e357872648e9d7c52d9a33f6803466275d0d144" }, "downloads": -1, "filename": "omg_micro-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e2a4b3677e85df5c83c99a15adb6af6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4922, "upload_time": "2019-05-09T22:07:43", "url": "https://files.pythonhosted.org/packages/fc/37/5eaa5cf0533a3bb7c01089db097d44f2d5c8bdb8cc2503ea4e7820b5d7b8/omg_micro-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8f141dc66fafe743bb1bf8f9495d61e", "sha256": "677d0482fbecb7ca2a7a83486ae9b309686470ab12c00e9790e37a295c3fe2e3" }, "downloads": -1, "filename": "omg-micro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f8f141dc66fafe743bb1bf8f9495d61e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6122, "upload_time": "2019-05-09T22:07:46", "url": "https://files.pythonhosted.org/packages/a3/3b/ad93abb5cf766ba3adec8ea8a0df97b3dc9c9fb755c13393aa966068ac10/omg-micro-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "3e5947f1ec1cc2caaab2d5ecc602d95a", "sha256": "d686e6ecb3925c3ad68d98ed4d72131b1c2143477798d7c2cfdb5d85f3ff57d3" }, "downloads": -1, "filename": "omg_micro-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e5947f1ec1cc2caaab2d5ecc602d95a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4929, "upload_time": "2019-05-09T22:53:03", "url": "https://files.pythonhosted.org/packages/29/c9/47dc0c0e6a188ab50c50d00ea9921eaeb6d0aa933eb75c4e7a1189bf5d14/omg_micro-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1baa1b50333e4319d9b1e707ea880c0", "sha256": "fa4af2b714ca288670b0fa7b2b6d0e6fc6bf7cc78c6ffbc4bd14022c71fc603f" }, "downloads": -1, "filename": "omg-micro-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c1baa1b50333e4319d9b1e707ea880c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6139, "upload_time": "2019-05-09T22:53:04", "url": "https://files.pythonhosted.org/packages/6c/5e/e02bace83f8627df0c080c6effb801f89aef362f27c38e221fc662f801e4/omg-micro-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c0e9e200639280862b3960a36cd7d550", "sha256": "1a14cd2929fab69390d5f7ba314a4ab1108d2c15e29cdfa651e638697fcd1676" }, "downloads": -1, "filename": "omg_micro-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0e9e200639280862b3960a36cd7d550", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4936, "upload_time": "2019-05-09T23:06:08", "url": "https://files.pythonhosted.org/packages/ed/96/6800cc6e826054768a0bab1518d59ab3ddd3c54d6dc1716986d8b1d19b05/omg_micro-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c466f41bb50dc698d51d527d5e671534", "sha256": "e25b6284e59c97d1ff4f737dd5c5de5e43582c3d971a38f044f6873226ec6a42" }, "downloads": -1, "filename": "omg-micro-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c466f41bb50dc698d51d527d5e671534", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6135, "upload_time": "2019-05-09T23:06:09", "url": "https://files.pythonhosted.org/packages/36/6f/4d9482199678c10bcbeaed7d4888c1bfd3a996862af3f53d1bff02ce0202/omg-micro-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "daaf31ea5618c14fe31377d61337748e", "sha256": "a30c43ba7c4bfd8b5c80640227a7ac03951935c0dcf43e2afb48379a442c5db6" }, "downloads": -1, "filename": "omg_micro-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "daaf31ea5618c14fe31377d61337748e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4937, "upload_time": "2019-05-09T23:18:36", "url": "https://files.pythonhosted.org/packages/06/d1/9b0aeb362287f97bd18fdf21c159d51f5d957ab6b8826dca166f82110862/omg_micro-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3596581376f1287577c2d3ba5783b546", "sha256": "dad55aa83819d06c2014f2cd737e870f3f2e196cb7e47801fc9405881192fc2f" }, "downloads": -1, "filename": "omg-micro-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3596581376f1287577c2d3ba5783b546", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6141, "upload_time": "2019-05-09T23:18:38", "url": "https://files.pythonhosted.org/packages/f4/b8/4e658ac227ec1ccec560700af9c47631dc7e90c4e696c4e08d2c96442ac1/omg-micro-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "5ef1a7f24f5e503713cf3cba8545142a", "sha256": "6ea7919973560d6737f07244c87ac757f28f6bd87c02936cd8344a916ccf962f" }, "downloads": -1, "filename": "omg_micro-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ef1a7f24f5e503713cf3cba8545142a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4960, "upload_time": "2019-05-09T23:26:31", "url": "https://files.pythonhosted.org/packages/01/2c/9addaf6c33a534452a879d6e558c8b640cc4eb5715210b607e1d3ef1a5c8/omg_micro-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41cc17b39204a2ee0347ca4a6348fe90", "sha256": "13b211b6f7ae8cf00ca3054de4032bc043173737b54620c2ea29363ca1970241" }, "downloads": -1, "filename": "omg-micro-0.2.2.tar.gz", "has_sig": false, "md5_digest": "41cc17b39204a2ee0347ca4a6348fe90", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6165, "upload_time": "2019-05-09T23:26:33", "url": "https://files.pythonhosted.org/packages/9f/5c/e49826b40e731297999ef48073c7de9080bb341231f7c69af0bd84ca0fc8/omg-micro-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "585b06d6c4dafc94215e4c6dd53eb901", "sha256": "5096572ba70464243dd88f8e88eab798e2cb7dfc51d1b5ca3ff9bc24fcdf804c" }, "downloads": -1, "filename": "omg_micro-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "585b06d6c4dafc94215e4c6dd53eb901", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 5007, "upload_time": "2019-05-10T11:54:34", "url": "https://files.pythonhosted.org/packages/bb/f6/92dafb1a691a3f14918c3e15006120600a7b73b08a99dc8ef03f65124b0a/omg_micro-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6378f8ae9c4ca1d5c58f44476afb7963", "sha256": "02552e1f849e1c0ef74fd7150d1cf90d7a316797637e13ff492abf99b9968ab0" }, "downloads": -1, "filename": "omg-micro-0.2.3.tar.gz", "has_sig": false, "md5_digest": "6378f8ae9c4ca1d5c58f44476afb7963", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6194, "upload_time": "2019-05-10T11:54:35", "url": "https://files.pythonhosted.org/packages/96/94/e436f8bfcf436a1ac7e3dd47de1940dffa64ab1b1adffd1a57e8af684f9f/omg-micro-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "05dce1b3350ee84b04b8140c449ab05c", "sha256": "d17051e119c3eebbefc5742c8d024945c4dc252f3475d62efc8b393760d3c241" }, "downloads": -1, "filename": "omg_micro-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05dce1b3350ee84b04b8140c449ab05c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 5444, "upload_time": "2019-05-10T14:56:12", "url": "https://files.pythonhosted.org/packages/21/24/2313bc692e9ca9dc573e9c63fc92b3b2141bbaeff7fac47ff7cdb1e7a7ed/omg_micro-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1283f04370dd73735a64446952a66f2c", "sha256": "7d60dbf71b05687f47e519a5ad837d287039ce7dfc98dde7a110519cd0aaf9e9" }, "downloads": -1, "filename": "omg-micro-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1283f04370dd73735a64446952a66f2c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6660, "upload_time": "2019-05-10T14:56:13", "url": "https://files.pythonhosted.org/packages/5f/fb/1edbd8fadc84f4e47f258f9f4a182bc01115ea087a3f3e2eabc971ac65a3/omg-micro-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "6f7d17872b5d40788bcc71cb7a81c45b", "sha256": "e00034ebd017357661e34a702a8d3ce263fdb974664b6c39d18bc8efd6b58060" }, "downloads": -1, "filename": "omg_micro-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f7d17872b5d40788bcc71cb7a81c45b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 5529, "upload_time": "2019-05-10T15:00:22", "url": "https://files.pythonhosted.org/packages/cd/8a/5f6c56121f5c1366ad0ced2b95de65e606ac583c7b02551287472993d4b2/omg_micro-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03a2a89772f25af393a1eed7854ec364", "sha256": "2db577e30819c87da4ec8f274b22eef321233965a7ae35dc9653ecc842fab0d3" }, "downloads": -1, "filename": "omg-micro-0.3.1.tar.gz", "has_sig": false, "md5_digest": "03a2a89772f25af393a1eed7854ec364", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6730, "upload_time": "2019-05-10T15:00:23", "url": "https://files.pythonhosted.org/packages/65/b6/b7f66aaadf43537e887697831cdc11ff9bcb613cfc321977d49fda9e214a/omg-micro-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "97574c9b81777c02feeda7401a0c3205", "sha256": "1ce3d29f225f2c5a7d27f61029b1a5a1612a587bbb1b6956e87804ab1fb3dbfe" }, "downloads": -1, "filename": "omg_micro-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "97574c9b81777c02feeda7401a0c3205", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 5534, "upload_time": "2019-05-10T15:02:33", "url": "https://files.pythonhosted.org/packages/da/94/6209d6b759c36a27767637eedb5f86034465178469030563b545b8d85692/omg_micro-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ac6574b3484e1e292fefb3d0b9a537b", "sha256": "85a355b278a798726b8bfdc4304485b792a559d36c38e39aeebfa3aba3d1e984" }, "downloads": -1, "filename": "omg-micro-0.3.2.tar.gz", "has_sig": false, "md5_digest": "5ac6574b3484e1e292fefb3d0b9a537b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6736, "upload_time": "2019-05-10T15:02:34", "url": "https://files.pythonhosted.org/packages/c1/94/2c29ba8594a411eec00204a9b6e874d8f13644144e7fd29c7092fdcabfd1/omg-micro-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ed500ac0d5aed01c926840cf816ff593", "sha256": "6094db7be977be2b24f1b7f4c4221729c03ed92eb1a06b71111eb25016ab2b0b" }, "downloads": -1, "filename": "omg_micro-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed500ac0d5aed01c926840cf816ff593", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 5682, "upload_time": "2019-05-11T15:16:59", "url": "https://files.pythonhosted.org/packages/12/b8/4aedcea26eed5f3915bed9e519db0b9ddac2ab7c9744ed38433bc1e20704/omg_micro-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9987a28a238b70d9f2c8ad51d023fde", "sha256": "96f09ce2156e9792e2330e3276b1c77d47daca86c865ec802eb9f5dd9cf3ff2b" }, "downloads": -1, "filename": "omg-micro-0.3.3.tar.gz", "has_sig": false, "md5_digest": "d9987a28a238b70d9f2c8ad51d023fde", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 6730, "upload_time": "2019-05-11T15:17:01", "url": "https://files.pythonhosted.org/packages/c3/ff/f2224f8fc8a1d52d3fe4dfae23524967be1b4e069b0a33b3ec797572ef1b/omg-micro-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ec50a1d7933d76199ebbb9dc81ff32d6", "sha256": "00cc676726cbe11fecb45d3c043c4d404d216bcf9932ce6ab09fba88d72ae7f2" }, "downloads": -1, "filename": "omg_micro-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec50a1d7933d76199ebbb9dc81ff32d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 6494, "upload_time": "2019-06-10T11:36:42", "url": "https://files.pythonhosted.org/packages/b3/6e/29376cf474fac8adae53012d6ad2c41f12010fe41015ebe18de1ab328e79/omg_micro-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d589c0a6bb87660a33b18a77f80b622c", "sha256": "24904ef50b6186b623171c6887e86ffbaab44b227ac68d3f564a97186968cb32" }, "downloads": -1, "filename": "omg-micro-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d589c0a6bb87660a33b18a77f80b622c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7399, "upload_time": "2019-06-10T11:36:44", "url": "https://files.pythonhosted.org/packages/d6/c1/9026d977093af34ce2ee16ef2a595858ba63c9eab2da899dbc0c9a4db762/omg-micro-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ec50a1d7933d76199ebbb9dc81ff32d6", "sha256": "00cc676726cbe11fecb45d3c043c4d404d216bcf9932ce6ab09fba88d72ae7f2" }, "downloads": -1, "filename": "omg_micro-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec50a1d7933d76199ebbb9dc81ff32d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 6494, "upload_time": "2019-06-10T11:36:42", "url": "https://files.pythonhosted.org/packages/b3/6e/29376cf474fac8adae53012d6ad2c41f12010fe41015ebe18de1ab328e79/omg_micro-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d589c0a6bb87660a33b18a77f80b622c", "sha256": "24904ef50b6186b623171c6887e86ffbaab44b227ac68d3f564a97186968cb32" }, "downloads": -1, "filename": "omg-micro-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d589c0a6bb87660a33b18a77f80b622c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7399, "upload_time": "2019-06-10T11:36:44", "url": "https://files.pythonhosted.org/packages/d6/c1/9026d977093af34ce2ee16ef2a595858ba63c9eab2da899dbc0c9a4db762/omg-micro-0.4.0.tar.gz" } ] }