Skip to main content

Python Terminal Toolkit

Project description

Linux Usage Python pyTermTk_version Test Status pypi_version pypi_version

screenshot

python Terminal Toolkit

Text-based user interface library (TUI) Evolved from the discontinued project pyCuT and inspired by a mix of Qt5,GTK, and tkinter api definition with a touch of personal interpretation

screenshot

Features

  • Basic widgets for TUI development (Button, Label, checkbox, ...)
  • Specialized widgets to improve the usability (Windows, Frames, Tables, ...)
  • QT Like Layout system to help arrange the widgets in the terminal
  • True color support
  • [TBD] Fullsize/Halfsize UTF-8 characters

Limitations

  • The native Windows porting is not ready yet but it works with Cygwin or WSL.
  • Only the key combinations forwarded by the terminal emulator used are detected (ALT,CTRL may not be handled)

Try

screenshot

Tutorial

Be inspired by the tutorial examples

Api Definitions

Don't get bored by the Api Definitions

Install/Upgrade

pyTermTk is available on PyPI

pip3 install --upgrade pyTermTk

Quick Test/Try - no install required

Clone

clone https://github.com/ceccopierangiolieugenio/pyTermTk.git
cd pyTermTk

Run Basic (non ui) input test

python3 tests/test.input.py

Demos

# Press CTRL-C to exit
# the logs are written to "session.log"
# add "-f" option to run it in "fullscreen" :-D

# Showcase Demo
python3 demo/demo.py -f

# Paint demo
python3 demo/paint.py

# VSCode like d'n d layout demo
python3 demo/ttkode.py

# early gittk demo
python3 demo/gittk.py

# Text edit with "Pygments" highlight integrated
# it require pygments
#   pip install pygments
python3 tests/test.ui.018.TextEdit.Pygments.py REAMDE.md

Profiling

cProfile, cProfilev
python3 -m cProfile -o profiler.bin tests/test.ui.004.py

# install cprofilev:
#     pip3 install cprofilev
cprofilev -f profiler.bin
# open http://127.0.0.1:4000
pyroscope

pyroscope can be used as well for profiling

Projects using pyTermTk

  • tlogg - A fast, advanced log explorer.
  • pytest-fold - A Pytest plugin to make console output more manageable when there are multiple failed tests
  • pytest-tui - A Text User Interface (TUI) for Pytest, automatically launched after your test run is finished

Related Projects

  • Honourable mention

    • bpytop - Linux/OSX/FreeBSD resource monitor
      This was the base inspiration for my core library
  • Python

    • urwid - Console user interface library for Python
    • pyTermGUI - A simple yet powerful TUI framework for your Python (3.7+) applications
    • Textual - TUI (Text User Interface) framework for Python inspired by modern web development
    • Rich - Python library for rich text and beautiful formatting in the terminal
    • PyCuT - terminal graphic library loosely based on QT api (my previous failed attempt)
    • pyTooling.TerminalUI - A set of helpers to implement a text user interface (TUI) in a terminal.
  • Non Python

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyTermTk-0.9.0a55.tar.gz (112.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyTermTk-0.9.0a55-py3-none-any.whl (191.3 kB view details)

Uploaded Python 3

File details

Details for the file pyTermTk-0.9.0a55.tar.gz.

File metadata

  • Download URL: pyTermTk-0.9.0a55.tar.gz
  • Upload date:
  • Size: 112.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for pyTermTk-0.9.0a55.tar.gz
Algorithm Hash digest
SHA256 6ac46ffc1bd8576abf847729d84f8a1770cd877159bfb3762ff040640c917c65
MD5 e23927e58d1323b4737d3dd8d008fe68
BLAKE2b-256 21c41d4336fd82cfcf934d62c47b85eb5019d68d9bac03e8f192cbdb4b1baded

See more details on using hashes here.

File details

Details for the file pyTermTk-0.9.0a55-py3-none-any.whl.

File metadata

  • Download URL: pyTermTk-0.9.0a55-py3-none-any.whl
  • Upload date:
  • Size: 191.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for pyTermTk-0.9.0a55-py3-none-any.whl
Algorithm Hash digest
SHA256 19b6d36e68daa81dbb41bc332d887504e4503972ca8a0b0aac817b6da7ceb5ed
MD5 be5b647d16a49c73aa55dd00ef78572e
BLAKE2b-256 c42ebe55d1e2e81f31e0090c5ad4c60d60728856f8bb321893cdfefcee5e1aff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page