Metadata-Version: 2.1
Name: django-celery-progressbar
Version: 0.2.0
Summary: Progress bar for Django Celery application
Home-page: https://github.com/mora9715/django-celery-progressbar
Author: Eugene Prodan
Author-email: mora9715@gmail.com
License: UNKNOWN
Description: ====================================
        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.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
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
