{ "info": { "author": "Pior Bastida", "author_email": "pbastida@ludia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet" ], "description": "================\nKinesis Producer\n================\n\nPython producer for AWS Kinesis Stream with record aggregation.\n\nIt uses Boto 3 and is tested on Python 2.7 and 3.4/3.5.\n\n* PyPI: https://pypi.python.org/pypi/kinesis_producer\n* Code: https://github.com/ludia/kinesis_producer\n* |travis|\n* |coveralls|\n\n.. |travis| image:: https://travis-ci.org/ludia/kinesis_producer.svg?branch=master\n :target: https://travis-ci.org/ludia/kinesis_producer\n\n.. |coveralls| image:: https://coveralls.io/repos/github/ludia/kinesis_producer/badge.svg?branch=master\n :target: https://coveralls.io/github/ludia/kinesis_producer?branch=master\n\n\nInstall\n=======\n\n pip install 'kinesis_producer < 1'\n\n**Note**: Kinesis Producer use semver: you should always freeze on the major\nversion since it could mean breaking the API.\n\n\nUsage\n=====\n\nSend records aggregated up to 100KB, 200ms and joined with '\\\\n':\n\n.. code:: python\n\n from kinesis_producer import KinesisProducer\n\n config = dict(\n aws_region='us-east-1',\n buffer_size_limit=100000,\n buffer_time_limit=0.2,\n kinesis_concurrency=1,\n kinesis_max_retries=10,\n record_delimiter='\\n',\n stream_name='KINESIS_STREAM_NAME',\n )\n\n k = KinesisProducer(config=config)\n\n for record in records:\n k.send(record)\n\n k.close()\n k.join()\n\n\nConfig\n======\n\n:aws_region: AWS region for Kinesis calls (like us-east-1)\n:buffer_size_limit:\n Approximative size limit for record aggregation (in bytes)\n:buffer_time_limit:\n Approximative time limit for record aggregation (in seconds)\n:kinesis_concurrency:\n Set the concurrency level for Kinesis calls. Set to 1 for no\n concurrency. Set to 2 and more to use a thread pool.\n:kinesis_max_retries:\n Number of Kinesis put_records call attempt before giving up.\n This number should be between 4 and 10 if you want to handle\n temporary ProvisionedThroughputExceeded errors.\n:record_delimiter: Delimiter for record aggregation\n:stream_name: Name of the Kinesis Stream\n\n\nKinesis retries\n---------------\n\nKinesis calls are retried for ProvisionedThroughputExceeded error\nonly. Retry use an exponential backoff logic (0.1s, 0.2s, 0.4s, 0.8s,\n1.60s, 3.20s, 6.40s, 12.80s, 25.60s, 51.20s, 102.40s...)\n\n\nCopyright and license\n=====================\n\nReleased under the MIT license.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ludia/kinesis_producer", "keywords": "kinesis kafka producer client", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "kinesis-producer", "package_url": "https://pypi.org/project/kinesis-producer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/kinesis-producer/", "project_urls": { "Homepage": "https://github.com/ludia/kinesis_producer" }, "release_url": "https://pypi.org/project/kinesis-producer/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "Producer for AWS Kinesis Stream with record aggregation", "version": "0.2.1" }, "last_serial": 2112880, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "314af4aa9bbeb4bee142b957e87d7b28", "sha256": "58276ba66165f63e6517fad0a3331645916f90eb34a4af8d5e5e526e52e18fdb" }, "downloads": -1, "filename": "kinesis_producer-0.1.tar.gz", "has_sig": false, "md5_digest": "314af4aa9bbeb4bee142b957e87d7b28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5869, "upload_time": "2016-04-14T16:01:55", "url": "https://files.pythonhosted.org/packages/a4/47/3aa307c73e8830dfa62d9dd039904e2f13b80e621ad358d8167af2d8ec70/kinesis_producer-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "dec9bc9c4918218874485eaa22d90fc8", "sha256": "3978182386e4d7905dcfeaa633c72807c29a999d56a4932ea19f86dd6e22f646" }, "downloads": -1, "filename": "kinesis_producer-0.2.tar.gz", "has_sig": false, "md5_digest": "dec9bc9c4918218874485eaa22d90fc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6114, "upload_time": "2016-04-19T21:16:44", "url": "https://files.pythonhosted.org/packages/6b/9a/cbef1de54c33441699debfa9222f0d122467b19eff215bb1d516b80b15eb/kinesis_producer-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8be046a713ba40eef9734ced2d7cbc2c", "sha256": "fbd819e802421a88537812c0dae170d2ebdfd12277af03b3ec51fd74a8b6c07a" }, "downloads": -1, "filename": "kinesis_producer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8be046a713ba40eef9734ced2d7cbc2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6369, "upload_time": "2016-05-12T16:39:11", "url": "https://files.pythonhosted.org/packages/80/46/6dbba56b6f038e90246b926fd01f384e5fbea3c32a048597c6f2e1d44611/kinesis_producer-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8be046a713ba40eef9734ced2d7cbc2c", "sha256": "fbd819e802421a88537812c0dae170d2ebdfd12277af03b3ec51fd74a8b6c07a" }, "downloads": -1, "filename": "kinesis_producer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8be046a713ba40eef9734ced2d7cbc2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6369, "upload_time": "2016-05-12T16:39:11", "url": "https://files.pythonhosted.org/packages/80/46/6dbba56b6f038e90246b926fd01f384e5fbea3c32a048597c6f2e1d44611/kinesis_producer-0.2.1.tar.gz" } ] }