{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: Unix", "Programming Language :: Python :: 3" ], "description": "# Function framework for Python\n\nThis framework provides a mechanism to write Function-as-a-Service\nstyle code in Python for handling CloudEvents delivered via HTTP.\n\nThis framework is primarily intended to work with\n[Knative](https://github.com/knative/docs), but also works to provide\na generic server for handling CloudEvents over HTTP (e.g. from\nKubernetes or on a local machine).\n\nUsage:\n\n```python\nimport logging\n\nfrom pyfun_events import Handle,Get\n\ncounter = 0\n\n\n# @Handle assumes json body. For string or other body conversion, try:\n# @Handle(str)\n@Handle\ndef DoEvent(data: str, context: dict):\n logging.info(data)\n counter = counter + 1\n\n\n@Handle(path=\"/secret\")\ndef DoOther(data: str, context: dict):\n if data.get(\"handshake\") == \"backwards\":\n counter = 0\n return \"It's gone, man\"\n\n\n@Get\ndef Info():\n return \"Got {0}\".format(counter)\n\n\n@Get(\"/dance\"):\ndef Party():\n return \"Like it's 1999\"\n```\n\n\n## Running manually\n\nCopy `packaging/config.py` and `packaging/requirements.txt` into your\napplication directory alongside your other code. You can then start the Flaskk webserver running your function with:\n\n```shell\nFLASK_APP=config\nflask run\n```\n\n## Running on Knative\n\nThere is a supplied build template in `packaging/build-template.yaml`, which you can apply to your cluster with:\n\n```shell\nkubectl apply -f packaging/build-template.yaml\n```\n\nor\n\n```shell\nkubectl apply -f https://github.com/evankanderson/pyfun/tree/master/packaging/build-template.yaml\n```\n\nThen update your Knative Service like so:\n\n```diff\napiVersion: serving.knative.dev/v1alpha1\nkind: Service\nmetadata:\n name: message-dumper\nspec:\n runLatest:\n configuration:\n+ build:\n+ source:\n+ git:\n+ url: YOUR_REPO_URL\n+ revision: HEAD\n+ template:\n+ name: pyfn\n+ arguments:\n+ - name: IMAGE\n+ value: YOUR_DOCKER_IMAGE\n+ serviceAccountName: builder\n revisionTemplate:\n spec:\n container:\n image: YOUR_DOCKER_IMAGE\n```\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/pypa/sampleproject", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyfun-events", "package_url": "https://pypi.org/project/pyfun-events/", "platform": "", "project_url": "https://pypi.org/project/pyfun-events/", "project_urls": { "Homepage": "https://github.com/pypa/sampleproject" }, "release_url": "https://pypi.org/project/pyfun-events/0.2.1/", "requires_dist": [ "cloudevents (<0.3,>=0.2.1)", "Flask (<2,>=1.0.2)", "ujson (<2,>=1.35)" ], "requires_python": "", "summary": "", "version": "0.2.1" }, "last_serial": 4711218, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e341f10475c32e0c322273d1b7ce02e5", "sha256": "b964fbf35453265e117ea83be33654963222d57d5521e3981292b76f0ad23f51" }, "downloads": -1, "filename": "pyfun_events-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e341f10475c32e0c322273d1b7ce02e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7019, "upload_time": "2019-01-16T21:01:57", "url": "https://files.pythonhosted.org/packages/de/21/19565c745d84517841269a4bb6003989e44c25c74b26fbcb76ad4bcbd3c3/pyfun_events-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83759543ee37a7316380fa3521259c40", "sha256": "c7fa19570de0b659e1311ebc7ff40eb5712da2d964db95d6573c9416b21370ce" }, "downloads": -1, "filename": "pyfun_events-0.1.0.tar.gz", "has_sig": false, "md5_digest": "83759543ee37a7316380fa3521259c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2122, "upload_time": "2019-01-16T21:01:59", "url": "https://files.pythonhosted.org/packages/13/90/817abfb1335bed352d0d07d40500bc38bf3ed6534d1ae9e7b68480e52de6/pyfun_events-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "87a2f5894b2ed489b2d3c036b5fb4af4", "sha256": "991f6135233f230b10844df18748edb145f00c7feb3362f7d1583f5916cd3a70" }, "downloads": -1, "filename": "pyfun_events-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "87a2f5894b2ed489b2d3c036b5fb4af4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7020, "upload_time": "2019-01-16T21:08:10", "url": "https://files.pythonhosted.org/packages/b5/99/9f9a1476045700e213dbfd3ee5afaa884db9eb8ce6c7b1025f43d68956cf/pyfun_events-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62c7e5f9cd6b7d989b1fe83e8b50806d", "sha256": "3c6fce64d3134240a6e337e644a9582ed560ab6ec44356c5eae9c68f89f93ee5" }, "downloads": -1, "filename": "pyfun_events-0.1.1.tar.gz", "has_sig": false, "md5_digest": "62c7e5f9cd6b7d989b1fe83e8b50806d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2046, "upload_time": "2019-01-16T21:08:12", "url": "https://files.pythonhosted.org/packages/4e/db/594a02ffac134299308d643e91181a2d50453bb01b7b26a24dbd056f41cf/pyfun_events-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "669964ed09a11d6159e7502746e96100", "sha256": "b48e159059b7f88946e33a338106ea93ba514882c0813721ac60c734e666f8f7" }, "downloads": -1, "filename": "pyfun_events-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "669964ed09a11d6159e7502746e96100", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7844, "upload_time": "2019-01-17T22:34:59", "url": "https://files.pythonhosted.org/packages/1b/5e/8b402b016cc8eebb8409620a0a29723379e81d9adb086d7951d5b6d53027/pyfun_events-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44610024fe5ea189915d42f15b45108a", "sha256": "f8b5ffc72eb74cbb88059280190fd23f55038a1ed45bc3216c981ebb056dce13" }, "downloads": -1, "filename": "pyfun_events-0.2.0.tar.gz", "has_sig": false, "md5_digest": "44610024fe5ea189915d42f15b45108a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3144, "upload_time": "2019-01-17T22:35:00", "url": "https://files.pythonhosted.org/packages/b6/98/85e40bae19db71eca3355d8150acd7eec5f1df01b19bf316934a94485745/pyfun_events-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "62c1b8c3f5496691da80b53d5429c2d9", "sha256": "8b349f811a58ade8e0a9044596d444f3e02f5b435d3d0b5c497a8e120438d9ab" }, "downloads": -1, "filename": "pyfun_events-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "62c1b8c3f5496691da80b53d5429c2d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7980, "upload_time": "2019-01-18T08:08:31", "url": "https://files.pythonhosted.org/packages/11/f0/092b6e1078ad4e5e0d482285d4e6bd7435e13e3692b6c7d34c7939b343ec/pyfun_events-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be22f907bb980dd1a55ab336b85ea655", "sha256": "cf8c300274f7872538c01ef92a228e437aac42ace13078e9fd7dd74bb2b25f5b" }, "downloads": -1, "filename": "pyfun_events-0.2.1.tar.gz", "has_sig": false, "md5_digest": "be22f907bb980dd1a55ab336b85ea655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3302, "upload_time": "2019-01-18T08:08:32", "url": "https://files.pythonhosted.org/packages/b6/5a/a907311bc55a4605e00922ff9e1e9c762cf85ce8519f426db2a51318e294/pyfun_events-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "62c1b8c3f5496691da80b53d5429c2d9", "sha256": "8b349f811a58ade8e0a9044596d444f3e02f5b435d3d0b5c497a8e120438d9ab" }, "downloads": -1, "filename": "pyfun_events-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "62c1b8c3f5496691da80b53d5429c2d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7980, "upload_time": "2019-01-18T08:08:31", "url": "https://files.pythonhosted.org/packages/11/f0/092b6e1078ad4e5e0d482285d4e6bd7435e13e3692b6c7d34c7939b343ec/pyfun_events-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be22f907bb980dd1a55ab336b85ea655", "sha256": "cf8c300274f7872538c01ef92a228e437aac42ace13078e9fd7dd74bb2b25f5b" }, "downloads": -1, "filename": "pyfun_events-0.2.1.tar.gz", "has_sig": false, "md5_digest": "be22f907bb980dd1a55ab336b85ea655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3302, "upload_time": "2019-01-18T08:08:32", "url": "https://files.pythonhosted.org/packages/b6/5a/a907311bc55a4605e00922ff9e1e9c762cf85ce8519f426db2a51318e294/pyfun_events-0.2.1.tar.gz" } ] }