diff --git a/setup.cfg b/setup.cfg index e7b2bceb..df6c5ef8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,7 +8,7 @@ ignore = [metadata] requires-dist = - clint + tqdm requests >= 2.5.0 requests-toolbelt >= 0.5.1 pkginfo >= 1.0 diff --git a/setup.py b/setup.py index a0dbefaa..7d2cdce1 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ install_requires = [ - "clint", + "tqdm", "pkginfo >= 1.0", "requests >= 2.5.0", "requests-toolbelt >= 0.5.1", diff --git a/twine/cli.py b/twine/cli.py index 1d482905..68f568c4 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -18,7 +18,7 @@ import pkg_resources import setuptools -import clint +import tqdm import requests import requests_toolbelt import pkginfo @@ -38,7 +38,7 @@ def list_dependencies_and_versions(): ('requests', requests.__version__), ('setuptools', setuptools.__version__), ('requests-toolbelt', requests_toolbelt.__version__), - ('clint', clint.__version__), + ('tqdm', tqdm.__version__), ] diff --git a/twine/repository.py b/twine/repository.py index 43b0b3a8..90fdb903 100644 --- a/twine/repository.py +++ b/twine/repository.py @@ -13,7 +13,7 @@ # limitations under the License. from __future__ import absolute_import, unicode_literals, print_function -from clint.textui.progress import Bar as ProgressBar +from tqdm import tqdm as ProgressBar import requests from requests import adapters @@ -121,9 +121,14 @@ def _upload(self, package): (package.basefilename, fp, "application/octet-stream"), )) encoder = MultipartEncoder(data_to_send) - bar = ProgressBar(expected_size=encoder.len, filled_char='=') + bar = ProgressBar(total=encoder.len, unit='bytes', unit_scale=True, leave=False) + def update_progressbar(monitor, _cache=[0]): + total_read = monitor.bytes_read + bar.update(total_read - _cache[0]) + _cache[0] = total_read + monitor = MultipartEncoderMonitor( - encoder, lambda monitor: bar.show(monitor.bytes_read) + encoder, update_progressbar ) resp = self.session.post( @@ -132,7 +137,7 @@ def _upload(self, package): allow_redirects=False, headers={'Content-Type': monitor.content_type}, ) - bar.done() + bar.close() return resp