def __call__(self, value):
        completed = 0
        while (value - completed) >= self.interval:
            self.run_hook(self.interval)
            completed += self.interval
            super(RunProgress, self).__call__(100 * (completed / float(value)))
        remaining = value - completed
        if remaining != 0:
            self.run_hook(remaining)
            super(RunProgress, self).__call__(100)
Automatic uninstall-before-upgrade from URL.
dataset/ETHPy150Open ioam/holoviews/holoviews/ipython/widgets.py/RunProgress.__call__--crossover with--dataset/ETHPy150Open pypa/pip/tests/functional/test_install_upgrade.py/test_uninstall_before_upgrade_from_url