Exemple #1
0
def main():
    bar = pb.ProgressBar()
    for i in range(95):
        bar.increase(1)
        random_secs = (random.random()) / 10
        time.sleep(random_secs)
    bar.set_progress(100)
Exemple #2
0
def main():
    green_square = '\u001b[32m█\u001b[0m'
    theme = pb.Theme(green_square)
    bar = pb.ProgressBar(theme=theme)
    for i in range(90):
        bar.increase(1)
        random_secs = (random.random()) / 10
        time.sleep(random_secs)
    bar.set_progress(100)
Exemple #3
0
 def test_progressbar_inc2(self):
     outputs = [
         '\[ {40}\] 0/10', '\b{47}\[#{8} {32}\] 2/10',
         '\b{47}\[#{16} {24}\] 4/10', '\b{47}\[#{24} {16}\] 6/10',
         '\b{47}\[#{32} {8}\] 8/10', '\b{47}\[#{40}\] 10/10'
     ]
     self.p = pyprogress.ProgressBar(10)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     for x in range(1, 6):
         self.p.inc(2)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
Exemple #4
0
 def test_progressbar_expandpastlimitwithname(self):
     outputs = [
         'ProgressBar \[ {40}\] 0/10', '\b{47}\[#{8} {32}\] 2/10',
         '\b{47}\[#{16} {24}\] 4/10', '\b{47}\[#{24} {16}\] 6/10',
         '\b{47}\[#{32} {8}\] 8/10', '\b{47}\[#{40}\] 10/10',
         '\b{48}\[#{40}\] 12/10', '\b{48}\[#{40}\] 14/10',
         '\b{48}\[#{40}\] 16/10', '\b{48}\[#{40}\] 18/10',
         '\b{48}\[#{40}\] 20/10'
     ]
     self.p = pyprogress.ProgressBar(10, name="ProgressBar")
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     for x in range(1, 11):
         self.p.inc(2)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
Exemple #5
0
 def test_progressbar_changeprogresschar(self):
     outputs = [
         '\[ {40}\] 0\/10', '\b{47}\[-{4} {36}\] 1\/10',
         '\b{47}\[-{8} {32}\] 2\/10', '\b{47}\[-{12} {28}\] 3\/10',
         '\b{47}\[-{16} {24}\] 4\/10', '\b{47}\[-{20} {20}\] 5\/10',
         '\b{47}\[-{24} {16}\] 6\/10', '\b{47}\[-{28} {12}\] 7\/10',
         '\b{47}\[-{32} {8}\] 8\/10', '\b{47}\[-{36} {4}\] 9\/10',
         '\b{47}\[-{40}\] 10\/10'
     ]
     self.p = pyprogress.ProgressBar(10, progresschar='-')
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     for x in range(1, 11):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
Exemple #6
0
    def test_progressbar_default(self):
        outputs = [
            '\[ {40}\] 0/10', '[\b]{47}\[#{4} {36}\] 1/10',
            '[\b]{47}\[#{8} {32}\] 2/10', '[\b]{47}\[#{12} {28}\] 3/10',
            '[\b]{47}\[#{16} {24}\] 4/10', '[\b]{47}\[#{20} {20}\] 5/10',
            '[\b]{47}\[#{24} {16}\] 6/10', '[\b]{47}\[#{28} {12}\] 7/10',
            '[\b]{47}\[#{32} {8}\] 8/10', '[\b]{47}\[#{36} {4}\] 9/10',
            '[\b]{47}\[#{40}\] 10/10'
        ]

        with pyprogress.ProgressBar(10) as p:
            assert re.match(outputs[0], self.stdout.getvalue().strip())
            self.stdout.truncate(0)

            for x in range(1, 11):
                p.inc()
                assert re.match(outputs[x],
                                self.stdout.getvalue().strip('\x00').strip())
                self.stdout.truncate(0)
Exemple #7
0
 def test_progressbar_coloredips(self):
     outputs = [
         '0:00:00\.[0-9]{6} \[ {40}\] 0\/5 \x1b\[30m0\x1b\[0m\/s',
         '[\b]{65}0:00:01\.[0-9]{6} \[#{8} {32}\] 1\/5 \x1b\[92m[0-9.]+\x1b\[0m\/s',
         '[\b]{69}0:00:02\.[0-9]{6} \[#{16} {24}\] 2\/5 \x1b\[92m[0-9.]+\x1b\[0m\/s',
         '[\b]{69}0:00:03\.[0-9]{6} \[#{24} {16}\] 3\/5 \x1b\[92m[0-9.]+\x1b\[0m\/s',
         '[\b]{69}0:00:04\.[0-9]{6} \[#{32} {8}\] 4\/5 \x1b\[92m[0-9.]+\x1b\[0m\/s',
         '[\b]{69}0:00:05\.[0-9]{6} \[#{40}\] 5\/5 \x1b\[92m[0-9.]+\x1b\[0m\/s'
     ]
     self.p = pyprogress.ProgressBar(5, colored=True, timecount=True)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     sleep(1)
     for x in range(1, 6):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
         sleep(1)
