Metadata-Version: 2.1
Name: cs.progress
Version: 20190220
Summary: A progress tracker with methods for throughput, ETA and update notification
Home-page: https://bitbucket.org/cameron_simpson/css/commits/all
Author: Cameron Simpson
Author-email: cs@cskk.id.au
License: UNKNOWN
Description: A progress tracker with methods for throughput, ETA and update notification.
        
        ## Class `CheckPoint`
        
        MRO: `builtins.tuple`  
        CheckPoint(time, position)
        
        ## Class `Progress`
        
        A progress counter to track task completion with various utility methods.
        
        >>> P = Progress(name="example")
        >>> P                         #doctest: +ELLIPSIS
        Progress(name='example',start=0,position=0,start_time=...,thoughput_window=None,total=None):[CheckPoint(time=..., position=0)]
        >>> P.advance(5)
        >>> P                         #doctest: +ELLIPSIS
        Progress(name='example',start=0,position=5,start_time=...,thoughput_window=None,total=None):[CheckPoint(time=..., position=0), CheckPoint(time=..., position=5)]
        >>> P.total = 100
        >>> P                         #doctest: +ELLIPSIS
        Progress(name='example',start=0,position=5,start_time=...,thoughput_window=None,total=100):[CheckPoint(time=..., position=0), CheckPoint(time=..., position=5)]
        
        A Progress instance has an attribute ``notify_update`` which
        is a set of callables. Whenever the position is updates, each
        of these will be called with the Progress instance and the
        latest CheckPoint.
        
        Progress objects also make a small pretense of being an integer.
        The expression `int(progress)` returns the current position,
        and += and -= adjust the position.
        
        This is convenient for coding, but importantly it is also
        important for discretionary use of a Progress with some other
        object.
        If you want to make a lightweight Progress capable class
        you can set a position attribute to an int
        and manipulate it carefully using += and -= entirely.
        If you decide to incur the cost of maintaining a Progress object
        you can slot it in:
        
            # initial setup with just an int
            my_thing.amount = 0
        
            # later, or on some option, use a Progress instance
            my_thing.amount = Progress(my_thing.amount)
Keywords: python2,python3
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Description-Content-Type: text/markdown
