semvec/pypi-packages huggingface dataset:
django-celery-progressbar 0.2.3
Progress bar for Django Celery application
Requires Python: >=3.6

====================================
Django Celery Progressbar
====================================

.. image:: https://travis-ci.org/mora9715/django-celery-progressbar.svg?branch=master
  :target: https://travis-ci.org/mora9715/django-celery-progressbar

.. image:: https://badge.fury.io/py/django-celery-progressbar.svg
  :target: https://badge.fury.io/py/django-celery-progressbar

Simple progressbar for a Django application with Celery. Uses database as a temporary storage.

============
Installation
============

Installation is as simple as installing a package from PyPi and applying migrations::

    $ pip install django-celery-progresbar
    $ python manage.py migrate django_celery_progressbar

=================
Usage
=================

Typical usage on the side of Celery task would look like:

.. code-block:: python

    from django_celery_progressbar.bars import ProgressBar
    from celery import shared_task

    @shared_task
    def do_something():
        bar = ProgressBar(
            task_id=do_something.request.id,
            total=10,
            step='Drying kelp...'
        )

        some_work()
        bar.update(
            progress='5',
            step='Making sushi...'
        )

        some_more_work()
        bar.progress.finalize()

To retireve current progressbar state, you can use built-in getter:

.. code-block:: python

    from django_celery_progressbar.bars import ProgressBar

    bar = ProgressBar.get(task_id)
    print(bar)

    >>> 5 / 10 | Drying kelp...

    # or as percent:
    print(bar.as_percent)

    >>> 50.0%

Keep in mind: as ProgressBar fetches DB object on creation, it is not updated dynamically.

=================
Configuration
=================

The following default settings can be overridden in your *settings.py*:

.. code-block:: python

    PROGRESSBAR_DEFAULT_TOTAL = 100
    PROGRESSBAR_DESTROY_ON_EXIT = False
    PROGRESSBAR_DYNAMIC_UPDATE = False


**PROGRESSBAR_DEFAULT_TOTAL** - Default value for 'Total' progressbar attribute
**PROGRESSBAR_DESTROY_ON_EXIT** - Destroy model object on task completion
**PROGRESSBAR_DYNAMIC_UPDATE** - Dynamically update progressbar DB object in runtime. You don't need it turned on in stateless apps

=======
License
=======

* Free software: MIT license




History
=======

0.2.3 (2020-07-12)
------------------

- added proper documentation

0.2.2 (2020-07-12)
------------------

- added *dynamic* property to ProgressBar

0.2.1 (2020-07-12)
------------------

- minor cosmetics

0.2.0 (2020-06-28)
------------------

- added possibility for dynamic updates in runtime
- added *update()* method to ProgressBar class
- fixed a bug with *finalize()* method

0.1.1 (2020-06-28)
------------------

- added *as_percent* attribute to ProgressBar class
- added *finalize()* method to ProgressBar class

0.1.0 (2020-06-28)
------------------

* First release on PyPi