{ "info": { "author": "TeskaLabs Ltd", "author_email": "info@teskalabs.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "BSPump: A real-time stream processor for Python 3.5+\n====================================================\n\n.. image:: https://readthedocs.org/projects/bspump/badge/?version=latest\n :target: https://docs.libertyaces.com/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://travis-ci.com/LibertyAces/BitSwanPump.svg?branch=master\n :alt: Build status\n :target: https://travis-ci.com/LibertyAces/BitSwanPump\n\n.. image:: https://codecov.io/gh/LibertyAces/BitSwanPump/branch/master/graph/badge.svg?sanitize=true\n :alt: Code coverage\n :target: https://codecov.io/gh/LibertyAces/BitSwanPump\n\n.. image:: https://badges.gitter.im/TeskaLabs/bspump.svg\n :alt: Join the chat at https://gitter.im/TeskaLabs/bspump\n :target: https://gitter.im/TeskaLabs/bspump?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n \n\nDocumentation\n-------------\n\nhttps://bitswanpump.readthedocs.io/en/latest/index.html\n\nPrinciples\n----------\n\n* Write once, use many times\n* Everything is a stream\n* Schema-less\n* Kappa architecture\n* Real-Time\n* High performance\n* Simple to use and well documented, so anyone can write their own stream processor\n* Asynchronous via Python 3.5+ ``async``/``await`` and ``asyncio``\n* `Event driven Architecture `_ / `Reactor pattern `_\n* Single-threaded core but compatible with threads\n* Compatible with `pypy `_, Just-In-Time compiler capable of boosting Python code performace more then 5x times\n* Good citizen of the Python ecosystem \n* Modularized\n\n\nStream processor example\n------------------------\n\n.. code:: python\n\n #!/usr/bin/env python3\n import bspump\n import bspump.socket\n import bspump.common\n import bspump.elasticsearch\n \n class MyPipeline(bspump.Pipeline):\n def __init__(self, app):\n super().__init__(app)\n self.build(\n bspump.socket.TCPStreamSource(app, self),\n bspump.common.JSONParserProcessor(app, self),\n bspump.elasticsearch.ElasticSearchSink(app, self, \"ESConnection\")\n )\n \n \n if __name__ == '__main__':\n app = bspump.BSPumpApplication()\n svc = app.get_service(\"bspump.PumpService\")\n svc.add_connection(bspump.elasticsearch.ElasticSearchConnection(app, \"ESConnection\"))\n svc.add_pipeline(MyPipeline(app))\n app.run()\n\n\nVideo tutorial\n^^^^^^^^^^^^^^\n\n.. image:: http://img.youtube.com/vi/QvjiPxO4w6w/0.jpg\n :target: https://www.youtube.com/watch?v=QvjiPxO4w6w&list=PLb0LvCJCZKt_1QcQwpJXqsm-AY_ty4udo\n\nBuild\n-----\n\nDocker build\n^^^^^^^^^^^^\nDockerfile and instructions are in `separate repository `_.\n\n\nPyPI release\n^^^^^^^^^^^^\nReleases are happening from a git tag (format: ``vYY.MM``)\n``git tag -a v19.07``\n\nFollowing the `PyPI packaging `_, generate `distribution package `_ and `upload it `_ using following command ``python -m twine upload dist/*``\n\n\nBlank application setup\n-----------------------\n\nYou can clone blank application from it's `own repository `_.\n\n\nAvailable technologies\n----------------------\n\n* ``bspump.amqp`` AMQP/RabbitMQ connection, source and sink\n* ``bspump.avro`` Apache Avro file source and sink\n* ``bspump.common`` Common processors and parsers\n* ``bspump.elasticsearch`` ElasticSearch connection, source and sink\n* ``bspump.file`` File sources and sinks (plain files, JSON, CSV)\n* ``bspump.filter`` Content, Attribute and TimeDrift filters\n* ``bspump.http.client`` HTTP client source, WebSocket client sink\n* ``bspump.http.web`` HTTP server source and sink, WebSocket server source\n* ``bspump.influxdb`` InfluxDB connection and sink\n* ``bspump.kafka`` Kafka connection, source and sink\n* ``bspump.mail`` SMTP connection and sink\n* ``bspump.mongodb`` MongoDB connection and lookup\n* ``bspump.mysql`` MySQL connection, source and sink\n* ``bspump.parquet`` Apache Parquet file sink\n* ``bspump.postgresql`` PostgreSQL connection and sink\n* ``bspump.slack`` Slack connection and sink\n* ``bspump.socket`` TCP source, UDP source\n* ``bspump.trigger`` Opportunistic, PubSub and Periodic triggers\n* ``bspump.crypto`` Cryptography\n* ``bspump.declarative`` Declarative processors and expressions\n\n * Hashing: SHA224, SHA256, SHA384, SHA512, SHA1, MD5, BLAKE2b, BLAKE2s\n * Symmetric Encryption: AES 128, AES 192, AES 256\n\n* ``bspump.analyzer``\n\n * Time Window analyzer\n * Session analyzer\n * Geographical analyzer\n * Time Drift analyzer\n\n* ``bspump.lookup``\n\n * GeoIP Lookup\n\n* ``bspump.unittest``\n\n * Interface for testing Processors / Pipelines\n\n* ``bspump.web`` Pump API endpoints for pipelines, lookups etc.\n\nGoogle Sheet with technological compatiblity matrix:\nhttps://docs.google.com/spreadsheets/d/1L1DvSuHuhKUyZ3FEFxqEKNpSoamPH2Z1ZaFuHyageoI/edit?usp=sharing\n\n\nHigh-level architecture\n-----------------------\n\n\n.. image:: ./doc/_static/bspump-architecture.png\n :alt: Schema of BSPump high-level achitecture\n\n\nUnit test\n---------\n\n.. code:: python\n\n from unittest.mock import MagicMock\n from bspump.unittest import ProcessorTestCase\n\n\n class MyProcessorTestCase(ProcessorTestCase):\n\n def test_my_processor(self):\n\n # setup processor for test\n self.set_up_processor(my_project.processor.MyProcessor, \"proc-arg\", proc=\"key_arg\")\n\n # mock methods to suit your needs on pipeline ..\n self.Pipeline.method = MagicMock()\n\n # .. or instance of processor\n self.Pipeline.Processor.method = MagicMock()\n\n output = self.execute(\n [(None, {'foo': 'bar'})] # Context, event\n )\n\n # assert output\n self.assertEqual(\n [event for context, event in output],\n [{'FOO': 'BAR'}]\n )\n\n # asssert expected calls on `self.Pipeline.method` or `self.Pipeline.Processor.method`\n self.Pipeline.Processor.method.assert_called_with(**expected)\n\n\n\nRunning of unit tests\n---------------------\n\n``python3 -m unittest test``\n\nYou can replace ``test`` with a location of your unit test module.\n\n\nLicence\n-------\n\nBSPump is an open-source software, available under BSD 3-Clause License.\n\n\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/LibertyAces/BitSwanPump", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "bspump", "package_url": "https://pypi.org/project/bspump/", "platform": "any", "project_url": "https://pypi.org/project/bspump/", "project_urls": { "Homepage": "https://github.com/LibertyAces/BitSwanPump", "Source": "https://github.com/LibertyAces/BitSwanPump" }, "release_url": "https://pypi.org/project/bspump/21.11/", "requires_dist": [ "asab (>=21.11)", "aiohttp (>=3.6.2)", "requests (>=2.24.0)", "aiokafka (>=0.7.0)", "aiozk (>=0.25.0)", "aiosmtplib (>=1.1.3)", "fastavro (>=0.23.5)", "google-api-python-client (>=1.7.10)", "numpy (>=1.19.0)", "pika (>=1.1.0)", "pymysql (<=0.9.2,>=0.9.2)", "aiomysql (>=0.0.20)", "mysql-replication (>=0.21)", "pytz (>=2020.1)", "netaddr (>=0.7.20)", "pyyaml (>=5.4)", "pymongo (>=3.10.1)", "motor (>=2.1.0)", "mongoquery (>=1.3.6)", "pybind11 (>=2.6.1)", "cysimdjson (==21.11b2)", "pywinrm (>=0.4.1)", "pandas (>=0.24.2)", "xxhash (>=1.4.4)", "orjson (>=3.4.7)", "dataclasses (>=0.5) ; python_version < \"3.7\"" ], "requires_python": "", "summary": "BSPump is a real-time stream processor for Python 3.6+", "version": "21.11", "yanked": false, "yanked_reason": null }, "last_serial": 12026477, "releases": { "19.10": [ { "comment_text": "", "digests": { "md5": "327bd9dbb4f898a6bc470ac5dd59233a", "sha256": "d3e00a31171ec55645b327bd01b3158d9a4cda696bb2c1b3b8643f88f942a64d" }, "downloads": -1, "filename": "bspump-19.10-py3-none-any.whl", "has_sig": false, "md5_digest": "327bd9dbb4f898a6bc470ac5dd59233a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 159682, "upload_time": "2019-10-03T16:00:27", "upload_time_iso_8601": "2019-10-03T16:00:27.726987Z", "url": "https://files.pythonhosted.org/packages/0c/96/f852f7312cfcedd4326df2ea8eb98ef01acf2ad60b5fd72d6a3c962d2c3e/bspump-19.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c30bc8f2656c4d8a9837f6c92fbecfea", "sha256": "ad9ea4c6ce948181646a291025df50bde292e291d849699b0af55c717fbb4ed9" }, "downloads": -1, "filename": "bspump-19.10.tar.gz", "has_sig": false, "md5_digest": "c30bc8f2656c4d8a9837f6c92fbecfea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99111, "upload_time": "2019-10-03T16:00:30", "upload_time_iso_8601": "2019-10-03T16:00:30.477372Z", "url": "https://files.pythonhosted.org/packages/f6/9a/6fb577969c10a775647da91a7fc47fd54f318f10b646d9a85dae9b102c0f/bspump-19.10.tar.gz", "yanked": false, "yanked_reason": null } ], "19.10.1": [ { "comment_text": "", "digests": { "md5": "347c89c1d08ed6ddb8f6156826988b98", "sha256": "224c4bf9e31b4ded141dfbb8a6db0065831ecf44c61618b43afbf71686437485" }, "downloads": -1, "filename": "bspump-19.10.1-py3-none-any.whl", "has_sig": false, "md5_digest": "347c89c1d08ed6ddb8f6156826988b98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 173955, "upload_time": "2019-10-23T15:48:30", "upload_time_iso_8601": "2019-10-23T15:48:30.149826Z", "url": "https://files.pythonhosted.org/packages/a6/bb/1297ba3a95e09bc3ac8171d4aaae7b47daef92ad690e0b8579054646a6c2/bspump-19.10.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d9f80313c6bb592e7743522600e5e03c", "sha256": "92b4799392c269472c0144e1fa3a7fcd987ec846a88ec94b9f9e433686d61560" }, "downloads": -1, "filename": "bspump-19.10.1.tar.gz", "has_sig": false, "md5_digest": "d9f80313c6bb592e7743522600e5e03c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111471, "upload_time": "2019-10-23T15:48:32", "upload_time_iso_8601": "2019-10-23T15:48:32.767752Z", "url": "https://files.pythonhosted.org/packages/7a/c2/7b5c0ac967b1a5e352c9d9d030f3b52c763d74e65df74fe233ad464f28aa/bspump-19.10.1.tar.gz", "yanked": false, "yanked_reason": null } ], "19.11": [ { "comment_text": "", "digests": { "md5": "468690247717faa8199b1e8fa6734726", "sha256": "64666a3ede544d45ba9e919c6362995a78bb7aceaa971a8b950502c17cdf2980" }, "downloads": -1, "filename": "bspump-19.11-py3-none-any.whl", "has_sig": false, "md5_digest": "468690247717faa8199b1e8fa6734726", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 178589, "upload_time": "2019-11-07T15:56:29", "upload_time_iso_8601": "2019-11-07T15:56:29.073411Z", "url": "https://files.pythonhosted.org/packages/15/d0/44324417cad24e8bb894b15acfba2a893d434d540eccc78da013264dad26/bspump-19.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1368be6aaf183f0803be436a36f2fc06", "sha256": "3190e8dc37ec464b06121eb0f0f74ff3692861c49b50562250c15aeecf6577c8" }, "downloads": -1, "filename": "bspump-19.11.tar.gz", "has_sig": false, "md5_digest": "1368be6aaf183f0803be436a36f2fc06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115259, "upload_time": "2019-11-07T15:56:31", "upload_time_iso_8601": "2019-11-07T15:56:31.393019Z", "url": "https://files.pythonhosted.org/packages/24/a8/5c949cc122c23c215184a0a71c6acb8ab73934b7ef158f0dd30214d1316c/bspump-19.11.tar.gz", "yanked": false, "yanked_reason": null } ], "19.12": [ { "comment_text": "", "digests": { "md5": "136826eeaa87b447d7f18a89e84bfe61", "sha256": "ee77e0f1a1cb40dafd2cde5624e5d4da695caa73eb43d0188777808500b88eae" }, "downloads": -1, "filename": "bspump-19.12-py3-none-any.whl", "has_sig": false, "md5_digest": "136826eeaa87b447d7f18a89e84bfe61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 183403, "upload_time": "2019-12-19T14:09:31", "upload_time_iso_8601": "2019-12-19T14:09:31.264006Z", "url": "https://files.pythonhosted.org/packages/c2/20/a2e7510fa88e850771817e66318edb81d8c9950f0f9226815fb831a5f015/bspump-19.12-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1e17d53d8280379fe2665c9dd023eaf2", "sha256": "0d7c0bbd0456c9a55e9a2ab809a7840a17af1277312113e012884fe96c91f9be" }, "downloads": -1, "filename": "bspump-19.12.tar.gz", "has_sig": false, "md5_digest": "1e17d53d8280379fe2665c9dd023eaf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117750, "upload_time": "2019-12-19T14:09:33", "upload_time_iso_8601": "2019-12-19T14:09:33.831671Z", "url": "https://files.pythonhosted.org/packages/a0/89/854ffa9799d014438671200aa2092dcf02a58f508c671819f6751e5e7222/bspump-19.12.tar.gz", "yanked": false, "yanked_reason": null } ], "19.7": [ { "comment_text": "", "digests": { "md5": "14355f8571090f24c5f0b15da9293e0a", "sha256": "948b71f645273a72f64f55755ab25200f3b6f0a493245cbbedff8e4eca3ff508" }, "downloads": -1, "filename": "bspump-19.7-py3-none-any.whl", "has_sig": false, "md5_digest": "14355f8571090f24c5f0b15da9293e0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 137976, "upload_time": "2019-07-19T10:08:52", "upload_time_iso_8601": "2019-07-19T10:08:52.206681Z", "url": "https://files.pythonhosted.org/packages/1a/8f/0a167ec0638aed84b7dc1d410f9751a5407de514ca79dc7b7304c5ed414e/bspump-19.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d7eda66b65784e59975198e759bcd841", "sha256": "b6ec9a32117e5e357f4410c69d8b6f9d56eec30fb85a53bd7bb41b7c5c6128d6" }, "downloads": -1, "filename": "bspump-19.7.tar.gz", "has_sig": false, "md5_digest": "d7eda66b65784e59975198e759bcd841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83791, "upload_time": "2019-07-19T10:08:55", "upload_time_iso_8601": "2019-07-19T10:08:55.129995Z", "url": "https://files.pythonhosted.org/packages/54/0f/2a394fbbd105983da7144bb9847ba39dbb2029bd2dec8a788db7fe34645c/bspump-19.7.tar.gz", "yanked": false, "yanked_reason": null } ], "19.9": [ { "comment_text": "", "digests": { "md5": "27f81f88d2704260f2ae352dba5b7902", "sha256": "2e60eacdb691427cfd1ebd64fc543a658371a66c49061fbe6f1efc4e34d566f2" }, "downloads": -1, "filename": "bspump-19.9-py3-none-any.whl", "has_sig": false, "md5_digest": "27f81f88d2704260f2ae352dba5b7902", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 159550, "upload_time": "2019-09-19T10:38:42", "upload_time_iso_8601": "2019-09-19T10:38:42.270942Z", "url": "https://files.pythonhosted.org/packages/96/d2/a17d16f03780e5a99b44c6f8dd37dc23082eaf0060d07eb0d81d5b27bad0/bspump-19.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1bd91375241bdad3db0f72c20ecfe98a", "sha256": "7b57f95551d19acbacc7f9638d464fd12f70f90237029b465613360f3a0c3751" }, "downloads": -1, "filename": "bspump-19.9.tar.gz", "has_sig": false, "md5_digest": "1bd91375241bdad3db0f72c20ecfe98a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98988, "upload_time": "2019-09-19T10:38:44", "upload_time_iso_8601": "2019-09-19T10:38:44.935653Z", "url": "https://files.pythonhosted.org/packages/2e/6b/3303ed2a31fb69c1ebef639bb3a488207e21a5e2eb75e32a2e2299cf149d/bspump-19.9.tar.gz", "yanked": false, "yanked_reason": null } ], "20.1": [ { "comment_text": "", "digests": { "md5": "512688c74a129094a11452bb14429480", "sha256": "545f3f575164fe04b5b3a60090075ccd645e4da4e0d9bf232539e44e09383f11" }, "downloads": -1, "filename": "bspump-20.1-py3-none-any.whl", "has_sig": false, "md5_digest": "512688c74a129094a11452bb14429480", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 187005, "upload_time": "2020-02-11T16:38:10", "upload_time_iso_8601": "2020-02-11T16:38:10.497499Z", "url": "https://files.pythonhosted.org/packages/c2/d9/0734ad309ec77dff65d2dfcdfd2725e9c712a3d604573ae42847467dfb0f/bspump-20.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e0fceb5731bc36df75553f589dce05ea", "sha256": "813a277965f8dda0d03db4856cd83b686034d60dfc5788adab74cf7c85787621" }, "downloads": -1, "filename": "bspump-20.1.tar.gz", "has_sig": false, "md5_digest": "e0fceb5731bc36df75553f589dce05ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120604, "upload_time": "2020-02-11T16:38:13", "upload_time_iso_8601": "2020-02-11T16:38:13.247423Z", "url": "https://files.pythonhosted.org/packages/01/76/225e27c51f216fdeba9c27f0486485c0db9e624f97451360fe25d84d2f05/bspump-20.1.tar.gz", "yanked": false, "yanked_reason": null } ], "20.3": [ { "comment_text": "", "digests": { "md5": "c78bc05437c5a702682dff46e1805a06", "sha256": "98b91d4b01e87e98aa5ade8d8e2c470a6eb51ca81a7537f99a2caf46e1f06c4e" }, "downloads": -1, "filename": "bspump-20.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c78bc05437c5a702682dff46e1805a06", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 196644, "upload_time": "2020-03-16T13:56:41", "upload_time_iso_8601": "2020-03-16T13:56:41.471619Z", "url": "https://files.pythonhosted.org/packages/34/f3/3a49fe928fd1195daac57e12afcbda0489a036d51119cee46f7fa3fc3b41/bspump-20.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "20.3.4": [ { "comment_text": "", "digests": { "md5": "53029f27ebd1a84c5f451b07b23821af", "sha256": "65c8f6edd9c11d52e42cdc019686adbb6ae684178807c79b47dc1f78f87a20a2" }, "downloads": -1, "filename": "bspump-20.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "53029f27ebd1a84c5f451b07b23821af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 196675, "upload_time": "2020-03-16T14:02:49", "upload_time_iso_8601": "2020-03-16T14:02:49.886962Z", "url": "https://files.pythonhosted.org/packages/8b/cb/16ca9e404b1263a38cd8882f575cd5222e961b0ac07805b9db487704fd52/bspump-20.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "071ae0f3f8a998d0cc0f11396e8811ba", "sha256": "adf325f9689e76198c48b4546d895da4567d1abc49c1660fef4f3af4a098f0c4" }, "downloads": -1, "filename": "bspump-20.3.4.tar.gz", "has_sig": false, "md5_digest": "071ae0f3f8a998d0cc0f11396e8811ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124008, "upload_time": "2020-03-16T14:02:52", "upload_time_iso_8601": "2020-03-16T14:02:52.928980Z", "url": "https://files.pythonhosted.org/packages/a7/e6/84f4b7f95951d747c7e0e08fec319c1367e3a2e4d1addf1c55464dfdafdf/bspump-20.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "20.6": [ { "comment_text": "", "digests": { "md5": "93196a8169cf789c44ab5c8f461cd46e", "sha256": "3d9a30a27ea2732e6ec2e69767e3acb1a0b0f0424879e8ec3d0fbaa761d5f9fb" }, "downloads": -1, "filename": "bspump-20.6-py3-none-any.whl", "has_sig": false, "md5_digest": "93196a8169cf789c44ab5c8f461cd46e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 248341, "upload_time": "2020-06-22T07:28:52", "upload_time_iso_8601": "2020-06-22T07:28:52.516737Z", "url": "https://files.pythonhosted.org/packages/4e/03/2d3ba0375a0af279dd34c6eb694033ff420371595e108dbe70afd0fe8f4e/bspump-20.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c73f85d9081ce4e81bbace7d0feec4b4", "sha256": "a439f2bdae353645a2c2f5ef777c46dda793ab0c2743fc286ab431ac153058b8" }, "downloads": -1, "filename": "bspump-20.6.tar.gz", "has_sig": false, "md5_digest": "c73f85d9081ce4e81bbace7d0feec4b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150048, "upload_time": "2020-06-22T07:28:54", "upload_time_iso_8601": "2020-06-22T07:28:54.381825Z", "url": "https://files.pythonhosted.org/packages/fd/ab/e2e48af925f23f14d541793a81f2129090b5a2635ca0abf18dbcd99de25d/bspump-20.6.tar.gz", "yanked": false, "yanked_reason": null } ], "20.7": [ { "comment_text": "", "digests": { "md5": "35e7e42db0820e166a894d4fbc23e3ed", "sha256": "78607f625f6965d4b235faea1138d59e942ced79efb3c622196875e1c0bda11f" }, "downloads": -1, "filename": "bspump-20.7-py3-none-any.whl", "has_sig": false, "md5_digest": "35e7e42db0820e166a894d4fbc23e3ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 249562, "upload_time": "2020-07-08T12:36:21", "upload_time_iso_8601": "2020-07-08T12:36:21.343863Z", "url": "https://files.pythonhosted.org/packages/3c/aa/465a9fb0dd067034c1cce41234be94bb0f4a315bcc2a38dfcc55f1a4b571/bspump-20.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5af1ccdd0354a66b054979522d702c12", "sha256": "435faf91c36fedefad4fc2227d16c65b1063a22d41889ef94704e709b9c48b66" }, "downloads": -1, "filename": "bspump-20.7.tar.gz", "has_sig": false, "md5_digest": "5af1ccdd0354a66b054979522d702c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 151087, "upload_time": "2020-07-08T12:36:23", "upload_time_iso_8601": "2020-07-08T12:36:23.282874Z", "url": "https://files.pythonhosted.org/packages/29/04/cb3bf046865415535b7d5f273b21f6262795e1d3aef399dd011381900eed/bspump-20.7.tar.gz", "yanked": false, "yanked_reason": null } ], "20.7.20": [ { "comment_text": "", "digests": { "md5": "a5f87671ee89459f6f7e48722a5c21e9", "sha256": "e5522789f09d993ecc229aa806a41dcb67bef21dce76d4dc0010b0e8af9d97af" }, "downloads": -1, "filename": "bspump-20.7.20-py3-none-any.whl", "has_sig": false, "md5_digest": "a5f87671ee89459f6f7e48722a5c21e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 251284, "upload_time": "2020-07-20T14:01:05", "upload_time_iso_8601": "2020-07-20T14:01:05.942871Z", "url": "https://files.pythonhosted.org/packages/b7/ee/5ba567c4c185b733205dbc64da864c1cfaa4a1b96649dea688bb608ea431/bspump-20.7.20-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cf97a92dfd396603452791ee715b783f", "sha256": "b80874760fed7ef85589253988b4e700c94695771f5960f2f13a57e11a7d0829" }, "downloads": -1, "filename": "bspump-20.7.20.tar.gz", "has_sig": false, "md5_digest": "cf97a92dfd396603452791ee715b783f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 151813, "upload_time": "2020-07-20T14:01:07", "upload_time_iso_8601": "2020-07-20T14:01:07.641906Z", "url": "https://files.pythonhosted.org/packages/81/c8/bbc6d20240a24c3da7d2dc453e841764d55f75fe13fbed8c455b04dea03c/bspump-20.7.20.tar.gz", "yanked": false, "yanked_reason": null } ], "21.1.1": [ { "comment_text": "", "digests": { "md5": "be30cc79fc663fbc39cb0e5c5e2b4128", "sha256": "34795a2dc70b486541eedf752eb105cb87f83442e08c47b1e09a9e2e2c99055b" }, "downloads": -1, "filename": "bspump-21.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "be30cc79fc663fbc39cb0e5c5e2b4128", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 262218, "upload_time": "2021-04-09T09:08:26", "upload_time_iso_8601": "2021-04-09T09:08:26.762953Z", "url": "https://files.pythonhosted.org/packages/76/cf/9dc94db0bdf90660833117e6ae6d2eb5a4aaef8c717a67345cf11d42c3af/bspump-21.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "648f26c0b5c977a0e723a47ac0dc167b", "sha256": "f1a1c8c36331ec3d56c7189c980e1aa96c4dc31214cbf21a5d5c7501e8de2ffa" }, "downloads": -1, "filename": "bspump-21.1.1.tar.gz", "has_sig": false, "md5_digest": "648f26c0b5c977a0e723a47ac0dc167b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169700, "upload_time": "2021-04-09T09:08:28", "upload_time_iso_8601": "2021-04-09T09:08:28.822252Z", "url": "https://files.pythonhosted.org/packages/60/3a/6e75c57f46bb1c6cc928c29e2f94aadf5c85b69fec77237c51bf4c6d2aa7/bspump-21.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "21.11": [ { "comment_text": "", "digests": { "md5": "551c7c3ffd6a40e5b15d5343b1482bc5", "sha256": "f67cc43b3ce4ce951bd6a82896d4f09d01d7db7983bd1d05c65a1d6ecc13c249" }, "downloads": -1, "filename": "bspump-21.11-py3-none-any.whl", "has_sig": false, "md5_digest": "551c7c3ffd6a40e5b15d5343b1482bc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 284814, "upload_time": "2021-11-15T13:14:21", "upload_time_iso_8601": "2021-11-15T13:14:21.035257Z", "url": "https://files.pythonhosted.org/packages/25/e6/ae9020be7709fb12a8fdf049e4e99aaa15689af6fabc5fb0d7a4b1b16297/bspump-21.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6f8d45677d83f54c07527f4d8a05aa29", "sha256": "796d98dd3ca3dbdb65c68a993151abb3f857cc32b5f4f73803ba6c129a974a35" }, "downloads": -1, "filename": "bspump-21.11.tar.gz", "has_sig": false, "md5_digest": "6f8d45677d83f54c07527f4d8a05aa29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 182475, "upload_time": "2021-11-15T13:14:23", "upload_time_iso_8601": "2021-11-15T13:14:23.718234Z", "url": "https://files.pythonhosted.org/packages/0d/28/7d13b6d9d2ea1305f6315c14e728bcd446648742f848783bca56f2090e62/bspump-21.11.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "551c7c3ffd6a40e5b15d5343b1482bc5", "sha256": "f67cc43b3ce4ce951bd6a82896d4f09d01d7db7983bd1d05c65a1d6ecc13c249" }, "downloads": -1, "filename": "bspump-21.11-py3-none-any.whl", "has_sig": false, "md5_digest": "551c7c3ffd6a40e5b15d5343b1482bc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 284814, "upload_time": "2021-11-15T13:14:21", "upload_time_iso_8601": "2021-11-15T13:14:21.035257Z", "url": "https://files.pythonhosted.org/packages/25/e6/ae9020be7709fb12a8fdf049e4e99aaa15689af6fabc5fb0d7a4b1b16297/bspump-21.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6f8d45677d83f54c07527f4d8a05aa29", "sha256": "796d98dd3ca3dbdb65c68a993151abb3f857cc32b5f4f73803ba6c129a974a35" }, "downloads": -1, "filename": "bspump-21.11.tar.gz", "has_sig": false, "md5_digest": "6f8d45677d83f54c07527f4d8a05aa29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 182475, "upload_time": "2021-11-15T13:14:23", "upload_time_iso_8601": "2021-11-15T13:14:23.718234Z", "url": "https://files.pythonhosted.org/packages/0d/28/7d13b6d9d2ea1305f6315c14e728bcd446648742f848783bca56f2090e62/bspump-21.11.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }