{ "info": { "author": "Mohamed Haseeb", "author_email": "m@mohaseeb.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "[![PyPI](https://img.shields.io/pypi/v/beam-nuggets.svg)](https://pypi.org/project/beam-nuggets/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/beam-nuggets.svg)](https://pypi.org/project/beam-nuggets/)\n\n# About\nA collection of random transforms for the [Apache beam](https://beam.apache.org/) python SDK . Many are \nsimple transforms. The most useful ones are those for \nreading/writing from/to relational databases.\n# Installation\n* Using pip\n```bash\npip install beam-nuggets\n```\n* From source\n```bash\ngit clone git@github.com:mohaseeb/beam-nuggets.git\ncd beam-nuggets\npip install .\n```\n# Supported transforms\n### IO\n* [relational_db.ReadFromDB](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.relational_db.html#beam_nuggets.io.relational_db.ReadFromDB) \nfor reading from relational database tables. \n* [relational_db.Write](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.relational_db.html#beam_nuggets.io.relational_db.Write) \nfor writing to relational database tables.\n
Above transforms uses [SqlAlchemy](https://www.sqlalchemy.org/) to communicate with the database, \nand hence they can read from and write to all relational databases supported\n by SqlAlchemy. \nThe transforms [are tested](https://github.com/mohaseeb/beam-nuggets/tree/master/beam_nuggets/io/test) against PostgreSQL, MySQL and SQLite.\n* [kafkaio.KafkaProduce](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.kafkaio.html#beam_nuggets.io.kafkaio.KafkaProduce) for writing to Kafka topics.\n* [kafkaio.KafkaConsume](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.kafkaio.html#beam_nuggets.io.kafkaio.KafkaConsume) for consuming from kafka topics.\n* [csvio.Read](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.csvio.html#beam_nuggets.io.csvio.Read)\nfor reading CSV files.\n\n\n\n\n\n\n\n\n\n\n### Others\n* [SelectFromNestedDict](http://mohaseeb.com/beam-nuggets/beam_nuggets.transforms.nested_dict.html#beam_nuggets.transforms.nested_dict.SelectFromNestedDict)\nSelects a subset from records formed of nested dictionaries.\n* [ParseJson](beam_nuggets.transforms.json_.html#beam_nuggets.transforms.json_.ParseJson)\n* [AssignUniqueId](beam_nuggets.transforms.json_.html#beam_nuggets.transforms.json_.ParseJson)\n# Documentation\nSee [here](http://mohaseeb.com/beam-nuggets/).\n# Usage\nWrite data to an SQLite table using beam-nugget's \n[relational_db.Write](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.relational_db.html#beam_nuggets.io.relational_db.Write) transform.\n```python\n# write_sqlite.py contents\nimport apache_beam as beam\nfrom apache_beam.options.pipeline_options import PipelineOptions\nfrom beam_nuggets.io import relational_db\n\nrecords = [\n {'name': 'Jan', 'num': 1},\n {'name': 'Feb', 'num': 2}\n]\n\nsource_config = relational_db.SourceConfiguration(\n drivername='sqlite',\n database='/tmp/months_db.sqlite',\n create_if_missing=True # create the database if not there \n)\n\ntable_config = relational_db.TableConfiguration(\n name='months',\n create_if_missing=True, # automatically create the table if not there\n primary_key_columns=['num'] # and use 'num' column as primary key\n)\n\nwith beam.Pipeline(options=PipelineOptions()) as p: # Will use local runner\n months = p | \"Reading month records\" >> beam.Create(records)\n months | 'Writing to DB' >> relational_db.Write(\n source_config=source_config,\n table_config=table_config\n )\n```\nExecute the pipeline\n```bash\npython write_sqlite.py \n```\nExamine the contents\n```bash\nsqlite3 /tmp/months_db.sqlite 'select * from months'\n# output:\n# 1.0|Jan\n# 2.0|Feb\n```\nTo write the same data to a PostgreSQL table instead, just create a suitable \n[relational_db.SourceConfiguration](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.relational_db_api.html#beam_nuggets.io.relational_db_api.SourceConfiguration) as follows.\n```python\nsource_config = relational_db.SourceConfiguration(\n drivername='postgresql+pg8000',\n host='localhost',\n port=5432,\n username='postgres',\n password='password',\n database='calendar',\n create_if_missing=True # create the database if not there \n)\n```\nClick [here](https://github.com/mohaseeb/beam-nuggets/tree/master/examples/dataflow/)\nfor more examples, including writing to PostgreSQL in Google Cloud Platform \nusing the DataFlowRunner. \n

\nAn example showing how you can use beam-nugget's [relational_db.ReadFromDB](http://mohaseeb.com/beam-nuggets/beam_nuggets.io.relational_db.html#beam_nuggets.io.relational_db.ReadFromDB) \ntransform to read from a PostgreSQL database table. \n```python\nfrom __future__ import print_function\nimport apache_beam as beam\nfrom apache_beam.options.pipeline_options import PipelineOptions\nfrom beam_nuggets.io import relational_db\n\nwith beam.Pipeline(options=PipelineOptions()) as p:\n source_config = relational_db.SourceConfiguration(\n drivername='postgresql+pg8000',\n host='localhost',\n port=5432,\n username='postgres',\n password='password',\n database='calendar',\n )\n records = p | \"Reading records from db\" >> relational_db.ReadFromDB(\n source_config=source_config,\n table_name='months',\n query='select num, name from months' # optional. When omitted, all table records are returned. \n )\n records | 'Writing to stdout' >> beam.Map(print)\n```\nSee [here](https://github.com/mohaseeb/beam-nuggets/tree/master/examples) for more examples.\n# Development\n* Install\n```bash\ngit clone git@github.com:mohaseeb/beam-nuggets.git\ncd beam-nuggets\nexport BEAM_NUGGETS_ROOT=`pwd`\npip install -e .[dev]\n```\n* Make changes on dedicated dev branches\n* Run tests\n```bash\ncd $BEAM_NUGGETS_ROOT\npython -m unittest discover -v\n```\n* Generate docs\n```bash\ncd $BEAM_NUGGETS_ROOT\ndocs/generate_docs.sh\n```\n* Create a PR against master.\n* After merging the accepted PR and updating the local master, upload a new \nbuild to pypi.\n```bash\ncd $BEAM_NUGGETS_ROOT\nscripts/build_test_deploy.sh\n```\n# Backlog \n* versioned docs?\n* Summarize the investigation of using Source/Sink Vs ParDo(and GroupBy) for IO\n* more nuggets: WriteToCsv\n* Investigate readiness of SDF ParDo, and possibility to use for relational_db.ReadFromDB\n* integration tests\n* DB transforms failures handling on IO transforms\n* more nuggets: Elasticsearch, Mongo \n* WriteToRelationalDB, logging\n\n# Contributers\n[mohaseeb](https://github.com/mohaseeb), [astrocox](https://github.com/astrocox), [2514millerj](https://github.com/2514millerj)\n\n# Licence\nMIT\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/mohaseeb/beam-nuggets", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "beam-nuggets", "package_url": "https://pypi.org/project/beam-nuggets/", "platform": "", "project_url": "https://pypi.org/project/beam-nuggets/", "project_urls": { "Homepage": "https://github.com/mohaseeb/beam-nuggets" }, "release_url": "https://pypi.org/project/beam-nuggets/0.15.1/", "requires_dist": [ "apache-beam (<3.0.0,>=2.8.0)", "SQLAlchemy (<2.0.0,>=1.2.14)", "sqlalchemy-utils (<0.34,>=0.33.11)", "pg8000 (<2.0.0,>=1.12.4)", "PyMySQL (<2.0.0,>=0.9.3)", "kafka (>===1.3.5)", "nose (<2.0.0,>=1.3.7) ; extra == 'dev'", "testing.postgresql (<2.0.0,>=1.3.0) ; extra == 'dev'", "testing.mysqld (<2.0.0,>=1.4.0) ; extra == 'dev'", "numpy (<2.0.0,>=1.15.4) ; extra == 'dev'", "pandas (<0.24,>=0.23.4) ; extra == 'dev'", "Sphinx (<2.0.0,>=1.8.3) ; extra == 'dev'", "sphinx-rtd-theme (<2.0.0,>=0.4.2) ; extra == 'dev'" ], "requires_python": "", "summary": "Collection of transforms for the Apache beam python SDK.", "version": "0.15.1" }, "last_serial": 5683843, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "3de6100939f85f38a55f1d40a61a79b7", "sha256": "607163428647ca8641ce6479910a3f84a3375990c7f51d8cfead62e9be5de23f" }, "downloads": -1, "filename": "beam_nuggets-0.10.0-py2-none-any.whl", "has_sig": false, "md5_digest": "3de6100939f85f38a55f1d40a61a79b7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21473, "upload_time": "2019-01-06T16:30:35", "url": "https://files.pythonhosted.org/packages/01/b3/3f039202a0e010a05bbd8c7dc19b39a7485a44270419134a2d0aed27aa40/beam_nuggets-0.10.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7871498e4d2c7eff483897799956f174", "sha256": "9748c5f575995fa5977329061421b2d925e8bd25abd4eb9c60912b170050b9f5" }, "downloads": -1, "filename": "beam-nuggets-0.10.0.tar.gz", "has_sig": false, "md5_digest": "7871498e4d2c7eff483897799956f174", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16931, "upload_time": "2019-01-06T16:30:39", "url": "https://files.pythonhosted.org/packages/69/73/5eb27f3819db53763c6350a22973aa5b0edec26970d72fdc924220722c4a/beam-nuggets-0.10.0.tar.gz" } ], "0.10.0.dev1": [ { "comment_text": "", "digests": { "md5": "6859a8d1b691922ac159e93ed08f505d", "sha256": "b0f4b05cfafb22f71750141fffa573aeec4ecea53bd5905e7b76e9e422026e4a" }, "downloads": -1, "filename": "beam_nuggets-0.10.0.dev1-py2-none-any.whl", "has_sig": false, "md5_digest": "6859a8d1b691922ac159e93ed08f505d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21533, "upload_time": "2019-01-06T16:30:33", "url": "https://files.pythonhosted.org/packages/6d/d5/a27c1f196de5909c66ff8f48e5d8c3ec1e53c46ea095a063809b5717e966/beam_nuggets-0.10.0.dev1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a818eedf76a2502e553faa347af3c6d", "sha256": "4ad69b01e3272bf7cbae4979217064596ffaa8ac54306e8c2029bddd25d0de80" }, "downloads": -1, "filename": "beam-nuggets-0.10.0.dev1.tar.gz", "has_sig": false, "md5_digest": "0a818eedf76a2502e553faa347af3c6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16936, "upload_time": "2019-01-06T16:30:37", "url": "https://files.pythonhosted.org/packages/63/b9/182663ce65d2ff2a6d5e14debfc6d1e705aa218be04e88a5d53a7e0e1b70/beam-nuggets-0.10.0.dev1.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "138edcd6c876b571be9a011ad36d2ed8", "sha256": "3a8d4a1c08ae18fb3717f9aece76aed5054b1a04da94757058290c2c071d223d" }, "downloads": -1, "filename": "beam_nuggets-0.11.0-py2-none-any.whl", "has_sig": false, "md5_digest": "138edcd6c876b571be9a011ad36d2ed8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23382, "upload_time": "2019-01-12T14:19:48", "url": "https://files.pythonhosted.org/packages/49/43/d5b49e91a1a51a1eaf2e113959cb9cabc7254b53571cb6142d5d7c73ea9e/beam_nuggets-0.11.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b6ec59fdf3c5d4bbf857e4d7988e1cf", "sha256": "cdf591b5600c44ddfb5a9121f336b71d7274db81ca3c7a421c315fab8366a083" }, "downloads": -1, "filename": "beam-nuggets-0.11.0.tar.gz", "has_sig": false, "md5_digest": "7b6ec59fdf3c5d4bbf857e4d7988e1cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18896, "upload_time": "2019-01-12T14:19:50", "url": "https://files.pythonhosted.org/packages/64/c2/8601b967752902d73d515ee4b9f3f090fd4f165415349070899579e6408f/beam-nuggets-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "f90f4b779f120a766f5ec5c7c8fc21f4", "sha256": "09f44a3ed3a2014d01e569f4a6a9ae3983006445e9ac997d0f774d1045749bbf" }, "downloads": -1, "filename": "beam_nuggets-0.12.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f90f4b779f120a766f5ec5c7c8fc21f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23442, "upload_time": "2019-01-13T00:52:56", "url": "https://files.pythonhosted.org/packages/02/88/303c5061b97ac29e4ebf4e3511c1e2d8c8fa14b22529ce038664d6d610f0/beam_nuggets-0.12.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4f8aa121b979d273a600c3fa214c3fb", "sha256": "18cf60f77dee0601efaba5ab8dde80f89c63a977a0cd0d8c21819f11c01ae26f" }, "downloads": -1, "filename": "beam-nuggets-0.12.0.tar.gz", "has_sig": false, "md5_digest": "c4f8aa121b979d273a600c3fa214c3fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19033, "upload_time": "2019-01-13T00:52:59", "url": "https://files.pythonhosted.org/packages/e4/32/d3c69b63e66fbf876f30e834372027dc5a5effe18de662b384b22a1a3ecd/beam-nuggets-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "5a59b9d23c43ce2b4686a1515650418e", "sha256": "e09ec4a341daab0b966b135f34d82f0fe5e46afe30f04f651075b9051d1e6298" }, "downloads": -1, "filename": "beam_nuggets-0.13.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5a59b9d23c43ce2b4686a1515650418e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21608, "upload_time": "2019-01-14T20:30:48", "url": "https://files.pythonhosted.org/packages/fa/46/4a98f93adedb50f35b44c5860cb8bc8175c12fc37624c02e15286a7fcd78/beam_nuggets-0.13.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8882e6cfc52d7bee2a752bc4fb0a77e", "sha256": "41f856970a18a63008035eef4a6fc550e076240eaf6b2407e18346fd39b27bc5" }, "downloads": -1, "filename": "beam-nuggets-0.13.0.tar.gz", "has_sig": false, "md5_digest": "b8882e6cfc52d7bee2a752bc4fb0a77e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17144, "upload_time": "2019-01-14T20:30:52", "url": "https://files.pythonhosted.org/packages/27/e9/47694935194010eeeddab7335e6c1b8eebc2d664768974ae27131567ce75/beam-nuggets-0.13.0.tar.gz" } ], "0.13.1": [ { "comment_text": "", "digests": { "md5": "6f188ce2853b47b625e25ceb2264dce1", "sha256": "f2d36a2bc3bc63d945daecf7114cf583a477c238236f18ee81cc7e36781e9c7d" }, "downloads": -1, "filename": "beam_nuggets-0.13.1-py2-none-any.whl", "has_sig": false, "md5_digest": "6f188ce2853b47b625e25ceb2264dce1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21606, "upload_time": "2019-01-14T20:56:49", "url": "https://files.pythonhosted.org/packages/2d/b0/9a8090910e7632e49b531e75ec35b02ff9e180e94819b56a6564b094c2db/beam_nuggets-0.13.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42049d5892318c46b661081d8e6b6513", "sha256": "8ea5ede6f1f9c637f5fafd8eac3da0900d64dda07ce3597471ac498ee1e8af82" }, "downloads": -1, "filename": "beam-nuggets-0.13.1.tar.gz", "has_sig": false, "md5_digest": "42049d5892318c46b661081d8e6b6513", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17143, "upload_time": "2019-01-14T20:56:54", "url": "https://files.pythonhosted.org/packages/18/08/7fe2d63b6e0ac0e02b9c49f4b633cec50c9f93ee6c13f3d884f6fafbda51/beam-nuggets-0.13.1.tar.gz" } ], "0.13.2": [ { "comment_text": "", "digests": { "md5": "cc36b40a9ca877efdb242aa8c59cea9f", "sha256": "5f9fdf37bde1b5c3e3e6037009ccdd4e3b5d133f3c3d70de6657f6a9cc594cd3" }, "downloads": -1, "filename": "beam_nuggets-0.13.2-py2-none-any.whl", "has_sig": false, "md5_digest": "cc36b40a9ca877efdb242aa8c59cea9f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21713, "upload_time": "2019-01-22T05:07:25", "url": "https://files.pythonhosted.org/packages/95/07/d4756043f550c0ad96dde2535bdc853dd765e59653fa7b6b66cef632de28/beam_nuggets-0.13.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b414d2508adf79129b8e7901a28adca6", "sha256": "371cfac00040f9b998f380f45aadd713981483ba07f8a4a468dc0f0f2bd904e8" }, "downloads": -1, "filename": "beam-nuggets-0.13.2.tar.gz", "has_sig": false, "md5_digest": "b414d2508adf79129b8e7901a28adca6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17262, "upload_time": "2019-01-22T05:07:26", "url": "https://files.pythonhosted.org/packages/fd/0f/edcaf41bdd6a917c978dfc75cc88a59e8489cc459c9a2c2f40b952632331/beam-nuggets-0.13.2.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "6290b828e6f6d870d2df429b9c82927a", "sha256": "f34693ad57b3890fccb98c666d9352c23d68c6d59f3eb6749beb444d0d829373" }, "downloads": -1, "filename": "beam_nuggets-0.14.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6290b828e6f6d870d2df429b9c82927a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22518, "upload_time": "2019-05-11T11:14:22", "url": "https://files.pythonhosted.org/packages/0c/56/f8046a6dea463e2bebe6ed9337a898f0b10eb12094aed3d86bc4ae3756c3/beam_nuggets-0.14.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f9ebe93c0fbd7affa1721b4ee1e2b4d", "sha256": "092ff84d55f0149d57407b9e2649856545987fbb5d2e387aa01b78da000bc3f8" }, "downloads": -1, "filename": "beam-nuggets-0.14.0.tar.gz", "has_sig": false, "md5_digest": "3f9ebe93c0fbd7affa1721b4ee1e2b4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17510, "upload_time": "2019-05-11T11:14:25", "url": "https://files.pythonhosted.org/packages/04/3b/4256837670b9a48d152322ef344b6a4e53bde562ae2b5f8f41fffa95a778/beam-nuggets-0.14.0.tar.gz" } ], "0.15.0": [ { "comment_text": "", "digests": { "md5": "6079bc08e8829b7278c30b9ef9ae8082", "sha256": "2ecb913090baf1b46a48da8aa0ea8c53cb64bf86260d372cd0729b1429e748d7" }, "downloads": -1, "filename": "beam_nuggets-0.15.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6079bc08e8829b7278c30b9ef9ae8082", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24498, "upload_time": "2019-06-23T18:16:31", "url": "https://files.pythonhosted.org/packages/45/de/1a3cc0b8c97fabd4767ebb4ec5652922ab2b5f6efcac468c0c6c8a720b50/beam_nuggets-0.15.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b97ee868a9958bc06c1af06b2941533f", "sha256": "b1fac6b408deb27f52cbff692b24cab2bbf3be4607c1b907da8cd1df30e321e6" }, "downloads": -1, "filename": "beam-nuggets-0.15.0.tar.gz", "has_sig": false, "md5_digest": "b97ee868a9958bc06c1af06b2941533f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17456, "upload_time": "2019-06-23T18:16:33", "url": "https://files.pythonhosted.org/packages/a1/a2/477372a7656b04b25c5a4f212eb248f6fb4096e83ee2d1234602a5c27f40/beam-nuggets-0.15.0.tar.gz" } ], "0.15.1": [ { "comment_text": "", "digests": { "md5": "76b69f4681a03b615b45d9adfb97d3ba", "sha256": "3615eb3dffedc4b1a5bac0efb33517c00c4a866b58d9bfb58469739ae806f106" }, "downloads": -1, "filename": "beam_nuggets-0.15.1-py2-none-any.whl", "has_sig": false, "md5_digest": "76b69f4681a03b615b45d9adfb97d3ba", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24553, "upload_time": "2019-08-15T19:36:31", "url": "https://files.pythonhosted.org/packages/c9/e9/20a76f520fc9a1aaa8816238362c4b7fe80bfbdce8b96ab7d183c5259917/beam_nuggets-0.15.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "276e0f1313606b4b7ba175efd7d7b59e", "sha256": "7a0966d12720a57bc26c14a52f752582ede463f7c776582c65f309abbc33d8c6" }, "downloads": -1, "filename": "beam-nuggets-0.15.1.tar.gz", "has_sig": false, "md5_digest": "276e0f1313606b4b7ba175efd7d7b59e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17500, "upload_time": "2019-08-15T19:36:35", "url": "https://files.pythonhosted.org/packages/ac/7e/1f62164e152cdef33411eeab4afe635f0838af337a532474cd090a5734ad/beam-nuggets-0.15.1.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "0acb7521b0129af6371a671d025482b2", "sha256": "d95fccc16d983bcb35d543e00b867f79d2a8cd2bc5b1c4581fa316980a8a670d" }, "downloads": -1, "filename": "beam_nuggets-0.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0acb7521b0129af6371a671d025482b2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21182, "upload_time": "2019-01-06T15:45:01", "url": "https://files.pythonhosted.org/packages/11/66/bf1f4726f12777f680eb32fde96cfab1cd0e6b3c73acbd281d2db9518c21/beam_nuggets-0.9.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5f6d06586d6ecf2cae237e4f6b962f2", "sha256": "293537246254dfac9ecdbdfae30df2bb1d8f27cb5f912b216924accaeed3e32c" }, "downloads": -1, "filename": "beam-nuggets-0.9.0.tar.gz", "has_sig": false, "md5_digest": "a5f6d06586d6ecf2cae237e4f6b962f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16379, "upload_time": "2019-01-06T15:45:04", "url": "https://files.pythonhosted.org/packages/48/0a/aefd306088844944deeeba1983707b90cc3ec8158cbb29d91e0a06528c6a/beam-nuggets-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "76b69f4681a03b615b45d9adfb97d3ba", "sha256": "3615eb3dffedc4b1a5bac0efb33517c00c4a866b58d9bfb58469739ae806f106" }, "downloads": -1, "filename": "beam_nuggets-0.15.1-py2-none-any.whl", "has_sig": false, "md5_digest": "76b69f4681a03b615b45d9adfb97d3ba", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24553, "upload_time": "2019-08-15T19:36:31", "url": "https://files.pythonhosted.org/packages/c9/e9/20a76f520fc9a1aaa8816238362c4b7fe80bfbdce8b96ab7d183c5259917/beam_nuggets-0.15.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "276e0f1313606b4b7ba175efd7d7b59e", "sha256": "7a0966d12720a57bc26c14a52f752582ede463f7c776582c65f309abbc33d8c6" }, "downloads": -1, "filename": "beam-nuggets-0.15.1.tar.gz", "has_sig": false, "md5_digest": "276e0f1313606b4b7ba175efd7d7b59e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17500, "upload_time": "2019-08-15T19:36:35", "url": "https://files.pythonhosted.org/packages/ac/7e/1f62164e152cdef33411eeab4afe635f0838af337a532474cd090a5734ad/beam-nuggets-0.15.1.tar.gz" } ] }