def header(title):
    print()
    title = fx.bold(title)
    title = fx.underline(title)
    title = fg.cyan(title)
    write(title)
    print()
Exemple #2
0
def do_go(args):
    debug(f"Trying to go: {args}")
    compass = ["north", "south", "east", "west"]
    old_place = get_place()
    if not args:
        error(fg.cyan(f"Which way does your heart guide you?"))
        return
    direction = args[0].lower()
    if direction not in compass:
        error(f"Sorry, you're wrong. I have no idea how to go {direction} from here.")
        return
    new_name = old_place.get(direction)
    if not new_name:
        error(fx.frame("Sorry, you can't get there from here"))
        return
    new_place = get_place(new_name)
    PLAYER["place"] = new_name
    wrap(fx.bold(new_place["name"])) 
    wrap(fx.encircle(new_place["description"]))
Exemple #3
0
def header(title):
    print()
    header_title = fx.bold(title)
    write(header_title)
    print()
Exemple #4
0
def header(title):
    print()
    real_title = fg.lightblack(fx.bold(title))
    write(real_title)
    print()
Exemple #5
0
def main(args):

    status = os.EX_OK
    mode = args.character_mode
    try:
        # Get theme - defaults
        bin_clr = dec_clr = hex_clr = hdr_style = SilentString()
        evn_bg_clr = odd_bg_clr = ''

        theme = get_theme()
        if theme == 'dark':
            bin_clr = fg.darkred
            dec_clr = fg.darkorange3
            hex_clr = fg.purple
            hdr_style = bg.black + fx.dim

            evn_bg_clr = str(bg.i235)
            odd_bg_clr = str(bg.i233)

        elif theme == 'light':
            bin_clr = fg.blue
            dec_clr = fg.green
            hex_clr = fg.cyan
            hdr_style = bg.i255 + fx.dim

            evn_bg_clr = str(bg.i253)
            odd_bg_clr = str(bg.i255)

        if args.print_headers:
            ASCII = 'ASCII'
            if args.make_links:
                ASCII = make_hyperlink(_wp_base_url + 'ASCII', ASCII)
            print(fx.bold(
                    f'                        Four-Column Grouped {ASCII} Table'
                ), '\n'
            )
            bc = bin_clr('Bin')
            dc = dec_clr('Dc')
            dec = dec_clr('Dec')
            hx = hex_clr('Hx')
            print(hdr_style(
                f'  {bc}    {dc} {hx}  {bin_clr("00")} Ctrl     '
                f'{dc} {hx}  {bin_clr("01")} Punct.   '
                f'{dc} {hx}  {bin_clr("10")} Upper   '
                f'{dec} {hx} {bin_clr("11")} Lower'
            ))

        # print each row
        for row in index_table:
            columns = []
            row_num = row[0]
            if (row_num % 2) == 0:  # even
                columns.append(evn_bg_clr)
            else:  # odd
                columns.append(odd_bg_clr)

            for i in row:
                binary = ' '
                if mode is UNICODE_MODE:
                    padding = 2
                else:
                    padding = 3

                if i < 32:  # control chars + space
                    sinfo = ctrl_symbols[i]
                    binary = bin_clr(sinfo[0])
                    symbol = f'{sinfo[mode]:<{padding}}'
                    if mode is ASCII_MODE:  # add italic
                        symbol = fx.italic + symbol + defx.italic
                    if args.make_links:
                        symbol = make_hyperlink(_wp_base_url + sinfo[3], symbol)
                    if mode is UNICODE_MODE:  # short chars, add margin
                        symbol += ' '

                elif i == 32:  # space is unique
                    padding = 2  # always
                    sinfo = ctrl_symbols[i]
                    symbol = f'{sinfo[mode]:<{padding}}'
                    if args.make_links:
                        symbol = make_hyperlink(_wp_base_url + sinfo[3], symbol)
                        symbol += ' '

                elif i == 127:  # delete is unique
                    symbol = ctrl_symbols[-1][mode]
                    symbol = f'{symbol:<{padding}}'
                    if mode is ASCII_MODE:  # add italic
                        symbol = fx.italic + symbol + defx.italic
                    if args.make_links:
                        symbol = make_hyperlink(_wp_base_url + ctrl_symbols[-1][2],
                                                symbol)
                else:  # other groups
                    symbol =  f'{i:<3c}'

                record = (
                    f'  {binary} {dec_clr}{i:>3} '
                    f'{hex_clr}{i:02x}{fg.default}  {symbol:<3}    '
                )
                columns.append(record)

            columns.append(str(bg.default))
            print(''.join(columns), end='')
            print(bg.default)

        if args.print_headers:
            print()

    except Exception as err:
        print(err)
        status = os.EX_SOFTWARE

    return status
Exemple #6
0
def print_ascii_chart(
    link=False,
    headers=True,
    unicode_symbols=False,
):
    # see module doc string
    mode = UNICODE_MODE if unicode_symbols else ASCII_MODE  # TODO
    try:
        # Get theme - defaults
        bin_clr = dec_clr = hex_clr = hdr_style = SilentString()
        evn_bg_clr = odd_bg_clr = ''

        theme = get_theme()
        if theme == 'dark':
            bin_clr = fg.darkred
            dec_clr = fg.darkorange3
            hex_clr = fg.purple
            evn_bg_clr = str(bg.i233)
            odd_bg_clr = str(bg.i235)
            hdr_style = bg.i235 + fx.italic

        elif theme == 'light':
            bin_clr = fg.blue
            dec_clr = fg.green
            hex_clr = fg.cyan
            evn_bg_clr = str(bg.i255)
            odd_bg_clr = str(bg.i253)
            hdr_style = bg.i253 + fx.italic

        if headers:
            ASCII = 'ASCII'
            if link:
                ASCII = make_hyperlink(_wp_base_url + 'ASCII', ASCII)
            print('\n                       ',
                  fx.bold(f'Four-Column Grouped {ASCII} Table'), '\n')
            Bin = bin_clr('Bin')
            Dc = dec_clr('Dc')
            Dec = dec_clr('Dec')
            Hx = hex_clr('Hx')
            d, n = fx.dim, defx.dim
            print(
                hdr_style(
                    f' {Bin}    {Dc} {Hx}  {bin_clr("00")} {d}Ctrl{n}     '
                    f'{Dc} {Hx}  {bin_clr("01")} {d}Punct{n}    '
                    f'{Dc} {Hx}  {bin_clr("10")} {d}Upper{n}   '
                    f'{Dec} {Hx} {bin_clr("11")} {d}Lower{n} '))

        # print each row
        for row in index_table:
            columns = []
            row_num = row[0]
            if (row_num % 2) == 0:  # even
                columns.append(evn_bg_clr)
            else:  # odd
                columns.append(odd_bg_clr)

            for i in row:
                binary = ' '
                if mode is UNICODE_MODE:
                    padding = 2
                else:
                    padding = 3

                if i < 32:  # control chars + space
                    sinfo = ctrl_symbols[i]
                    binary = bin_clr(sinfo[0])
                    symbol = f'{sinfo[mode]:<{padding}}'
                    if mode is ASCII_MODE:  # add italic
                        symbol = fx.italic + symbol + defx.italic
                    if link:
                        symbol = make_hyperlink(_wp_base_url + sinfo[3],
                                                symbol)
                    if mode is UNICODE_MODE:  # short chars, add margin
                        symbol += ' '

                elif i == 32:  # space is unique
                    padding = 2  # always
                    sinfo = ctrl_symbols[i]
                    symbol = f'{sinfo[mode]:<{padding}}'
                    if link:
                        symbol = make_hyperlink(_wp_base_url + sinfo[3],
                                                symbol)
                        symbol += ' '

                elif i == 127:  # delete is unique
                    symbol = ctrl_symbols[-1][mode]
                    symbol = f'{symbol:<{padding}}'
                    if mode is ASCII_MODE:  # add italic
                        symbol = fx.italic + symbol + defx.italic
                    if link:
                        symbol = make_hyperlink(
                            _wp_base_url + ctrl_symbols[-1][2], symbol)
                else:  # other groups
                    symbol = f'{i:<3c}'

                record = (f' {binary} {dec_clr}{i:>3} '
                          f'{hex_clr}{i:02x}{fg.default}  {symbol:<3}     ')
                columns.append(record)

            columns.append(str(bg.default))  # extra padding at end
            print(''.join(columns), end='')
            print(bg.default)

    except Exception as err:
        print(err)

    return ' ' if headers else ''  # quiets console-cli, empty avoids extra nl