{ "info": { "author": "Ersin Ihsan Unkar", "author_email": "eiunkar@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# pyNakadi\nPython client for Nakadi\n\n## Installation\n\nYou can install pyNakadi via pip.\n\n`pip install pyNakadi`\n\nYou can find pyPI project here:\n\nhttps://pypi.python.org/pypi/pyNakadi/\n\n\n## Examples\n### Post event\n``` python\nfrom pyNakadi import NakadiClient, NakadiException\nimport pytz\nimport uuid\nfrom datetime import datetime\n\ntoken = ''\nurl = ''\n\ntime = datetime.utcnow().replace(tzinfo=pytz.UTC)\neid = uuid.uuid4()\n\nevent = {\n \"metadata\": {\n \"eid\": str(eid),\n \"occurred_at\": time.isoformat()\n },\n \"property1\": \"value1\",\n \"property2\": \"value2\"\n}\nevent_type = ''\n\n\nclient = NakadiClient(token, url)\n\ntry:\n client.post_events(event_type, [event])\nexcept NakadiException as ex:\n print(f'NakadiException[{ex.code}]: {ex.msg}')\n```\n\n### \u00a0Read event\n``` python\nimport pytz\nimport json\nfrom pyNakadi import NakadiClient, NakadiException, NakadiStream\nimport logging\nlogger = logging.getLogger(\"NAKADI\")\n\ntoken = ''\nhost = ''\nsubscription_id = ''\n\n\ndef get_subscription(token, host, subscription_id, limit):\n try:\n client = NakadiClient(token, host)\n return client.get_subscription_events_stream(subscription_id, batch_limit=limit, stream_limit=limit)\n except NakadiException as ex:\n logger.exception(ex.msg, exc_info=ex)\n raise ex\n\n\ndef get_batch(token, host, subscription_id, limit):\n try:\n subscription = get_subscription(token, host, subscription_id, limit)\n return json.loads(subscription.__next__()), subscription.stream_id\n except Exception as ex:\n logger.exception(\n 'Exception while fetching events from Nakadi', exc_info=ex)\n raise ex\n finally:\n subscription.close()\n logger.exception(subscription.closed())\n\n\ndef commit_cursors(token, host, subscription_id, stream_id, cursors):\n try:\n client = NakadiClient(token, host)\n client.commit_subscription_cursors(subscription_id, stream_id, cursors)\n except NakadiException as ex:\n logger.exception(ex.msg, exc_info=ex)\n raise ex\n\n\nbatch, stream_id = get_batch(token, host, subscription_id, 10)\ncursor = batch.get('cursor')\nevents = batch.get('events')\ntry:\n for event in events:\n # process the event\n pass\n commit_cursors(token, host, subscription_id, stream_id, [cursor])\nexcept Exception as ex:\n logger.exception(\n 'Exception while processing Nakadi events', exc_info=ex)\n raise ex\n```\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/eiunkar/pyNakadi", "keywords": "python client nakadi reader", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyNakadi", "package_url": "https://pypi.org/project/pyNakadi/", "platform": "", "project_url": "https://pypi.org/project/pyNakadi/", "project_urls": { "Homepage": "https://github.com/eiunkar/pyNakadi" }, "release_url": "https://pypi.org/project/pyNakadi/0.2.13/", "requires_dist": null, "requires_python": "", "summary": "Python client for Nakadi", "version": "0.2.13" }, "last_serial": 4949905, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "93b0d530fde4910852de683b0c261828", "sha256": "806fe4366957e98bad6cbc6601efbbfa410d3abc41fc94c1f4102e2fa17ca082" }, "downloads": -1, "filename": "pyNakadi-0.2.1.tar.gz", "has_sig": false, "md5_digest": "93b0d530fde4910852de683b0c261828", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3571, "upload_time": "2017-10-19T12:57:58", "url": "https://files.pythonhosted.org/packages/4f/bb/bf3f5799c655f51608e597db197b8f96c41a3ffbacf645c1348e3c9f689e/pyNakadi-0.2.1.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "fa3ba570a995463f234d6d5a113bc49e", "sha256": "910897d40170629e45e37ea6dc0ad368ef6a032d29059fad0c4d3a13cc82bdcf" }, "downloads": -1, "filename": "pyNakadi-0.2.10.tar.gz", "has_sig": false, "md5_digest": "fa3ba570a995463f234d6d5a113bc49e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4736, "upload_time": "2018-01-17T14:48:42", "url": "https://files.pythonhosted.org/packages/38/83/2a0c2321e1baf0478fcf8d6040832c53ba0f4b983db31fb287457ae4dc4d/pyNakadi-0.2.10.tar.gz" } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "671eea6b89879d86531fed661eb3b8bf", "sha256": "256123fd11102eab3f418a578fc93b1189aa26c907789191ca678ce21fa56e2f" }, "downloads": -1, "filename": "pyNakadi-0.2.11.tar.gz", "has_sig": false, "md5_digest": "671eea6b89879d86531fed661eb3b8bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4714, "upload_time": "2018-04-04T13:25:01", "url": "https://files.pythonhosted.org/packages/9b/e7/a31fea1625ceb1e28c27b32805bbf18545e4e15c67ebb156dc8653c447e6/pyNakadi-0.2.11.tar.gz" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "66b06741d9874d8986abf49aaf33f6c4", "sha256": "ffe71375cd274c3e854693be00efe6e821d66024371fe8bc0fd1f68039fc6735" }, "downloads": -1, "filename": "pyNakadi-0.2.12.tar.gz", "has_sig": false, "md5_digest": "66b06741d9874d8986abf49aaf33f6c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4736, "upload_time": "2018-04-04T13:50:32", "url": "https://files.pythonhosted.org/packages/2b/f7/bb285b179c367fd3bf719580936f750f769e889557d63f47f8c2bf42d440/pyNakadi-0.2.12.tar.gz" } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "d62c149eb71929171cd88bd82dae7cff", "sha256": "63261375b4f52dbeaa5176e7b11865284aafe45b6ff469e4e6bbf1363932d1c1" }, "downloads": -1, "filename": "pyNakadi-0.2.13.tar.gz", "has_sig": false, "md5_digest": "d62c149eb71929171cd88bd82dae7cff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6360, "upload_time": "2019-03-17T09:41:57", "url": "https://files.pythonhosted.org/packages/eb/5e/30509a553661fef4625e830a8022b8474b7165e8e7d22f54cafeb389b38d/pyNakadi-0.2.13.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9c3f462330d4183676ecd49734922608", "sha256": "6d7ae57e1d746c96cd33f19d1cf68fe97c9a8a25fd7f8f22a05fa83adcdced16" }, "downloads": -1, "filename": "pyNakadi-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9c3f462330d4183676ecd49734922608", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3657, "upload_time": "2017-10-23T15:19:14", "url": "https://files.pythonhosted.org/packages/6a/8e/621a9eb11049cde25cbce66b7d1111d5eb8ec9b3e6b8d8df7e9c8e4bfbaf/pyNakadi-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "9006ae3758850cf0515f7b283da35bd5", "sha256": "cf54d316ce62d5a36b7756f75029058c3312b8c18dafc5d7256d9a3544f675e3" }, "downloads": -1, "filename": "pyNakadi-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9006ae3758850cf0515f7b283da35bd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3663, "upload_time": "2017-10-23T15:41:24", "url": "https://files.pythonhosted.org/packages/ba/d2/ea6581f01cacf6a3de5dcb5e5660f7fcf31035dc6be9c1ed8e55606037ba/pyNakadi-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "3f40a5ee0a80db7ad1a63a6f7242e548", "sha256": "f914147acff9cc6fa785e579ab95ba2563ee54d6d47746b83bedc0010fcffc52" }, "downloads": -1, "filename": "pyNakadi-0.2.4.tar.gz", "has_sig": false, "md5_digest": "3f40a5ee0a80db7ad1a63a6f7242e548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3725, "upload_time": "2017-10-24T07:58:46", "url": "https://files.pythonhosted.org/packages/af/39/322603c7b7a2179bdfad72c9b67c0e746971b74743f282ac13367bba0585/pyNakadi-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "187fe1440e79a55556ebe1c23d8848cd", "sha256": "4d5e5a46ce751732d3f4c0867f3bb3f4f0cbe96dc94f1dd912a1837dd7cefdca" }, "downloads": -1, "filename": "pyNakadi-0.2.5.tar.gz", "has_sig": false, "md5_digest": "187fe1440e79a55556ebe1c23d8848cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3721, "upload_time": "2017-10-26T14:38:12", "url": "https://files.pythonhosted.org/packages/08/d6/5e3b6a7de3572e6dfa37b2d43bebd6f7235b1438faed4f2ce136dd0f069b/pyNakadi-0.2.5.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "2ad1d5d9b42f45a931cdb4267f9ace33", "sha256": "91d89f57295f356b3bc77b22212403637286374e7e4eff090659f92a77a5132a" }, "downloads": -1, "filename": "pyNakadi-0.2.7.tar.gz", "has_sig": false, "md5_digest": "2ad1d5d9b42f45a931cdb4267f9ace33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4729, "upload_time": "2017-12-04T16:09:23", "url": "https://files.pythonhosted.org/packages/af/32/96c2eaabad6d34903917b9fea531b3705b2f2fda8cb661c1658333dcf188/pyNakadi-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "06bd116e8d22810f3d69f09f53cd32e8", "sha256": "35dff777795fb292cf67199eb50ad7cedddc6a2398ae4f5fa1f04f6743fa0977" }, "downloads": -1, "filename": "pyNakadi-0.2.8.tar.gz", "has_sig": false, "md5_digest": "06bd116e8d22810f3d69f09f53cd32e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4725, "upload_time": "2017-12-22T12:27:54", "url": "https://files.pythonhosted.org/packages/0c/ec/1a835301f87240f60000077fcedba5b38f324557feb880d0097d385c0077/pyNakadi-0.2.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d62c149eb71929171cd88bd82dae7cff", "sha256": "63261375b4f52dbeaa5176e7b11865284aafe45b6ff469e4e6bbf1363932d1c1" }, "downloads": -1, "filename": "pyNakadi-0.2.13.tar.gz", "has_sig": false, "md5_digest": "d62c149eb71929171cd88bd82dae7cff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6360, "upload_time": "2019-03-17T09:41:57", "url": "https://files.pythonhosted.org/packages/eb/5e/30509a553661fef4625e830a8022b8474b7165e8e7d22f54cafeb389b38d/pyNakadi-0.2.13.tar.gz" } ] }