Skip to main content

Bext

A cross-platform Python 2/3 module for colorful, boring, text-based terminal programs.

Basically, use Bext if you want to move the cursor around the terminal window and have colorful text, like some kind of limited curses module (but it works on Windows also.)

Bext does not currently work in the new Windows Terminal. It does work in the older Command Prompt.

Note: Currently something in Colorama 0.4.6 causes Bext to fail. Please use 0.4.5 or earlier.

Installation

To install with pip, run:

pip install bext

Functions

  • fg(color)

Sets the foreground color, that is, the color of the text. The color is a string of one of the following colors: black, red, green, yellow, blue, purple, cyan, white, reset, random.

  • bg(color)

Sets the background color, that is, the color of the cell behind the text characters. You "paint" a cell with the background color by printing a space character.

  • size()

Returns a tuple of the (width, height) of the current terminal.

  • resize(columns, rows)

Resizes the terminal window to the given number of columns and rows. Returns True if the resize was a success and False if not. Note that on Ubuntu Linux, this function doesn't work if the Terminal window is maximized. On Windows, if the Command Prompt is maximized the window won't change size but the screen buffer size will be resized. This function is not very reliable.

  • clear()

Erase all the text on the screen, paint the entire terminal to the background color, and moves the cursor to (0, 0) at the top-left corner of the screen.

  • clear_line()

Erases the line where the cursor is located.

  • goto(x, y)

Move the cursor to x, y coordinates on the screen. (0, 0) is the top-left corner of the screen.

  • title(text)

Sets the title of the terminal window to text.

  • hide_cursor()

Hides the cursor.

  • show_cursor()

Shows the cursor after hiding it.

  • get_key(blocking=True)

Waits until the user presses a single key on the keyboard, then returns that key as a string. If blocking is False, the function returns immediately (returning None if no key has been pressed.)

Example

    import bext, random

    width, height = bext.size()

    try:
        while True:
            bext.fg('random')
            bext.bg('random')
            x = random.randint(0, width - 1)
            y = random.randint(0, height - 1)

            if x == width -1 and y == height - 1:
                continue # Windows has weird behavior where a character at the end of the row always moves the cursor to the next row.
            bext.goto(x, y)
            print('*', end='')
    except KeyboardInterrupt:
        pass

Contribute

If you'd like to contribute to Bext, check out https://github.com/asweigart/bext

Support

If you find this project helpful and would like to support its development, consider donating to its creator on Patreon.

Release files for Bext 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Bext 0.1.1
File Size Uploaded
Bext-0.1.1.tar.gz 10.4 kB Details

Release files / Bext-0.1.1.tar.gz

Download URL Bext-0.1.1.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
591a237dab859211ad884d374b826205b846eb81d5bd058eb12c113cbc2ed9d6
BLAKE2b-256 checksum
How to use checksums
98ebb4eb3170b1fd0ae4be1da5644bf022daa7e6a48e157c596b4a8525fccfaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page