{ "info": { "author": "Cory Zue", "author_email": "cory@coryzue.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "# Celery Progress Bars for Django\n\nDrop in, dependency-free progress bars for your Django/Celery applications.\n\nSuper simple setup. Lots of customization available.\n\n## Demo\n\n[Celery Progress Bar demo on Build With Django](https://buildwithdjango.com/projects/celery-progress/)\n\n### Github demo application: build a download progress bar for Django\nStarting with Celery can be challenging, [eeintech](https://github.com/eeintech) built a complete [Django demo application](https://github.com/eeintech/django-celery-progress-demo) along with a [step-by-step guide](https://eeinte.ch/stream/progress-bar-django-using-celery/) to get you started on building your own progress bar!\n\n## Installation\n\nIf you haven't already, make sure you have properly [set up celery in your project](https://docs.celeryproject.org/en/stable/getting-started/first-steps-with-celery.html#first-steps).\n\nThen install this library:\n\n```bash\npip install celery-progress\n```\n\n## Usage\n\n### Prerequisites\n\nFirst add `celery_progress` to your `INSTALLED_APPS` in `settings.py`.\n\nThen add the following url config to your main `urls.py`:\n\n```python\nfrom django.urls import re_path, include\nre_path(r'^celery-progress/', include('celery_progress.urls')), # the endpoint is configurable\n```\n\n### Recording Progress\n\nIn your task you should add something like this:\n\n```python\nfrom celery import shared_task\nfrom celery_progress.backend import ProgressRecorder\nimport time\n\n@shared_task(bind=True)\ndef my_task(self, seconds):\n progress_recorder = ProgressRecorder(self)\n result = 0\n for i in range(seconds):\n time.sleep(1)\n result += i\n progress_recorder.set_progress(i + 1, seconds)\n return result\n```\n\nYou can add an optional progress description like this:\n\n```python\n progress_recorder.set_progress(i + 1, seconds, description='my progress description')\n```\n\n### Displaying progress\n\nIn the view where you call the task you need to get the task ID like so:\n\n**views.py**\n```python\ndef progress_view(request):\n result = my_task.delay(10)\n return render(request, 'display_progress.html', context={'task_id': result.task_id})\n```\n\nThen in the page you want to show the progress bar you just do the following.\n\n#### Add the following HTML wherever you want your progress bar to appear:\n\n**display_progress.html**\n```html\n
\n
 
\n
\n
Waiting for progress to start...
\n```\n\n#### Import the javascript file.\n\n**display_progress.html**\n```html\n\n```\n\n#### Initialize the progress bar:\n\n```javascript\n// vanilla JS version\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n var progressUrl = \"{% url 'celery_progress:task_status' task_id %}\";\n CeleryProgressBar.initProgressBar(progressUrl);\n});\n```\n\nor\n\n```javascript\n// JQuery\n$(function () {\n var progressUrl = \"{% url 'celery_progress:task_status' task_id %}\";\n CeleryProgressBar.initProgressBar(progressUrl)\n});\n```\n\n### Displaying the result of a task\n\nIf you'd like you can also display the result of your task on the front end. \n\nTo do that follow the steps below. Result handling can also be customized.\n\n#### Initialize the result block:\n\nThis is all that's needed to render the result on the page.\n\n**display_progress.html**\n```html\n
\n```\n\nBut more likely you will want to customize how the result looks, which can be done as below:\n\n```javascript\n// JQuery\nvar progressUrl = \"{% url 'celery_progress:task_status' task_id %}\";\n\nfunction customResult(resultElement, result) {\n $( resultElement ).append(\n $('

').text('Sum of all seconds is ' + result)\n );\n}\n\n$(function () {\n CeleryProgressBar.initProgressBar(progressUrl, {\n onResult: customResult,\n })\n});\n```\n\n## Customization\n\nThe `initProgressBar` function takes an optional object of options. The following options are supported:\n\n| Option | What it does | Default Value |\n|--------|--------------|---------------|\n| pollInterval | How frequently to poll for progress (in milliseconds) | 500 |\n| progressBarId | Override the ID used for the progress bar | 'progress-bar' |\n| progressBarMessageId | Override the ID used for the progress bar message | 'progress-bar-message' |\n| progressBarElement | Override the *element* used for the progress bar. If specified, progressBarId will be ignored. | document.getElementById(progressBarId) |\n| progressBarMessageElement | Override the *element* used for the progress bar message. If specified, progressBarMessageId will be ignored. | document.getElementById(progressBarMessageId) |\n| resultElementId | Override the ID used for the result | 'celery-result' |\n| resultElement | Override the *element* used for the result. If specified, resultElementId will be ignored. | document.getElementById(resultElementId) |\n| onProgress | function to call when progress is updated | onProgressDefault |\n| onSuccess | function to call when progress successfully completes | onSuccessDefault |\n| onError | function to call on a known error with no specified handler | onErrorDefault |\n| onRetry | function to call when a task attempts to retry | onRetryDefault |\n| onIgnored | function to call when a task result is ignored | onIgnoredDefault |\n| onTaskError | function to call when progress completes with an error | onError |\n| onNetworkError | function to call on a network error (ignored by WebSocket) | onError |\n| onHttpError | function to call on a non-200 response (ignored by WebSocket) | onError |\n| onDataError | function to call on a response that's not JSON or has invalid schema due to a programming error | onError |\n| onResult | function to call when returned non empty result | CeleryProgressBar.onResultDefault |\n| barColors | dictionary containing color values for various progress bar states. Colors that are not specified will defer to defaults | barColorsDefault |\n| defaultMessages | dictionary containing default messages that can be overridden | see below |\n\nThe `barColors` option allows you to customize the color of each progress bar state by passing a dictionary of key-value pairs of `state: #hexcode`. The defaults are shown below.\n\n| State | Hex Code | Image Color | \n|-------|----------|:-------------:|\n| success | #76ce60 | ![#76ce60](https://via.placeholder.com/15/76ce60/000000?text=+) |\n| error | #dc4f63 | ![#dc4f63](https://via.placeholder.com/15/dc4f63/000000?text=+) |\n| progress | #68a9ef | ![#68a9ef](https://via.placeholder.com/15/68a9ef/000000?text=+) |\n| ignored | #7a7a7a | ![#7a7a7a](https://via.placeholder.com/15/7a7a7a/000000?text=+) |\n\nThe `defaultMessages` option allows you to override some default messages in the UI. At the moment these are:\n\n| Message Id | When Shown | Default Value |\n|-------|----------|:-------------:|\n| waiting | Task is waiting to start | 'Waiting for task to start...'\n| started | Task has started but reports no progress | 'Task started...'\n\n# WebSocket Support\n\nAdditionally, this library offers WebSocket support using [Django Channels](https://channels.readthedocs.io/en/latest/)\ncourtesy of [EJH2](https://github.com/EJH2/).\n\nA working example project leveraging WebSockets is [available here](https://github.com/EJH2/cp_ws-example).\n\nTo use WebSockets, install with `pip install celery-progress[websockets,redis]` or\n`pip install celery-progress[websockets,rabbitmq]` (depending on broker dependencies).\n\nSee `WebSocketProgressRecorder` and `websockets.js` for details.\n\n# Securing the get_progress endpoint\nBy default, anyone can see the status and result of any task by accessing `/celery-progress/`\n\nTo limit access, you need to wrap `get_progress()` in a view of your own which implements the permissions check, and create a new url routing to point to your view. Make sure to remove any existing (unprotected) celery progress urls from your root urlconf at the same time.\n\n\nFor example, requiring login with a class-based view:\n```python\n\n# views.py\nfrom celery_progress.views import get_progress\nfrom django.contrib.auth.mixins import LoginRequiredMixin\nfrom django.views.generic import View\n\nclass TaskStatus(LoginRequiredMixin, View):\n def get(self, request, task_id, *args, **kwargs):\n # Other checks could go here\n return get_progress(request, task_id=task_id)\n```\n\n```python\n# urls.py\nfrom django.urls import path\nfrom . import views\n\nurlpatterns = [\n ...\n path('task-status/', views.TaskStatus.as_view(), name='task_status'),\n ...\n]\n```\n\nRequiring login with a function-based view:\n```python\n\n# views.py\nfrom celery_progress.views import get_progress\nfrom django.contrib.auth.decorators import login_required\n\n@login_required\ndef task_status(request, task_id):\n # Other checks could go here\n return get_progress(request, task_id)\n```\n\n```python\n# urls.py\nfrom django.urls import path\n\nfrom . import views\n\nurlpatterns = [\n ...\n path('task-status/', views.task_status, name='task_status'),\n ...\n]\n```\n\n\nAny links to `'celery_progress:task_status'` will need to be changed to point to your new endpoint.\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://github.com/czue/celery-progress", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "celery-progress", "package_url": "https://pypi.org/project/celery-progress/", "platform": "", "project_url": "https://pypi.org/project/celery-progress/", "project_urls": { "Homepage": "https://github.com/czue/celery-progress" }, "release_url": "https://pypi.org/project/celery-progress/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Drop in, configurable, dependency-free progress bars for your Django/Celery applications.", "version": "0.1.2", "yanked": false, "yanked_reason": null }, "last_serial": 12684505, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5712ea90e60cd867faf2bc669e49a814", "sha256": "b6b9fc76821c199faad5d8db7ba81a0aa842670d92dda2f57eb001f7094b1d72" }, "downloads": -1, "filename": "celery-progress-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5712ea90e60cd867faf2bc669e49a814", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4698, "upload_time": "2018-01-20T12:29:58", "upload_time_iso_8601": "2018-01-20T12:29:58.608348Z", "url": "https://files.pythonhosted.org/packages/07/4c/f371339c182d8eeb9924022c4ba2971222517a65a41bb843983ba8d56485/celery-progress-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "86f9b840eae1c485a3e3d385278b6681", "sha256": "90941bf3aaeac9333d554a2191fa6cd81ef323472329ace0dd77344ac6aab092" }, "downloads": -1, "filename": "celery_progress-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "86f9b840eae1c485a3e3d385278b6681", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14190, "upload_time": "2020-05-07T12:18:37", "upload_time_iso_8601": "2020-05-07T12:18:37.705491Z", "url": "https://files.pythonhosted.org/packages/7c/64/94bfb8fdc2c93d4e47548c911ea3fc2c01933c7872e22c208e49c9a91e67/celery_progress-0.0.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ecf6527957551822fdc58ebe2b6c6d69", "sha256": "3f7b35e1e6c79eec38f5647b024aa74193d0a41d5b47ecbb85b66f9ca68d5261" }, "downloads": -1, "filename": "celery-progress-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ecf6527957551822fdc58ebe2b6c6d69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7744, "upload_time": "2020-05-07T12:18:39", "upload_time_iso_8601": "2020-05-07T12:18:39.600921Z", "url": "https://files.pythonhosted.org/packages/70/3e/13d99df34f04cb5329026880ace15b52d45998a4000d9b29b785abd740e4/celery-progress-0.0.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "ee07f993ad0b806932d49fd0eb783be9", "sha256": "20d2ac6f1e37615e40b335e79ec60f946d641ab09c7ae9e48882537d973d4311" }, "downloads": -1, "filename": "celery_progress-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "ee07f993ad0b806932d49fd0eb783be9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15278, "upload_time": "2020-08-27T07:57:29", "upload_time_iso_8601": "2020-08-27T07:57:29.799845Z", "url": "https://files.pythonhosted.org/packages/bc/fc/f032c64dc652c412033946bce8e4bdcd14548e044c64d410b36ca2d12286/celery_progress-0.0.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "13f564bbe032067c57754662e2e475af", "sha256": "ad9f04fd3fde8f145c78be517babf963ecda20f97122ce4cf4a64430a99a100a" }, "downloads": -1, "filename": "celery-progress-0.0.11.tar.gz", "has_sig": false, "md5_digest": "13f564bbe032067c57754662e2e475af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8470, "upload_time": "2020-08-27T07:57:31", "upload_time_iso_8601": "2020-08-27T07:57:31.688788Z", "url": "https://files.pythonhosted.org/packages/ac/48/9fa40b967d58cd74aea59dbfc74db41f2d26f4dfc2b7bb16a53cd296f304/celery-progress-0.0.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "7d358d4f4a354e34e1ad6aa06e4c5192", "sha256": "b3727b1b65c79ec072513eb42f1903eaec64a75d2f691b5664fa660f2bd319ad" }, "downloads": -1, "filename": "celery_progress-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "7d358d4f4a354e34e1ad6aa06e4c5192", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15378, "upload_time": "2020-08-27T08:14:22", "upload_time_iso_8601": "2020-08-27T08:14:22.595112Z", "url": "https://files.pythonhosted.org/packages/f7/c2/d79cf3ea7501a46d505567b983a6671b1524e64619445c2c75614754f0e2/celery_progress-0.0.12-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9a2da7a670720072fe9d75eae299b092", "sha256": "df61d61ac2b29e51b61a2cbd070d28b69f9f538d31e5f4b8076d9721251d6c59" }, "downloads": -1, "filename": "celery-progress-0.0.12.tar.gz", "has_sig": false, "md5_digest": "9a2da7a670720072fe9d75eae299b092", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8505, "upload_time": "2020-08-27T08:14:24", "upload_time_iso_8601": "2020-08-27T08:14:24.345145Z", "url": "https://files.pythonhosted.org/packages/aa/4d/dda5726e6eaf52d3b5f5f866a21bc8afb80f3c59b7db844fca552f9dd229/celery-progress-0.0.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "0a611558c8f9d53c00bb80cd9747fb21", "sha256": "763859621eaa2f7ec233cc0d517e065f0ce5d90c028a493856c25a2692332acd" }, "downloads": -1, "filename": "celery_progress-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "0a611558c8f9d53c00bb80cd9747fb21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15704, "upload_time": "2020-10-10T12:16:24", "upload_time_iso_8601": "2020-10-10T12:16:24.871428Z", "url": "https://files.pythonhosted.org/packages/16/70/07e3d64cf84c47553f1831ab4d42158ec61f71d7df5a66badb6530aa46c0/celery_progress-0.0.13-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "99100060876818be8c26c763e7fea864", "sha256": "984a5d421f5494893e540807af61ce7d8d3d05477c7e997e1bb8ccffce8c184f" }, "downloads": -1, "filename": "celery-progress-0.0.13.tar.gz", "has_sig": false, "md5_digest": "99100060876818be8c26c763e7fea864", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9041, "upload_time": "2020-10-10T12:16:26", "upload_time_iso_8601": "2020-10-10T12:16:26.702076Z", "url": "https://files.pythonhosted.org/packages/21/0d/2d98a3da71e76b1b81e9c015201a75fac8669a8f266afeca5f5ef1d96fd6/celery-progress-0.0.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "4ee4ab72015b77ac884908521a0e61dc", "sha256": "6d95c01fe044dd5dbb1e2d507724f9ace70bde796bc6db51ba19c8a95e94da07" }, "downloads": -1, "filename": "celery_progress-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "4ee4ab72015b77ac884908521a0e61dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13494, "upload_time": "2020-10-12T11:02:42", "upload_time_iso_8601": "2020-10-12T11:02:42.714994Z", "url": "https://files.pythonhosted.org/packages/81/9f/7f1c1d00cdf8c7114e7b365d79d16a02df483719ee8dbcbb94834be3b8ad/celery_progress-0.0.14-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c7646d58afffbaea6e8e0633d7b9b405", "sha256": "002ead0d3fa3602bd74cf328206b8e2352994ab599711dc20058a5cf2b4db2d1" }, "downloads": -1, "filename": "celery-progress-0.0.14.tar.gz", "has_sig": false, "md5_digest": "c7646d58afffbaea6e8e0633d7b9b405", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9051, "upload_time": "2020-10-12T11:02:44", "upload_time_iso_8601": "2020-10-12T11:02:44.348772Z", "url": "https://files.pythonhosted.org/packages/ea/37/7dcf5deef8488f243bac0ac4930433e601864f4ba3b6aa7b4bbe10d4c8c0/celery-progress-0.0.14.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.1b0": [ { "comment_text": "", "digests": { "md5": "14689cc9a4933a3ddb670cd65a9bd690", "sha256": "c01934546e70af05a31ffd8e39598fbf3562cbc2a11630cf2a181b1ea7445c31" }, "downloads": -1, "filename": "celery-progress-0.0.1b0.tar.gz", "has_sig": false, "md5_digest": "14689cc9a4933a3ddb670cd65a9bd690", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5189, "upload_time": "2018-01-20T12:36:47", "upload_time_iso_8601": "2018-01-20T12:36:47.720458Z", "url": "https://files.pythonhosted.org/packages/21/1b/2acc644144b7b970a5e9ed16c19d797bd983f3f715c2d1d1a6e361496352/celery-progress-0.0.1b0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.1rc0": [ { "comment_text": "", "digests": { "md5": "02b0f21029134e3fdd924b85e68d3fe3", "sha256": "42bc202cfcdae84841a0f2e1e1a7e097f67fff21f1a83bcc4407ae081af66820" }, "downloads": -1, "filename": "celery-progress-0.0.1rc0.tar.gz", "has_sig": false, "md5_digest": "02b0f21029134e3fdd924b85e68d3fe3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5631, "upload_time": "2018-01-20T12:43:45", "upload_time_iso_8601": "2018-01-20T12:43:45.123560Z", "url": "https://files.pythonhosted.org/packages/38/ec/bad6b9fcb3cd669e756941f4d0b88df4ed499ff07b8dce9d70e7298415cd/celery-progress-0.0.1rc0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "97bc1e4f55eb702a7807689f2ff0d5b2", "sha256": "6fa87c95356e5dd0d064a4eb91d64e11a9506c56c17415f2d621e86c95adbe1c" }, "downloads": -1, "filename": "celery-progress-0.0.2.tar.gz", "has_sig": false, "md5_digest": "97bc1e4f55eb702a7807689f2ff0d5b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5219, "upload_time": "2018-01-20T12:50:27", "upload_time_iso_8601": "2018-01-20T12:50:27.848596Z", "url": "https://files.pythonhosted.org/packages/77/30/265f48b0401f2f4b8c1e220b9685666945c9beb6c396b288e730357173d4/celery-progress-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2a0": [ { "comment_text": "", "digests": { "md5": "b655a70814452644026e7029b5e667cb", "sha256": "8286080901642fe7558a9c605d61843d9f888d11f0749dd6f128f773e153b4bf" }, "downloads": -1, "filename": "celery-progress-0.0.2a0.tar.gz", "has_sig": false, "md5_digest": "b655a70814452644026e7029b5e667cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5219, "upload_time": "2018-01-20T12:48:08", "upload_time_iso_8601": "2018-01-20T12:48:08.509978Z", "url": "https://files.pythonhosted.org/packages/bb/cf/63d879e89458efa0a6de0366b4cc76c799d8e85497b370f532408e467514/celery-progress-0.0.2a0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "5b38a20eee3f70ae2aad738d7811ca26", "sha256": "96870b393d5d025ee51674a10ad3f175ac6b9ae9b1c60590664cddab3ef0b769" }, "downloads": -1, "filename": "celery-progress-0.0.3.tar.gz", "has_sig": false, "md5_digest": "5b38a20eee3f70ae2aad738d7811ca26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4986, "upload_time": "2018-01-23T13:05:13", "upload_time_iso_8601": "2018-01-23T13:05:13.077483Z", "url": "https://files.pythonhosted.org/packages/6a/92/13726745b4bc413c4da80568d01b3a12412f228015a063edb65491919e68/celery-progress-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c2e2d787d659e5444917a776e1b6696c", "sha256": "de859f0ebec6a29edd0261d986539d726e02fc244ff6e1894615351c2ec50f78" }, "downloads": -1, "filename": "celery-progress-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c2e2d787d659e5444917a776e1b6696c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5607, "upload_time": "2019-06-18T11:55:23", "upload_time_iso_8601": "2019-06-18T11:55:23.858442Z", "url": "https://files.pythonhosted.org/packages/17/81/e8938a6845cb3aa6952cd34cfc7d4db22a58086666f511323a1d8d2b7b7b/celery-progress-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "6fb9ef7211dd19ad1f3925397a5ea00d", "sha256": "e7d1bebcb59185f44d8c5b521867b60e2f267fb4f0a331a0fb2b033421cd48c0" }, "downloads": -1, "filename": "celery_progress-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "6fb9ef7211dd19ad1f3925397a5ea00d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6686, "upload_time": "2019-09-10T09:20:01", "upload_time_iso_8601": "2019-09-10T09:20:01.231176Z", "url": "https://files.pythonhosted.org/packages/12/46/d26b7b10178dc3ce01a3394233c3c762a97c918dd48cccfbe22b44f05f89/celery_progress-0.0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a07e07b38645577a5e74cbbffc014522", "sha256": "85cbdac9b9577fd156c00b8ce4e2b092c5f624c08aec52e475be94a573e8c25c" }, "downloads": -1, "filename": "celery-progress-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a07e07b38645577a5e74cbbffc014522", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6315, "upload_time": "2019-09-10T09:20:03", "upload_time_iso_8601": "2019-09-10T09:20:03.561383Z", "url": "https://files.pythonhosted.org/packages/70/89/4a3b93e4d4904e5d8359d8d037add79173ee86943383e6a17cc36e841590/celery-progress-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "069e36e508fd1373c80f7f61327546f8", "sha256": "6667fab3cf3c3d26ef23813cb3d8555a22ba39e1c8215ea3b946d4a001cc9619" }, "downloads": -1, "filename": "celery_progress-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "069e36e508fd1373c80f7f61327546f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9678, "upload_time": "2019-10-24T06:51:43", "upload_time_iso_8601": "2019-10-24T06:51:43.341513Z", "url": "https://files.pythonhosted.org/packages/86/1a/190c1428e71cbc0c17cd093868a226b0c179c03898da1da9882849b421a6/celery_progress-0.0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "61d772d6fe7ba3da4fb071ca61dfa5dd", "sha256": "aff9ea90654ad544d18486f69e7cb396fdf9fa757e6bf25187d4c105b5095383" }, "downloads": -1, "filename": "celery-progress-0.0.6.tar.gz", "has_sig": false, "md5_digest": "61d772d6fe7ba3da4fb071ca61dfa5dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7982, "upload_time": "2019-10-24T06:51:47", "upload_time_iso_8601": "2019-10-24T06:51:47.326398Z", "url": "https://files.pythonhosted.org/packages/27/14/c58bfdbdbbd0d256fc5711e0d61972890b2b65b0e552e49c7de23b21a201/celery-progress-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "3d976373ee23593b3fcad4046030532a", "sha256": "5b527ec0d5ef7e2d14461fd19006079857b06a834efb3abcf31497114b1da1c6" }, "downloads": -1, "filename": "celery_progress-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "3d976373ee23593b3fcad4046030532a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9765, "upload_time": "2019-10-28T06:52:44", "upload_time_iso_8601": "2019-10-28T06:52:44.402772Z", "url": "https://files.pythonhosted.org/packages/e9/dd/676fe77a6958995c7454bd48b214f3ee2f12f098181316ff30a1f2402978/celery_progress-0.0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8feab90f8e0deb99391d7b7f081e21f4", "sha256": "7bd78b489ecb50da97a5350a0b5834d204ce69de8e2d7df2c057860ad7c0adfc" }, "downloads": -1, "filename": "celery-progress-0.0.7.tar.gz", "has_sig": false, "md5_digest": "8feab90f8e0deb99391d7b7f081e21f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8141, "upload_time": "2019-10-28T06:52:54", "upload_time_iso_8601": "2019-10-28T06:52:54.642778Z", "url": "https://files.pythonhosted.org/packages/9c/35/af247e8645da0fc58b1f27b08fe9a5cc75d4ef11c98f566146e8d3e3f2a8/celery-progress-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "5fa97b8ca2ae1b9cf9d3e8608e56606e", "sha256": "3c479cf7d90f3e9a4059dd60f7f1ad37af540e38fc5a7d61fa154b55db1a1040" }, "downloads": -1, "filename": "celery_progress-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "5fa97b8ca2ae1b9cf9d3e8608e56606e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12506, "upload_time": "2019-11-07T05:31:32", "upload_time_iso_8601": "2019-11-07T05:31:32.541519Z", "url": "https://files.pythonhosted.org/packages/58/b9/3dcb79a95e42a8b58b44528b63c292ce09c6eef6c16e8c690c746bceb645/celery_progress-0.0.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "acef2cf020bef7c4982774dbb4ac35fb", "sha256": "a05f8a80b88b7c0acf52db9fcdc6a641d830de52163c6039901b82458ccb6066" }, "downloads": -1, "filename": "celery-progress-0.0.8.tar.gz", "has_sig": false, "md5_digest": "acef2cf020bef7c4982774dbb4ac35fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8251, "upload_time": "2019-11-07T05:31:34", "upload_time_iso_8601": "2019-11-07T05:31:34.840749Z", "url": "https://files.pythonhosted.org/packages/31/43/9de3e4eaf3fd70cee9f78ac5a0972540b64298531fa38d7576a667372409/celery-progress-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "d794af71430b780b4ff4c00d980a0193", "sha256": "82abe8101066c8d48af03a4c75eb675836c9af99169fd039c161fc9113a7b0df" }, "downloads": -1, "filename": "celery_progress-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "d794af71430b780b4ff4c00d980a0193", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12496, "upload_time": "2020-01-07T12:05:57", "upload_time_iso_8601": "2020-01-07T12:05:57.842789Z", "url": "https://files.pythonhosted.org/packages/d3/16/a9e9ffa6627bc55af7261eeefad87b6c35316fa482fd928281520ed1d221/celery_progress-0.0.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8ecbd0ee4e5aa840e09afb550b810d6d", "sha256": "513833c66c9bbc2d158e973d465654b7310929bb2624d1045c4360cf025b0456" }, "downloads": -1, "filename": "celery-progress-0.0.9.tar.gz", "has_sig": false, "md5_digest": "8ecbd0ee4e5aa840e09afb550b810d6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8267, "upload_time": "2020-01-07T12:06:01", "upload_time_iso_8601": "2020-01-07T12:06:01.390783Z", "url": "https://files.pythonhosted.org/packages/1d/77/6797a054f39e34ba5c220f8af5821286d7e7a7e9e4ec70d1a57e2f244b39/celery-progress-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b83d3a9945f272d514aa17b0be2362ca", "sha256": "01bc7ecb2483ed7085b957413a392f85b7e1002fc8ce6d24f3d1ff264173002d" }, "downloads": -1, "filename": "celery_progress-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b83d3a9945f272d514aa17b0be2362ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15188, "upload_time": "2021-03-04T07:10:38", "upload_time_iso_8601": "2021-03-04T07:10:38.705385Z", "url": "https://files.pythonhosted.org/packages/dc/bf/970b766499e033e92f582e16a6375763697b227d77cda67dc6adcd1c03ed/celery_progress-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "62dbaf26b26e8071bdb4b1e1cc17c2ad", "sha256": "60325e0c6733f99a599a911e520c56b87834c397b454531a426079b4e35a8831" }, "downloads": -1, "filename": "celery-progress-0.1.0.tar.gz", "has_sig": false, "md5_digest": "62dbaf26b26e8071bdb4b1e1cc17c2ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12799, "upload_time": "2021-07-05T11:20:10", "upload_time_iso_8601": "2021-07-05T11:20:10.230202Z", "url": "https://files.pythonhosted.org/packages/89/cc/c390639356e3d48dcae30de9c6b6791146454c316087d810bef5f4cae82d/celery-progress-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "feff1a954d6b54dbacca563f42e0b48e", "sha256": "36a1e58b4408c9bf6aa63908204b50960b005db8e13f3c94ce6f8d6a2a4d4a6c" }, "downloads": -1, "filename": "celery_progress-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "feff1a954d6b54dbacca563f42e0b48e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15282, "upload_time": "2021-07-05T11:16:09", "upload_time_iso_8601": "2021-07-05T11:16:09.846114Z", "url": "https://files.pythonhosted.org/packages/2b/7f/42a6e8d6ccd92533938396bbfde63301ef41e54f2d850fad67efbb907c59/celery_progress-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "32132e80e14d232ea6a1452dc8579c7d", "sha256": "b2622d1b410a763412810f0293153c984f4a0220b76769bd701b5b45e583ddad" }, "downloads": -1, "filename": "celery-progress-0.1.1.tar.gz", "has_sig": false, "md5_digest": "32132e80e14d232ea6a1452dc8579c7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12814, "upload_time": "2021-07-05T11:16:11", "upload_time_iso_8601": "2021-07-05T11:16:11.537498Z", "url": "https://files.pythonhosted.org/packages/41/1a/e4e2e2eaef9ec446fff4e0c4a12dc409cc2211fa7006e5214291dbeabc8c/celery-progress-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4fe0601c9795047222acad5530e2b553", "sha256": "b871183bd84acb843dea3f96516c4fe6bc92416b92a12791dacba13d1363050a" }, "downloads": -1, "filename": "celery-progress-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4fe0601c9795047222acad5530e2b553", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14170, "upload_time": "2022-01-25T07:07:47", "upload_time_iso_8601": "2022-01-25T07:07:47.432216Z", "url": "https://files.pythonhosted.org/packages/88/ec/f407f46375c85759f9cb0da1019af25b7df7a4bf2528155b644b25095569/celery-progress-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4fe0601c9795047222acad5530e2b553", "sha256": "b871183bd84acb843dea3f96516c4fe6bc92416b92a12791dacba13d1363050a" }, "downloads": -1, "filename": "celery-progress-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4fe0601c9795047222acad5530e2b553", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14170, "upload_time": "2022-01-25T07:07:47", "upload_time_iso_8601": "2022-01-25T07:07:47.432216Z", "url": "https://files.pythonhosted.org/packages/88/ec/f407f46375c85759f9cb0da1019af25b7df7a4bf2528155b644b25095569/celery-progress-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }