{ "info": { "author": "Andrew Freitas", "author_email": "andrewfreitas09@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# dq\nA python library for managing and persisting named Python Queues\n\n### Installation\n```bash\npip install pydq\n```\nSome backends may require extra packages:\n```bash\npip install pydq[aws]\n```\n\n### Basic Usage\n```python\nwith dq_provider('name') as dq:\n # Query the last 10 entries with qid='item_id'\n dq(qid='item_id', start_time=datetime(1, 1, 1), end_time=datetime.utcnow(), limit=10)\n item = dq.get()\n # queue items should be dictionaries with 3 keys: qid, ts, and val\n dq.put({'qid': 'item_id', 'ts': '2019-09-11T03:23:54Z', 'val': 'foo'})\n```\nnote: specifying `qid` in the query is optional, if omitted all items between the start and end time are returned\n### Supported Backends:\n#### Local Storage\n* SQLite:\n```python\nfrom dq.local import SQLite as dq_provider\n```\n\n#### Cloud Storage\n* Buffered DynamoDB\n```python\nfrom dq.cloud import BufferedDDB as dq_provider\n```\nnote: cloud storage is created lazily; the first call to one of these providers will create the resources in the cloud. \n\n#### Additional API\nSome queue methods accept a `forget` argument that will tell the queue object whether the operation should be persisted. This always defaults to `False`.\n```python\ndq.get(forget=True) # the returned item will be deleted from persistence\ndq.put(item, forget=True) # item will not be persisted\ndq.get_all(forget=True) # Easy way to delete all items in a queue\ndq.put_all(items, forget=False)\ndq.get_to_dataframe() # install with pandas extra. Returned items are not deleted\ndq.put_from_dataframe(df) # items will be persisted\ndq.clear(forget=True) # another way to delete all items in a queue\n```\n\n#### Configuration queues\ndq is great for managing simple JSON configuration too. And we get change tracking for free!\n\n```python\nfrom dq.helpers import DqConfig\nfrom dq.local import SQLite\nwith DqConfig(name='ApplicationConfig', dq_provider=SQLite) as config:\n app_id = config['app_id']\n last_start = config['last_start']\n config['app_status'] = '#1best'\n```\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://gitlab.com/anfreitas/dq", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pydq", "package_url": "https://pypi.org/project/pydq/", "platform": "", "project_url": "https://pypi.org/project/pydq/", "project_urls": { "Homepage": "https://gitlab.com/anfreitas/dq" }, "release_url": "https://pypi.org/project/pydq/0.1.17/", "requires_dist": [ "boto3 ; extra == 'aws'", "pandas ; extra == 'pandas'" ], "requires_python": "", "summary": "Python library for managing and persisting named Python Queues with a variety of backend choices", "version": "0.1.17" }, "last_serial": 5980505, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "541d29eba80f81eae78f6709ab0b25e4", "sha256": "d13c8310e3b876391d946531407d658d454ff59ef84670a06026f3b37eb5ce00" }, "downloads": -1, "filename": "pydq-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "541d29eba80f81eae78f6709ab0b25e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6661, "upload_time": "2019-09-27T15:17:18", "url": "https://files.pythonhosted.org/packages/42/ce/0a14641fa11db79eba73baae92cf2e875324a586c1fba03a2463e04f92aa/pydq-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "18d987a4112358c72c5c068e00170444", "sha256": "c6a5aae62e4d4c910cbf9f9568680b48aac80dc5b801fa1552245ba0d93f6858" }, "downloads": -1, "filename": "pydq-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "18d987a4112358c72c5c068e00170444", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8245, "upload_time": "2019-09-27T20:07:52", "url": "https://files.pythonhosted.org/packages/c4/c8/0f127f0c5af39c58993e58caede3af0201df0a3a0c9a3c1f6de48cef62e4/pydq-0.1.1-py3-none-any.whl" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "ef859ac6cc4bc5ee957f500bab452edb", "sha256": "6b1ffb8aecaf2b6d82b67ac611aa7cdce85aed9676a55f280d3e6249bde6aff2" }, "downloads": -1, "filename": "pydq-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "ef859ac6cc4bc5ee957f500bab452edb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8497, "upload_time": "2019-10-02T20:29:11", "url": "https://files.pythonhosted.org/packages/5b/c9/1317d2b3bc11e436244187ef48ce7b44563d6db227dbb9eb3f5b8a46093f/pydq-0.1.10-py3-none-any.whl" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "f87a676a7f41250fc25bedf4acaca240", "sha256": "e91d1f6707e8dc6be1ff2fcb573f9f201f41e9d02a06b20c13e1d38a525f9786" }, "downloads": -1, "filename": "pydq-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "f87a676a7f41250fc25bedf4acaca240", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8494, "upload_time": "2019-10-02T20:48:59", "url": "https://files.pythonhosted.org/packages/06/4b/d3dda75ace185d3fd9110cac2a81eb2081d8ba4d890cd1021cbc3ac1fedf/pydq-0.1.11-py3-none-any.whl" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "9861d51f0c383e429ee56192869346f2", "sha256": "37622e5bea5e5a900b19ec29c27aa16fbe8978821f128ae5254ec4a97c9fdaf0" }, "downloads": -1, "filename": "pydq-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "9861d51f0c383e429ee56192869346f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8514, "upload_time": "2019-10-03T17:17:31", "url": "https://files.pythonhosted.org/packages/09/95/39e209e5301c55fcbaeb67a73f49b67606a78878c0ceeb8ebba1ad2c49a1/pydq-0.1.12-py3-none-any.whl" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "1cfac288186b76188853a04c9985732c", "sha256": "db9c2774e2f1e6157985c038d00376e426944224824467ad31fb5212deb1a095" }, "downloads": -1, "filename": "pydq-0.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "1cfac288186b76188853a04c9985732c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8528, "upload_time": "2019-10-03T18:24:55", "url": "https://files.pythonhosted.org/packages/3f/17/62fa422458f8c4288c5d2ec632e26b8382ecd43ef751f1065d387c27537d/pydq-0.1.13-py3-none-any.whl" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "da15bca1ed61303edd36dcda61c946ec", "sha256": "edae3d44098101848adb84de7bfabb2835b748442a2dcecb8a6652173753b1b7" }, "downloads": -1, "filename": "pydq-0.1.14-py3-none-any.whl", "has_sig": false, "md5_digest": "da15bca1ed61303edd36dcda61c946ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8594, "upload_time": "2019-10-08T03:17:06", "url": "https://files.pythonhosted.org/packages/ee/26/c1586ad02b4507b2f5fce8c07c692ac99e5645484bd720394ab75ea10c90/pydq-0.1.14-py3-none-any.whl" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "97da3ebee7c3fdd2bd1f5d2a6cc245ed", "sha256": "8dff0255b12eb9a14a43d0ae2e751b9b57ef5147ed7f7c64488e914e4e28f6ef" }, "downloads": -1, "filename": "pydq-0.1.15-py3-none-any.whl", "has_sig": false, "md5_digest": "97da3ebee7c3fdd2bd1f5d2a6cc245ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8627, "upload_time": "2019-10-15T03:05:39", "url": "https://files.pythonhosted.org/packages/40/76/75c7f242e206ee84ae7230c53b3984b6f6af782b42115a6aba1ed19f9224/pydq-0.1.15-py3-none-any.whl" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "0aea4b74d544c538bea9b3bda8a43d91", "sha256": "51c3311e0993f8675ce417f513ba5d592902690b3317ff8d1b4933d8f01bea3f" }, "downloads": -1, "filename": "pydq-0.1.16-py3-none-any.whl", "has_sig": false, "md5_digest": "0aea4b74d544c538bea9b3bda8a43d91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8648, "upload_time": "2019-10-15T16:39:34", "url": "https://files.pythonhosted.org/packages/23/9d/1ab3fbf6a08ff17b5541f6812ae2ffab17093c0159920f2136af65e00303/pydq-0.1.16-py3-none-any.whl" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "b8740efc62d1ef48346ce4d3840b2862", "sha256": "e6aad3b6e5ddf1e8a75876d18430b1093bfddb372992fde58500a58d58105a6e" }, "downloads": -1, "filename": "pydq-0.1.17-py3-none-any.whl", "has_sig": false, "md5_digest": "b8740efc62d1ef48346ce4d3840b2862", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8881, "upload_time": "2019-10-16T00:23:12", "url": "https://files.pythonhosted.org/packages/b8/cf/81d3218f23f953f9f6b85f1a140d3584ce803c6237a13c758caf761a5a23/pydq-0.1.17-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a209c7b24fd2eae29541765d6a11c550", "sha256": "17a23a5c819b13a904ee5ec827e56f496598d024100896d7c1c66729a0f5afea" }, "downloads": -1, "filename": "pydq-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a209c7b24fd2eae29541765d6a11c550", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8253, "upload_time": "2019-09-30T18:35:20", "url": "https://files.pythonhosted.org/packages/b1/01/ab1c5047bafd3aa088af5fd54d2fc4bbb45424f20cc7931b5dae41457c2e/pydq-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "41dc599291498702515034ab19a7d79c", "sha256": "d496433f2d668bd0f3f503b51f008d6e7bdda0974cc5dfffb175123746d715d9" }, "downloads": -1, "filename": "pydq-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "41dc599291498702515034ab19a7d79c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7103, "upload_time": "2019-09-30T18:49:37", "url": "https://files.pythonhosted.org/packages/dc/59/dd9ec6481e4e25ae68d1bf968985140df577df3453a7b02722caf75b6af0/pydq-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "4ebc23f9d1eb2794ea0e8fd7baaf4f1c", "sha256": "45444abade011555e983be443a9736899c3aec95ec8ed120dd0290dae897cfa8" }, "downloads": -1, "filename": "pydq-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4ebc23f9d1eb2794ea0e8fd7baaf4f1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7222, "upload_time": "2019-09-30T19:55:26", "url": "https://files.pythonhosted.org/packages/b6/cd/227cf8f55edcedaab858d6aa44032a99bcb68d22dba07ebcb57964a9eff1/pydq-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "604d28b148d120f57228dc43964c86b6", "sha256": "6d998f13194f4bd773bd777638aa86b6d58ca851315ceb009b7e6a2068145fed" }, "downloads": -1, "filename": "pydq-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "604d28b148d120f57228dc43964c86b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7219, "upload_time": "2019-09-30T20:24:48", "url": "https://files.pythonhosted.org/packages/f1/0b/137ef2937e0719ee41a674a7925a9d448890df8cf857ad79256416a610ae/pydq-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9ca62b1ddb9686703ce3cbd0c5ea890b", "sha256": "9adc85de625c4169a7552a78e02820bb381640eb18ceda9ac7bfb26c47ac0fdb" }, "downloads": -1, "filename": "pydq-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9ca62b1ddb9686703ce3cbd0c5ea890b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7199, "upload_time": "2019-09-30T20:43:46", "url": "https://files.pythonhosted.org/packages/3c/09/c9aded4e9cc4ff273f5b5dfb6481e3a250e03d9ef4bdfc5b687b6b01ead7/pydq-0.1.6-py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "1a9299a39d8f45b0df26b3eed7185a96", "sha256": "521cd13f1a822f06592e988f6763b6261ca561aa6564e1e8e9a61745c2bb55bd" }, "downloads": -1, "filename": "pydq-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "1a9299a39d8f45b0df26b3eed7185a96", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7195, "upload_time": "2019-09-30T21:10:56", "url": "https://files.pythonhosted.org/packages/49/93/b3b4f1ff974a185d75658da4db1577c2ed2cdcd12673244c79b1b7ea2be8/pydq-0.1.7-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0448a20c9aef3d0385a26b2c899695cb", "sha256": "2484ee2fe5f0c495e1126ba359ef42122c69ac9cd3396f5ae962ff9324cc8048" }, "downloads": -1, "filename": "pydq-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "0448a20c9aef3d0385a26b2c899695cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7193, "upload_time": "2019-10-01T14:23:01", "url": "https://files.pythonhosted.org/packages/98/48/327b718e6f7f2de0eba4e37eda263a9098ac35d95bb439cb8379f8369caa/pydq-0.1.8-py3-none-any.whl" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "9f5fa815736bb5643f244fc3a32439b2", "sha256": "2d00298ef3fbc819c7a6b1cada7096534d9c315ba696dce3392c89fda8d5c707" }, "downloads": -1, "filename": "pydq-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9f5fa815736bb5643f244fc3a32439b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7193, "upload_time": "2019-10-01T14:59:13", "url": "https://files.pythonhosted.org/packages/ef/29/37f6bc329ef43cad329cbcff6b3f1eb0238fbcc4bd8166e917fcad18ec7d/pydq-0.1.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b8740efc62d1ef48346ce4d3840b2862", "sha256": "e6aad3b6e5ddf1e8a75876d18430b1093bfddb372992fde58500a58d58105a6e" }, "downloads": -1, "filename": "pydq-0.1.17-py3-none-any.whl", "has_sig": false, "md5_digest": "b8740efc62d1ef48346ce4d3840b2862", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8881, "upload_time": "2019-10-16T00:23:12", "url": "https://files.pythonhosted.org/packages/b8/cf/81d3218f23f953f9f6b85f1a140d3584ce803c6237a13c758caf761a5a23/pydq-0.1.17-py3-none-any.whl" } ] }