Exemple #8
0
 def test_progressbar_completionprediction(self):
     outputs = [
         '\[ {40}\] 0\/5 0\/s',
         '[\b]{51}4\.[0-9]{3} \[#{8} {32}\] 1\/5 [0-9.]+\/s',
         '[\b]{60}3\.[0-9]{3} \[#{16} {24}\] 2\/5 [0-9.]+\/s',  # \b length increases as items per second displays 1.000 instead of 0 because of zero division error and completionprediction shows
         '[\b]{60}2\.[0-9]{3} \[#{24} {16}\] 3\/5 [0-9.]+\/s',
         '[\b]{60}1\.[0-9]{3} \[#{32} {8}\] 4\/5 [0-9.]+\/s',
         '[\b]{60}0\.[0-9]{3} \[#{40}\] 5\/5 [0-9.]+\/s'
     ]
     self.p = pyprogress.ProgressBar(5, completionprediction=True)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     sleep(1)
     for x in range(1, 6):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
         sleep(1)
Exemple #9
0
 def test_progressbar_withruntime(self):
     outputs = [
         '0:00:00\.[0-9]{6} \[ {40}\] 0\/5 [0-9.]+\/s',
         '[\b]{65}0:00:01\.[0-9]{6} \[#{8} {32}\] 1\/5 [0-9.]+\/s',
         '[\b]{69}0:00:02\.[0-9]{6} \[#{16} {24}\] 2\/5 [0-9.]+\/s',  # \b length increases as items per second displays 1.000 instead of 0 because of zero division error
         '[\b]{69}0:00:03\.[0-9]{6} \[#{24} {16}\] 3\/5 [0-9.]+\/s',
         '[\b]{69}0:00:04\.[0-9]{6} \[#{32} {8}\] 4\/5 [0-9.]+\/s',
         '[\b]{69}0:00:05\.[0-9]{6} \[#{40}\] 5\/5 [0-9.]+\/s'
     ]
     self.p = pyprogress.ProgressBar(5, timecount=True)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     sleep(1)
     for x in range(1, 6):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
         sleep(1)
Exemple #10
0
 def test_progressbar_changewidth(self):
     outputs = [
         '\[ {80}\] 0\/8',
         '\b{86}\[#{10} {70}\] 1\/8',
         '\b{86}\[#{20} {60}\] 2\/8',
         '\b{86}\[#{30} {50}\] 3\/8',
         '\b{86}\[#{40} {40}\] 4\/8',
         '\b{86}\[#{50} {30}\] 5\/8',
         '\b{86}\[#{60} {20}\] 6\/8',
         '\b{86}\[#{70} {10}\] 7\/8',
         '\b{86}\[#{80}\] 8\/8',
     ]
     self.p = pyprogress.ProgressBar(8, width=80)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     for x in range(1, 9):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
Exemple #11
0
 def test_progressbar_everything(self):
     outputs = [
         'ProgressBar 0:00:00\.[0-9]{6}  \[ {100}\] 0\/20 \x1b\[30m0\x1b\[0m\/s',
         '[\b]{127}0:00:00\.[0-9]{6} [0-9.]{5} \[#{5} {95}\] 1\/20 \x1b\[30m0\x1b\[0m\/s',
         '[\b]{132}0:00:01\.[0-9]{6} [0-9.]{5} \[#{10} {90}\] 2\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:01\.[0-9]{6} [0-9.]{5} \[#{15} {85}\] 3\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:02\.[0-9]{6} [0-9.]{5} \[#{20} {80}\] 4\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:02\.[0-9]{6} [0-9.]{5} \[#{25} {75}\] 5\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:03\.[0-9]{6} [0-9.]{5} \[#{30} {70}\] 6\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:03\.[0-9]{6} [0-9.]{5} \[#{35} {65}\] 7\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:04\.[0-9]{6} [0-9.]{5} \[#{40} {60}\] 8\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:04\.[0-9]{6} [0-9.]{5} \[#{45} {55}\] 9\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{136}0:00:05\.[0-9]{6} [0-9.]{5} \[#{50} {50}\] 10\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:05\.[0-9]{6} [0-9.]{5} \[#{55} {45}\] 11\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:06\.[0-9]{6} [0-9.]{5} \[#{60} {40}\] 12\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:06\.[0-9]{6} [0-9.]{5} \[#{65} {35}\] 13\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:07\.[0-9]{6} [0-9.]{5} \[#{70} {30}\] 14\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:07\.[0-9]{6} [0-9.]{5} \[#{75} {25}\] 15\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:08\.[0-9]{6} [0-9.]{5} \[#{80} {20}\] 16\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:08\.[0-9]{6} [0-9.]{5} \[#{85} {15}\] 17\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:09\.[0-9]{6} [0-9.]{5} \[#{90} {10}\] 18\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:09\.[0-9]{6} [0-9.]{5} \[#{95} {5}\] 19\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s',
         '[\b]{137}0:00:10\.[0-9]{6} [0-9.]{5} \[#{100}\] 20\/20 \x1b\[9[12]m[0-9.]+\x1b\[0m\/s'
     ]
     self.p = pyprogress.ProgressBar(20,
                                     width=100,
                                     name="ProgressBar",
                                     timecount=True,
                                     completionprediction=True,
                                     colored=True)
     self.p.begin()
     assert re.match(outputs[0], self.stdout.getvalue().strip())
     self.stdout.truncate(0)
     sleep(0.5)
     for x in range(1, 21):
         self.p.inc(1)
         assert re.match(outputs[x],
                         self.stdout.getvalue().strip('\x00').strip())
         self.stdout.truncate(0)
         sleep(0.5)