Пример #1
0
    def test__red_onblack_red(self):
        onblack = colored(' OnBlack ', 'on black')
        red_onblack_red = colored(' Red ' + onblack + ' Red ',
                                  'red') + ' NORMAL'
        expected = '\x1b[31m Red \x1b[40m OnBlack \x1b[49m Red \x1b[39m NORMAL'

        return red_onblack_red, expected
Пример #2
0
    def test__onblack_underline_onblack(self):
        underline = colored(' Underline ', 'ul')
        onblack_underline_onblack = colored(
            ' OnBlack ' + underline + ' OnBlack ', 'on black') + ' NORMAL'
        expected = '\x1b[40m OnBlack \x1b[4m Underline \x1b[24m OnBlack \x1b[49m NORMAL'

        return onblack_underline_onblack, expected
Пример #3
0
    def test__onblack_brightred_onblack(self):
        brightred = colored(' BrightRed ', 'bright red')
        onblack_brightred_onblack = colored(
            ' OnBlack ' + brightred + ' OnBlack ', 'on black') + ' NORMAL'
        expected = '\x1b[40m OnBlack \x1b[91m BrightRed \x1b[39m OnBlack \x1b[49m NORMAL'

        return onblack_brightred_onblack, expected
Пример #4
0
    def test__underline_onblack_underline(self):
        onblack = colored(' OnBlack ', 'on black')
        underline_onblack_underline = colored(
            ' Underline ' + onblack + ' Underline ', 'underline') + ' NORMAL'
        expected = '\x1b[4m Underline \x1b[40m OnBlack \x1b[49m Underline \x1b[24m NORMAL'

        return underline_onblack_underline, expected
 def test__bold__red_dark__bold(self):
     # compare: test__different_reset_codes.py::Test_1_inside_color::test__bold_red_bold
     inside = colored(' RedDark ', 'red', 'dark')
     assert inside == '\x1b[31;2m RedDark \x1b[39;22m'
     actual = colored(f'Bold {inside} Bold', 'bold') + ' NORMAL'
     # 22 resets dark; 1 reopens bold; 39 resets red
     expected = '\x1b[1mBold \x1b[31;2m RedDark \x1b[39;22;1m Bold\x1b[22m NORMAL'
     return actual, expected
 def test__dark_bold_dark(self):
     bold = colored(' Bold ', 'bold')
     assert bold == '\x1b[1m Bold \x1b[22m'
     dark_bold_dark = colored(' Dark ' + bold + ' Dark ',
                              'dark') + ' NORMAL'
     expected = f'\x1b[2m Dark \x1b[1m Bold \x1b[22;2m Dark \x1b[22m NORMAL'
     # expected = re.compile(expected_str)
     return dark_bold_dark, expected
    def test__bold_dark__dark_red__bold_dark(self):
        darkred = colored(' DarkRed ', 'dark', 'red')
        assert darkred == '\x1b[2;31m DarkRed \x1b[22;39m'
        bold_dark__dark_red__bold_dark = colored(
            ' BoldDark ' + darkred + ' BoldDark ', 'bold', 'dark') + ' NORMAL'

        expected = f'\x1b[1;2m BoldDark \x1b[31m DarkRed \x1b[39m BoldDark \x1b[22m NORMAL'
        return bold_dark__dark_red__bold_dark, expected
 def test__bold__red_bold__bold(self):
     inside = colored(' Inside ', 'red', 'bold')
     assert inside == '\x1b[31;1m Inside \x1b[39;22m'
     actual = colored(f' Outside {inside} Outside ', 'bold') + ' NORMAL'
     # knows not to open bold inside because already open outside
     expected = '\x1b[1m Outside \x1b[31m Inside \x1b[39m Outside \x1b[22m NORMAL'
     assert actual != '\x1b[1m Outside \x1b[31;1m Inside \x1b[39;22;1m Outside \x1b[22m NORMAL'
     return actual, expected
