{ "info": { "author": "Storyscript", "author_email": "support@storyscript.io", "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# oms.py\n\nA micro-framework for the excellent **[Open Microservices Specification](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=oms.*&type=&language=), as well. If you'd like to help, [let us know](support@storyscript.io)!\n\n# Intended / Example Usage\n\n```shell\n$ cat service.py\n```\n```python\nimport oms\nfrom uuid import uuid4\n\nservice = oms.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 `$ oms-generate` `oms.yml` files will automatically be generated, for your application:\n\n```shell\n$ oms-generate service:service\n\u2026\n'oms.yml' written to disk!\n```\n\n```yaml\n$ cat oms.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\noms: 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 './oms.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 [oms](https://github.com/microservices/oms) CLI:\n\n```shell\n$ oms run new -a prefix='user-'\n\u2026\n```\n\n## Installation\n\n```shell\n$ pip install\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/oms.py", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "oms", "package_url": "https://pypi.org/project/oms/", "platform": "", "project_url": "https://pypi.org/project/oms/", "project_urls": { "Homepage": "https://github.com/microservices/oms.py" }, "release_url": "https://pypi.org/project/oms/0.5.0/", "requires_dist": [ "pyyaml", "Flask", "waitress", "setproctitle", "docopt", "inflection" ], "requires_python": ">=3.6.0", "summary": "A micro-framework for the OMS, and code written in Python 3.6+.", "version": "0.5.0", "yanked": false, "yanked_reason": null }, "last_serial": 6053350, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "38fb39509eec49574196360f8663b5f2", "sha256": "2a8213d95b571ca099ae67cd214fe62406692f06e574ad86fabb920d77a5f7ff" }, "downloads": -1, "filename": "oms-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38fb39509eec49574196360f8663b5f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 6399, "upload_time": "2019-10-16T06:39:41", "upload_time_iso_8601": "2019-10-16T06:39:41.608902Z", "url": "https://files.pythonhosted.org/packages/5d/9d/458d74dfe7574a08f91ae8a179a9ec7fa535366f2f2a240ca0c137ee37ca/oms-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ac59fb1bdabe116a524a8a7fea71a974", "sha256": "5da492fe0b9ee237f6498439b6b080281aadc51ed0da6c0c1b483a54919da3f9" }, "downloads": -1, "filename": "oms-0.5.0.tar.gz", "has_sig": false, "md5_digest": "ac59fb1bdabe116a524a8a7fea71a974", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7363, "upload_time": "2019-10-16T06:39:45", "upload_time_iso_8601": "2019-10-16T06:39:45.878781Z", "url": "https://files.pythonhosted.org/packages/f0/39/4228157144295160d5ecc217bb753c21d017bc00c7f0f3cd9274e6dc9590/oms-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38fb39509eec49574196360f8663b5f2", "sha256": "2a8213d95b571ca099ae67cd214fe62406692f06e574ad86fabb920d77a5f7ff" }, "downloads": -1, "filename": "oms-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38fb39509eec49574196360f8663b5f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 6399, "upload_time": "2019-10-16T06:39:41", "upload_time_iso_8601": "2019-10-16T06:39:41.608902Z", "url": "https://files.pythonhosted.org/packages/5d/9d/458d74dfe7574a08f91ae8a179a9ec7fa535366f2f2a240ca0c137ee37ca/oms-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ac59fb1bdabe116a524a8a7fea71a974", "sha256": "5da492fe0b9ee237f6498439b6b080281aadc51ed0da6c0c1b483a54919da3f9" }, "downloads": -1, "filename": "oms-0.5.0.tar.gz", "has_sig": false, "md5_digest": "ac59fb1bdabe116a524a8a7fea71a974", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7363, "upload_time": "2019-10-16T06:39:45", "upload_time_iso_8601": "2019-10-16T06:39:45.878781Z", "url": "https://files.pythonhosted.org/packages/f0/39/4228157144295160d5ecc217bb753c21d017bc00c7f0f3cd9274e6dc9590/oms-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }