{ "info": { "author": "jang", "author_email": "faastm@ioctl.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications :: Chat" ], "description": "# FaaS-based STM\n\nThis is a small library that attempts to do STM to update stored\nstate in an object-storage system.\n\nIt also interacts with the Slack API.\n\nThe whole thing works by saving external effects until the\nSTM commit passes; at that point, the external effects are\ncommitted also.\n\n## Usage\n\nThis can be installed in a Fn-style serverless function like this:\n\n import logging\n\n from slacker import Text, BaseDispatch, handle, debounce\n\n LOG = logging.getLogger(__name__)\n\n\n def handler(ctx, data=None):\n LOG.debug(\"got request: %s\", data)\n try:\n response = handle(ctx, data, bot_class=MyBot)\n LOG.debug(\"returning %s %s\", response.status_code, response.response_data)\n return response\n except Exception as e:\n LOG.exception(\"something went wrong: %s\", e)\n\n\n class MyBot(BaseDispatch):\n @debounce(30, text=lambda t: t.ts)\n def on_message(self, srv=None, sender=None, channel=None, receivers=None, text=None):\n if text.match(\"hello\") is not None:\n srv.broadcast(channel=channel,\n text=Text(\"hello, world!\"))\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": "", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "faastm", "package_url": "https://pypi.org/project/faastm/", "platform": "", "project_url": "https://pypi.org/project/faastm/", "project_urls": null, "release_url": "https://pypi.org/project/faastm/0.1.1/", "requires_dist": [ "cachetools", "dill", "fdk", "oci (>=2.2.18)", "requests" ], "requires_python": "", "summary": "Experimental one-cell STM for FaaS", "version": "0.1.1" }, "last_serial": 5564602, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "410447d870e26718e026f9886997b4e9", "sha256": "28e425eb4f5d10a35fa8ae2a5ddf53ededa831dd38c82444d9c526b876bc7f4d" }, "downloads": -1, "filename": "faastm-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "410447d870e26718e026f9886997b4e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15994, "upload_time": "2019-07-18T22:05:24", "url": "https://files.pythonhosted.org/packages/cb/45/ad362bc661a7d489f3d56fa42192a73e441967fd9f5772cd7b70df481bc6/faastm-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b309b76b57b000dd3338d9a8f8a16bc", "sha256": "f4e61e7ec827f8496122c3822caa3b3f501d50ad9b81785d8586e28c2e0ea404" }, "downloads": -1, "filename": "faastm-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7b309b76b57b000dd3338d9a8f8a16bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8918, "upload_time": "2019-07-18T22:05:26", "url": "https://files.pythonhosted.org/packages/80/bc/44c7ae6e0e2835e5477838cf10f434ff278f4ecb4bf94a6a29f3c9bd469b/faastm-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "90d201422fd8f89542af09e0fa925275", "sha256": "ba45decdbf7b2ee90020c9ba52d307968f59422dc6920c0c6351fc60b65862c5" }, "downloads": -1, "filename": "faastm-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "90d201422fd8f89542af09e0fa925275", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15974, "upload_time": "2019-07-21T09:26:27", "url": "https://files.pythonhosted.org/packages/c0/68/9f8818b3af2d13ae1c9e946ddc9acebd77398d6e45020f1287071aa1f71d/faastm-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d508de4ffc39f3b0abe4cead8136c4a", "sha256": "55c4ba713a2bb2e88e75ca44e1c00266f59b0ab246d1ceb1b8d626dd0c96e3ad" }, "downloads": -1, "filename": "faastm-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6d508de4ffc39f3b0abe4cead8136c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8912, "upload_time": "2019-07-21T09:26:28", "url": "https://files.pythonhosted.org/packages/26/91/f6d6f416d50ab3aef63afe5eaf7b6a2030192a2316812d9c56c549dad0d1/faastm-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fa099d3e3de7dca14e3589a196d63523", "sha256": "833ff9332165639aedd6f3ada37b9566b671b29d446b4b751b1d185f0ca323fd" }, "downloads": -1, "filename": "faastm-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa099d3e3de7dca14e3589a196d63523", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15945, "upload_time": "2019-07-21T21:02:37", "url": "https://files.pythonhosted.org/packages/f8/eb/759c3ac944ef65c1bcff4a9e540ba8e041a269c218dd3b3221ea55e889d5/faastm-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1179d37190259bdc32ad73d27cf7bd31", "sha256": "4d8245d8fb82561aa44bd3ccf20be55bf27eeb16b5ce351b9a8571ac79cec97a" }, "downloads": -1, "filename": "faastm-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1179d37190259bdc32ad73d27cf7bd31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8877, "upload_time": "2019-07-21T21:02:38", "url": "https://files.pythonhosted.org/packages/78/a4/77407a691b3dc05a0c8e6bc30105744c771028636785a659725580f9da89/faastm-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa099d3e3de7dca14e3589a196d63523", "sha256": "833ff9332165639aedd6f3ada37b9566b671b29d446b4b751b1d185f0ca323fd" }, "downloads": -1, "filename": "faastm-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa099d3e3de7dca14e3589a196d63523", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15945, "upload_time": "2019-07-21T21:02:37", "url": "https://files.pythonhosted.org/packages/f8/eb/759c3ac944ef65c1bcff4a9e540ba8e041a269c218dd3b3221ea55e889d5/faastm-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1179d37190259bdc32ad73d27cf7bd31", "sha256": "4d8245d8fb82561aa44bd3ccf20be55bf27eeb16b5ce351b9a8571ac79cec97a" }, "downloads": -1, "filename": "faastm-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1179d37190259bdc32ad73d27cf7bd31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8877, "upload_time": "2019-07-21T21:02:38", "url": "https://files.pythonhosted.org/packages/78/a4/77407a691b3dc05a0c8e6bc30105744c771028636785a659725580f9da89/faastm-0.1.1.tar.gz" } ] }