Пример #9
0
    def test__brightred_onblack_brightred(self):
        onblack = colored(' OnBlack ', 'on black')
        assert onblack == '\x1b[40m OnBlack \x1b[49m'
        brightred_onblack_brightred = colored(
            ' BrightRed ' + onblack + ' BrightRed ', 'bright red') + ' NORMAL'
        expected = "\x1b[91m BrightRed \x1b[40m OnBlack \x1b[49m BrightRed \x1b[39m NORMAL"

        return brightred_onblack_brightred, expected
    def test__dark_bold__brightwhite__dark_bold(self):
        brightwhite = colored(' BrightWhite ', 'bright white')
        dark_bold__brightwhite__dark_bold = colored(
            ' DarkBold ' + brightwhite + ' DarkBold ', 'bold',
            'dark') + ' NORMAL'

        expected = f'\x1b[1;2m DarkBold \x1b[97m BrightWhite \x1b[39m DarkBold \x1b[22m NORMAL'
        return dark_bold__brightwhite__dark_bold, expected
Пример #11
0
    def test__underlineonblack__red__underlineonblack(self):
        red = colored(' Red ', 'red')
        underlineonblack__red__underlineonblack = colored(
            ' UnderlineOnBlack ' + red + ' UnderlineOnBlack ', 'ul',
            'on black') + ' NORMAL'
        expected = f'\x1b[4;40m UnderlineOnBlack \x1b[31m Red \x1b[39m UnderlineOnBlack \x1b[24;49m NORMAL'

        return underlineonblack__red__underlineonblack, expected
Пример #12
0
    def test__underlinegreen__onblack__underlinegreen(self):
        onblack = colored(' OnBlack ', 'on black')
        underlinegreen__onblack__underlinegreen = colored(
            ' UnderlineGreen ' + onblack + ' UnderlineGreen ', 'ul',
            'green') + ' NORMAL'
        expected = f'\x1b[4;32m UnderlineGreen \x1b[40m OnBlack \x1b[49m UnderlineGreen \x1b[24;39m NORMAL'

        return underlinegreen__onblack__underlinegreen, expected
    def test__bold_dark__red_dark__bold_dark(self):
        reddark = colored(' RedDark ', 'red', 'dark')
        assert reddark == '\x1b[31;2m RedDark \x1b[39;22m'
        bold_dark__red_dark__bold_dark = colored(
            ' BoldDark ' + reddark + ' BoldDark ', 'bold', 'dark') + ' NORMAL'

        expected = f'\x1b[1;2m BoldDark \x1b[31m RedDark \x1b[39m BoldDark \x1b[22m NORMAL'
        return bold_dark__red_dark__bold_dark, expected
Пример #14
0
    def test__redonblack__bold__redonblack(self):
        bold = colored(' Bold ', 'bold')
        redonblack__bold__redonblack = colored(
            ' RedOnBlack ' + bold + ' RedOnBlack ', 'red',
            'on black') + ' NORMAL'
        expected = f'\x1b[31;40m RedOnBlack \x1b[1m Bold \x1b[22m RedOnBlack \x1b[39;49m NORMAL'

        return redonblack__bold__redonblack, expected
Пример #15
0
    def test__onblack__brightred_bold__onblack(self):
        brightredbold = colored(' BrightRedBold ', 'bright red', 'bold')
        assert brightredbold == '\x1b[91;1m BrightRedBold \x1b[39;22m'
        onblack_brightredbold_onblack = colored(
            ' OnBlack ' + brightredbold + ' OnBlack ', 'on black') + ' NORMAL'
        expected = f'\x1b[40m OnBlack \x1b[91;1m BrightRedBold \x1b[39;22m OnBlack \x1b[49m NORMAL'

        return onblack_brightredbold_onblack, expected
Пример #16
0
    def test__bold_red_bold(self):
        """I    R       /FG
           3    31  →   39"""
        red = colored(' Red ', 'red')
        assert red == '\x1b[31m Red \x1b[39m'
        bold_red_bold = colored(' Bold ' + red + ' Bold ', 'bold') + ' NORMAL'
        expected = '\x1b[1m Bold \x1b[31m Red \x1b[39m Bold \x1b[22m NORMAL'

        return bold_red_bold, expected
