Metadata-Version: 2.4
Name: bittty
Version: 0.1.3
Summary: a pure python tty
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: pywinpty==2.0.15; sys_platform == 'win32'
Requires-Dist: wcwidth>=0.8,<1
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: pytest-asyncio ; extra == "dev"
Requires-Dist: plotext ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: pydoc-markdown ; extra == "dev"
Requires-Dist: snakeviz ; extra == "dev"
Provides-Extra: dev

# bittty

A pure Python terminal emulator.

## Demo

Run the standalone demo:

```bash
python ./demo/terminal.py
```

Or use the textual demo to see it in a TUI:

```bash
uvx textual-tty
```

## Links

* [🏠 home](https://bitplane.net/dev/python/bittty)
* [📖 pydoc](https://bitplane.net/dev/python/bittty/pydoc)
* [🐍 pypi](https://pypi.org/project/bittty)
* [🐱 github](https://github.com/bitplane/bittty)

## License

WTFPL with one additional clause

1. Don't blame me

Do wtf you want, but don't blame me when it rips a hole in your trousers.

## Recent changes

* 🏃 more performance
* 🏗️ rewrite architecture
* 🐛 scroll region: scroll up in `vim` corrupts outside scroll region
* 🏃 squeeze another 15% performance out of it
* ✀ fix utf8 and escape code splitting across buffer boundaries
* 🪟 tests run on Windows runner
* 📉 added parser benchmarking and tui graphs
* 🐌 use regex for parsing to speed things up a tad (~2x faster)
* 📚 document half a billion DEC private modes we don't support
* 🔙 DECLM - allow `\n` to act like `\r\n` so we don't have to rely on cooked
  input on the pty when using as a library.
* 🖼️ DEC Special Graphics
* 🐌 Faster colour/style parser
* ⛓️‍💥 Split out from `textual-tty` into separate package

## Known limitations

- Resizing is not atomic with concurrent PTY output.
- There is no scrollback buffer or reflow on resize.

