{ "info": { "author": "Cameron Simpson", "author_email": "cs@cskk.id.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "*Release 20190812*:\nNew OverProgress class which is a composite of a set of subsidiary Progress instances.\nAssorted other small updates.\n\nA progress tracker with methods for throughput, ETA and update notification.\n\n## Class `BaseProgress`\n\nThe base class for `Progress` and `OverProcess`\nwith various common methods.\n\nNote that durations are in seconds\nand that absolute time is in seconds since the UNIX epoch\n(the basis of `time.time()`).\n\n## Class `CheckPoint`\n\nMRO: `builtins.tuple` \nCheckPoint(time, position)\n\n## Class `OverProgress`\n\nMRO: `BaseProgress` \nA `Progress`-like class computed from a set of subsidiary `Process`es.\n\nExample:\n\n >>> P = OverProgress(name=\"over\")\n >>> P1 = Progress(name=\"progress1\", position=12)\n >>> P1.total = 100\n >>> P1.advance(7)\n >>> P2 = Progress(name=\"progress2\", position=20)\n >>> P2.total = 50\n >>> P2.advance(9)\n >>> P.add(P1)\n >>> P.add(P2)\n >>> P1.total\n 100\n >>> P2.total\n 50\n >>> P.total\n 150\n >>> P1.start\n 12\n >>> P2.start\n 20\n >>> P.start\n 0\n >>> P1.position\n 19\n >>> P2.position\n 29\n >>> P.position\n 16\n\n## Class `Progress`\n\nMRO: `BaseProgress` \nA progress counter to track task completion with various utility methods.\n\nExample:\n\n >>> P = Progress(name=\"example\")\n >>> P #doctest: +ELLIPSIS\n Progress(name='example',start=0,position=0,start_time=...,thoughput_window=None,total=None):[CheckPoint(time=..., position=0)]\n >>> P.advance(5)\n >>> P #doctest: +ELLIPSIS\n Progress(name='example',start=0,position=5,start_time=...,thoughput_window=None,total=None):[CheckPoint(time=..., position=0), CheckPoint(time=..., position=5)]\n >>> P.total = 100\n >>> P #doctest: +ELLIPSIS\n Progress(name='example',start=0,position=5,start_time=...,thoughput_window=None,total=100):[CheckPoint(time=..., position=0), CheckPoint(time=..., position=5)]\n\nA Progress instance has an attribute ``notify_update`` which\nis a set of callables. Whenever the position is updated, each\nof these will be called with the `Progress` instance and the\nlatest `CheckPoint`.\n\n`Progress` objects also make a small pretense of being an integer.\nThe expression `int(progress)` returns the current position,\nand `+=` and `-=` adjust the position.\n\nThis is convenient for coding, but importantly it is also\nuseful for discretionary use of a Progress with some other\nobject.\nIf you want to make a lightweight `Progress` capable class\nyou can set a position attribute to an `int`\nand manipulate it carefully using `+=` and `-=` entirely.\nIf you decide to incur the cost of maintaining a `Progress` object\nyou can slot it in:\n\n # initial setup with just an int\n my_thing.amount = 0\n\n # later, or on some option, use a Progress instance\n my_thing.amount = Progress(my_thing.amount)\n\n### Method `Progress.__init__(self, position=None, name=None, start=None, start_time=None, throughput_window=None, total=None)`\n\nInitialise the Progesss object.\n\nParameters:\n* `position`: initial position, default `0`.\n* `name`: optional name for this instance.\n* `start`: starting position of progress range,\n default from `position`.\n* `start_time`: start time of the process, default now.\n* `throughput_window`: length of throughput time window in seconds,\n default None.\n* `total`: expected completion value, default None.\n\n\n\n# Release Log\n\n*Release 20190812*:\nNew OverProgress class which is a composite of a set of subsidiary Progress instances.\nAssorted other small updates.\n\n*Release 20190220*:\nProgress: be somewhat like an int.\nNew status() method returning a convenient one line progress status report.\n\n*Release 20180703.2*:\nProgress: make .total into a property in order to fire the update notifications.\n\n*Release 20180703.1*:\nProgress: additions and changes to API: new .ratio, .elapsed_time, rename .projected to .remaining_time.\n\n*Release 20180703*:\nInitial release of cs.progress.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/cameron_simpson/css/commits/all", "keywords": "python2,python3", "license": "GNU General Public License v3 or later (GPLv3+)", "maintainer": "", "maintainer_email": "", "name": "cs.progress", "package_url": "https://pypi.org/project/cs.progress/", "platform": "", "project_url": "https://pypi.org/project/cs.progress/", "project_urls": { "Homepage": "https://bitbucket.org/cameron_simpson/css/commits/all" }, "release_url": "https://pypi.org/project/cs.progress/20190812/", "requires_dist": null, "requires_python": "", "summary": "A progress tracker with methods for throughput, ETA and update notification", "version": "20190812" }, "last_serial": 5663543, "releases": { "20180703": [ { "comment_text": "", "digests": { "md5": "db6761949e841eab36de68be92616871", "sha256": "f72d2bcd8cdf40f636b91a1dddeafc88a5cff9c980bf95d5341d5a3999d641c0" }, "downloads": -1, "filename": "cs.progress-20180703.tar.gz", "has_sig": false, "md5_digest": "db6761949e841eab36de68be92616871", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3624, "upload_time": "2018-07-02T23:58:51", "url": "https://files.pythonhosted.org/packages/88/5e/a2cd2cabf0f009897a2684f1276f2f98563a2036dc5b1c56d89ebc6e5553/cs.progress-20180703.tar.gz" } ], "20180703.1": [ { "comment_text": "", "digests": { "md5": "1b0dd0e20efd057e703703a100df5df0", "sha256": "b2f27cb6e3e95dab56dc7a661aa3461e5af0839b094a323ed9abb65cc851d0e9" }, "downloads": -1, "filename": "cs.progress-20180703.1.tar.gz", "has_sig": false, "md5_digest": "1b0dd0e20efd057e703703a100df5df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3801, "upload_time": "2018-07-03T02:09:38", "url": "https://files.pythonhosted.org/packages/47/b6/c121f08c3658ca7110449c404fde0f50215f1fdc0da88989dae2885e8281/cs.progress-20180703.1.tar.gz" } ], "20180703.2": [ { "comment_text": "", "digests": { "md5": "5426766fc1bd90695c8ceb22d004c7cb", "sha256": "3ff59951146b0ad70f534b7967bba296694b11db7be632b42384b24b1f34c3e7" }, "downloads": -1, "filename": "cs.progress-20180703.2.tar.gz", "has_sig": false, "md5_digest": "5426766fc1bd90695c8ceb22d004c7cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3863, "upload_time": "2018-07-03T09:16:10", "url": "https://files.pythonhosted.org/packages/98/c6/ecb2d58f4fe51aa3475f9ab3dc62bf664490a2c07483d00ddb9e1078b490/cs.progress-20180703.2.tar.gz" } ], "20190220": [ { "comment_text": "", "digests": { "md5": "a06942e295e39b5557dd0c71efa50766", "sha256": "ec91497cd32c8804f59d6f4f51f5bb1dd57821fd8d4e859f91a24ad3056dabe5" }, "downloads": -1, "filename": "cs.progress-20190220.tar.gz", "has_sig": false, "md5_digest": "a06942e295e39b5557dd0c71efa50766", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5157, "upload_time": "2019-02-20T09:25:09", "url": "https://files.pythonhosted.org/packages/dc/36/504b8c5fb4d46e2511ef0819146dd2da0542e6696c190fe3fd362f679565/cs.progress-20190220.tar.gz" } ], "20190812": [ { "comment_text": "", "digests": { "md5": "2f2fa8634b00122a1d48aef6ba2ba140", "sha256": "7a4f762a99f8311d3ef98b64d042d42ebd9b341fb691140f72331736f810ae35" }, "downloads": -1, "filename": "cs.progress-20190812.tar.gz", "has_sig": false, "md5_digest": "2f2fa8634b00122a1d48aef6ba2ba140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6960, "upload_time": "2019-08-12T00:07:13", "url": "https://files.pythonhosted.org/packages/9c/7f/ac13cf9f3d60b709b640abcda6d6d96c5908c2c30e26e7637ca5d7578809/cs.progress-20190812.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2f2fa8634b00122a1d48aef6ba2ba140", "sha256": "7a4f762a99f8311d3ef98b64d042d42ebd9b341fb691140f72331736f810ae35" }, "downloads": -1, "filename": "cs.progress-20190812.tar.gz", "has_sig": false, "md5_digest": "2f2fa8634b00122a1d48aef6ba2ba140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6960, "upload_time": "2019-08-12T00:07:13", "url": "https://files.pythonhosted.org/packages/9c/7f/ac13cf9f3d60b709b640abcda6d6d96c5908c2c30e26e7637ca5d7578809/cs.progress-20190812.tar.gz" } ] }