def __str__(self):
        """Get the download as a string.

        Example: foo.pdf [699.2kB/s|0.34|16%|4.253/25.124]
        """
        speed = utils.format_size(self.stats.speed, suffix='B/s')
        down = utils.format_size(self.stats.done, suffix='B')
        perc = self.stats.percentage()
        remaining = self.stats.remaining_time()
        if self.error_msg is None:
            errmsg = ""
        else:
            errmsg = " - {}".format(self.error_msg)

        if all(e is None for e in [perc, remaining, self.stats.total]):
            return ('{index}: {name} [{speed:>10}|{down}]{errmsg}'.format(
                index=self.index, name=self.basename, speed=speed,
                down=down, errmsg=errmsg))

        perc = round(perc)
        if remaining is None:
            remaining = '?'
        else:
            remaining = utils.format_seconds(remaining)
        total = utils.format_size(self.stats.total, suffix='B')
        if self.done:
            return ('{index}: {name} [{perc:>2}%|{total}]{errmsg}'.format(
                index=self.index, name=self.basename, perc=perc,
                total=total, errmsg=errmsg))
        else:
            return ('{index}: {name} [{speed:>10}|{remaining:>5}|{perc:>2}%|'
                    '{down}/{total}]{errmsg}'.format(
                        index=self.index, name=self.basename, speed=speed,
                        remaining=remaining, perc=perc, down=down,
                        total=total, errmsg=errmsg))
Exemple #2
0
    def __str__(self):
        """Get the download as a string.

        Example: foo.pdf [699.2kB/s|0.34|16%|4.253/25.124]
        """
        speed = utils.format_size(self._speed, suffix='B/s')
        down = utils.format_size(self._bytes_done, suffix='B')
        perc = self._percentage()
        remaining = self._remaining_time()
        if all(e is None for e in (perc, remaining, self._bytes_total)):
            return ('{name} [{speed:>10}|{down}]'.format(
                name=self.basename, speed=speed, down=down))
        if perc is None:
            perc = '??'
        else:
            perc = round(perc)
        if remaining is None:
            remaining = '?'
        else:
            remaining = utils.format_seconds(remaining)
        total = utils.format_size(self._bytes_total, suffix='B')
        return ('{name} [{speed:>10}|{remaining:>5}|{perc:>2}%|'
                '{down}/{total}]'.format(name=self.basename, speed=speed,
                                         remaining=remaining, perc=perc,
                                         down=down, total=total))
Exemple #3
0
    def __str__(self):
        """Get the download as a string.

        Example: foo.pdf [699.2kB/s|0.34|16%|4.253/25.124]
        """
        speed = utils.format_size(self.stats.speed, suffix='B/s')
        down = utils.format_size(self.stats.done, suffix='B')
        perc = self.stats.percentage()
        remaining = self.stats.remaining_time()
        if self.error_msg is None:
            errmsg = ""
        else:
            errmsg = " - {}".format(self.error_msg)

        if all(e is None for e in [perc, remaining, self.stats.total]):
            return ('{index}: {name} [{speed:>10}|{down}]{errmsg}'.format(
                index=self.index,
                name=self.basename,
                speed=speed,
                down=down,
                errmsg=errmsg))

        perc = round(perc)
        if remaining is None:
            remaining = '?'
        else:
            remaining = utils.format_seconds(remaining)
        total = utils.format_size(self.stats.total, suffix='B')
        if self.done:
            return ('{index}: {name} [{perc:>2}%|{total}]{errmsg}'.format(
                index=self.index,
                name=self.basename,
                perc=perc,
                total=total,
                errmsg=errmsg))
        else:
            return ('{index}: {name} [{speed:>10}|{remaining:>5}|{perc:>2}%|'
                    '{down}/{total}]{errmsg}'.format(index=self.index,
                                                     name=self.basename,
                                                     speed=speed,
                                                     remaining=remaining,
                                                     perc=perc,
                                                     down=down,
                                                     total=total,
                                                     errmsg=errmsg))
 def _on_quota_requested(self, request):
     size = utils.format_size(request.requestedSize())
     shared.feature_permission(
         url=request.origin(),
         option='content.persistent_storage',
         msg='use {} of persistent storage'.format(size),
         yes_action=request.accept,
         no_action=request.reject,
         abort_on=[self._abort_questions],
         blocking=True)
Exemple #5
0
 def test_base(self, size, out):
     """Test with an alternative base."""
     assert utils.format_size(size, base=1000) == out
Exemple #6
0
 def test_suffix(self, size, out):
     """Test the suffix option."""
     assert utils.format_size(size, suffix='B') == out + 'B'
Exemple #7
0
 def test_format_size(self, size, out):
     """Test format_size with several tests."""
     assert utils.format_size(size) == out
Exemple #8
0
 def test_base(self):
     """Test with an alternative base."""
     kilo_tests = [(999, '999.00'), (1000, '1.00k'), (1010, '1.01k')]
     for size, out in kilo_tests:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size, base=1000), out)
Exemple #9
0
 def test_suffix(self):
     """Test the suffix option."""
     for size, out in self.TESTS:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size, suffix='B'),
                              out + 'B')
Exemple #10
0
 def test_format_size(self):
     """Test format_size with several tests."""
     for size, out in self.TESTS:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size), out)
Exemple #11
0
 def test_base(self):
     """Test with an alternative base."""
     kilo_tests = [(999, '999.00'), (1000, '1.00k'), (1010, '1.01k')]
     for size, out in kilo_tests:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size, base=1000), out)
Exemple #12
0
 def test_suffix(self):
     """Test the suffix option."""
     for size, out in self.TESTS:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size, suffix='B'),
                              out + 'B')
Exemple #13
0
 def test_format_size(self):
     """Test format_size with several tests."""
     for size, out in self.TESTS:
         with self.subTest(size=size):
             self.assertEqual(utils.format_size(size), out)
Exemple #14
0
 def test_base(self, size, out):
     """Test with an alternative base."""
     assert utils.format_size(size, base=1000) == out
Exemple #15
0
 def test_suffix(self, size, out):
     """Test the suffix option."""
     assert utils.format_size(size, suffix='B') == out + 'B'
Exemple #16
0
 def test_format_size(self, size, out):
     """Test format_size with several tests."""
     assert utils.format_size(size) == out