Пример #17
0
    def test__italic_bold_italic(self):
        """I    B       /F/B
           3    1   →   22"""
        bold = colored(' Bold ', 'bold')
        italic_bold_italic = colored(' Italic ' + bold + ' Italic ',
                                     'italic') + ' NORMAL'
        expected = '\x1b[3m Italic \x1b[1m Bold \x1b[22m Italic \x1b[23m NORMAL'

        return italic_bold_italic, expected
    def test__bold_green__red_dark__bold_green(self):
        reddark = colored(' RedDark ', 'red', 'dark')
        assert reddark == '\x1b[31;2m RedDark \x1b[39;22m'
        bold_green__red_dark__bold_green = colored(
            ' BoldGreen ' + reddark + ' BoldGreen ', 'bold',
            'green') + ' NORMAL'

        expected = f'\x1b[1;32m BoldGreen \x1b[31;2m RedDark \x1b[22;32;1m BoldGreen \x1b[22;39m NORMAL'
        return bold_green__red_dark__bold_green, expected
    def test__onblack_ongreen_onblack(self):
        ongreen = colored(' OnGreen ', 'on green')
        assert ongreen == '\x1b[42m OnGreen \x1b[49m'
        onblack_ongreen_onblack = colored(' OnBlack ' + ongreen + ' OnBlack ',
                                          'on black') + ' NORMAL'
        # doesn't reset OnGreen, just re-opens OnBlack (because incompatible)

        expected = '\x1b[40m OnBlack \x1b[42m OnGreen \x1b[40m OnBlack \x1b[49m NORMAL'
        return onblack_ongreen_onblack, expected
Пример #20
0
    def test__red_dark_red(self):
        """R    F       /F/B
           31   2   →   22"""
        dark = colored(' Dark ', 'dark')
        assert dark == '\x1b[2m Dark \x1b[22m'
        red_dark_red = colored(' Red ' + dark + ' Red ', 'red') + ' NORMAL'
        expected = '\x1b[31m Red \x1b[2m Dark \x1b[22m Red \x1b[39m NORMAL'

        # smart reset dark in the middle, and does not re-open red
        return red_dark_red, expected
 def test__bold_dark_bold(self):
     """B    F       /F/B B
        1    2   →   22;1"""
     dark = colored(' Dark ', 'dark')
     assert dark == '\x1b[2m Dark \x1b[22m'
     bold_dark_bold = colored(' Bold ' + dark + ' Bold ',
                              'bold') + ' NORMAL'
     expected = '\x1b[1m Bold \x1b[2m Dark \x1b[22;1m Bold \x1b[22m NORMAL'
     # expected = re.compile(expected_str)
     return bold_dark_bold, expected
    def test__red_green_red(self):
        """R    G       R
           31   32  →   31"""

        green = colored(' Green ', 'green')
        assert green == '\x1b[32m Green \x1b[39m'
        red_green_red = colored(' Red ' + green + ' Red ', 'red') + ' NORMAL'
        # doesn't reset green, just re-opens red (because incompatible)
        expected = '\x1b[31m Red \x1b[32m Green \x1b[31m Red \x1b[39m NORMAL'
        return red_green_red, expected
Пример #23
0
    def test__italic_brightgreen_italic(self):
        """I    SG      /FG
           3    92  →   39"""
        brightgreen = colored(' BrightGreen ', 'bright green')
        assert brightgreen == '\x1b[92m BrightGreen \x1b[39m'
        italic_brightgreen_italic = colored(
            ' Italic ' + brightgreen + ' Italic ', 'italic') + ' NORMAL'
        expected = '\x1b[3m Italic \x1b[92m BrightGreen \x1b[39m Italic \x1b[23m NORMAL'

        return italic_brightgreen_italic, expected
Пример #24
0
    def test__brightred__onblack_bold__brightred(self):
        onblackbold = colored(' OnBlackBold ', 'on black', 'bold')
        assert onblackbold == '\x1b[40;1m OnBlackBold \x1b[49;22m'
        brightred_onblackbold_brightred = colored(
            ' BrightRed ' + onblackbold + ' BrightRed ',
            'bright red') + ' NORMAL'

        expected = f"\x1b[91m BrightRed \x1b[40;1m OnBlackBold \x1b[49;22m BrightRed \x1b[39m NORMAL"

        return brightred_onblackbold_brightred, expected
Пример #25
0
    def test__brightwhite_red_brightwhite(self):
        """S    R       S
           97   31  →   97"""
        red = colored(' Red ', 'red')
        assert red == '\x1b[31m Red \x1b[39m'
        brightwhite_red_brightwhite = colored(' Bright ' + red + ' Bright ',
                                              'bright white') + ' NORMAL'
        expected = '\x1b[97m Bright \x1b[31m Red \x1b[97m Bright \x1b[39m NORMAL'

        return brightwhite_red_brightwhite, expected
Пример #26
0
    def test__brightwhite_dark_brightwhite(self):
        """S    F       /F
           97   2   →   22"""
        dark = colored(' Dark ', 'dark')
        assert dark == '\x1b[2m Dark \x1b[22m'
        brightwhite_dark_brightwhite = colored(' Bright ' + dark + ' Bright ',
                                               'bright white') + ' NORMAL'
        expected = '\x1b[97m Bright \x1b[2m Dark \x1b[22m Bright \x1b[39m NORMAL'
        # smart reset dark, no re-open bright

        return brightwhite_dark_brightwhite, expected
Пример #27
0
    def test__bold_italic_bold(self):
        """B    I       /I
           1    3   →   23"""
        italic = colored(' Italic ', 'italic')
        assert italic == '\x1b[3m Italic \x1b[23m'
        bold_italic_bold = colored(' Bold ' + italic + ' Bold ',
                                   'bold') + ' NORMAL'
        expected = '\x1b[1m Bold \x1b[3m Italic \x1b[23m Bold \x1b[22m NORMAL'

        # smart reset italic (23), no reopen bold
        return bold_italic_bold, expected
    def test__bold_brightwhite__dark__bold_brightwhite(self):
        """S+B  F       /F/B B
           1;97 2   →   22;1"""
        dark = colored(' Dark ', 'dark')
        bold_brightwhite__dark__bold_brightwhite = colored(
            ' BoldBright ' + dark + ' BoldBright ', 'bold',
            'bright white') + ' NORMAL'

        # merge dark reset with bold re-open (22;1)
        # recognize bold is lost by 22, so need to re-open it
        # recognize bright is not lost and is restored automatically by 22 (resetting dark)
        # TODO: why is bright restored when resetting dark?
        # In IPython:
        # # print('\x1b[97m Bright (#EEEEEC) \x1b[2m Bright and Dark (#9F9F9D) \x1b[22m Bright (#EEEEEC) \x1b[0m Normal (#AAAAAA) \x1b[2m Dark (#717171) \x1b[0m')
        expected = f'\x1b[1;97m BoldBright \x1b[2m Dark \x1b[22;1m BoldBright \x1b[22;39m NORMAL'
        return bold_brightwhite__dark__bold_brightwhite, expected
Пример #29
0
def print_pkgs(pkgs):
    table = BeautifulTable()
    table.columns.header = ['Name', 'Type', 'Installed']

    for pkg in pkgs:
        table.rows.append([pkg.name, 'E', colored('Yes', 'green') if pkg.installed else colored('No', 'red')])
        if show_deps and len(pkg.req_deps + pkg.rec_deps + pkg.opt_deps) > 0:
            table.rows.append([colored(f'{pkg.name} dependencies', 'bright black'), '', ''])
            for item in (pkg.req_deps + pkg.rec_deps + pkg.opt_deps):
                name = item
                table.rows.append([colored(name, 'bright black'), colored('D', 'bright black'), colored('Yes', 'green') if is_installed(item) else colored('No', 'red')])

    # Table styling
    table.columns.alignment = BeautifulTable.ALIGN_LEFT
    table.set_style(BeautifulTable.STYLE_NONE)
    table.columns.header.separator = '='
    table.columns.padding = 2

    print('')
    print(table)
Пример #30
0
def is_built_with(pkg, deps):
    if not is_installed(pkg.name):
        print(colored(f'Warning: Package "{pkg.name}" is not installed', 'yellow'))
        sys.exit(1)
    else:
        log = get_log()
        found = False
        index = None

        for i, n in enumerate(reversed(log)):
            if n == pkg.name:
                print(f'i: {i}, n: {n}')
                index = len(log) - 1 - i
                break

        log = log[:index]

        for dep in deps:
            if dep.entry in log:
                print(colored(f'\nPackage "{pkg}" is built with "{dep}"', 'green'))
            else:
                print(colored(f'\nPackage "{pkg}" is not built with "{dep}"', 'red'))