Curses-like terminal wrapper, with colored strings!
Project description
|Build Status| |Documentation Status| |Curtsies Logo|
Curtsies is a Python 2.7 & 3.4+ compatible library for interacting with the terminal. This is what using (nearly every feature of) curtsies looks like:
.. code:: python
import random
from curtsies import FullscreenWindow, Input, FSArray from curtsies.fmtfuncs import red, bold, green, on_blue, yellow
print(yellow('this prints normally, not to the alternate screen')) with FullscreenWindow() as window: with Input() as input_generator: msg = red(on_blue(bold('Press escape to exit'))) a = FSArray(window.height, window.width) a[0:1, 0:msg.width] = [msg] for c in input_generator: if c == '': break elif c == '': a = FSArray(window.height, window.width) else: s = repr(c).decode() row = random.choice(range(window.height)) column = random.choice(range(window.width-len(s))) color = random.choice([red, green, on_blue, yellow]) a[row, column:column+len(s)] = [color(s)] window.render_to_terminal(a)
Paste it in a something.py
file and try it out!
Installation: pip install curtsies
Documentation <http://curtsies.readthedocs.org/en/latest/>
__
Primer
FmtStr <http://curtsies.readthedocs.org/en/latest/FmtStr.html>
__
objects are strings formatted with colors and styles displayable in a
terminal with ANSI escape sequences <http://en.wikipedia.org/wiki/ANSI_escape_code%3E%60_>
__.
|image3|
FSArray <http://curtsies.readthedocs.org/en/latest/FSArray.html>
__
objects contain multiple such strings with each formatted string on its
own row, and FSArray objects can be superimposed on each other to build
complex grids of colored and styled characters through composition.
(the import statement shown below is outdated)
|image4|
Such grids of characters can be rendered to the terminal in alternate
screen mode (no history, like Vim
, top
etc.) by
FullscreenWindow <http://curtsies.readthedocs.org/en/latest/window.html#curtsies.window.FullscreenWindow>
__
objects or normal history-preserving screen by
CursorAwareWindow <http://curtsies.readthedocs.org/en/latest/window.html#curtsies.window.CursorAwareWindow>
__
objects. User keyboard input events like pressing the up arrow key are
detected by an
Input <http://curtsies.readthedocs.org/en/latest/input.html>
__ object.
Examples
Tic-Tac-Toe </examples/tictactoeexample.py>
__
|image5|
Avoid the X’s game </examples/gameexample.py>
__
|image6|
Bpython-curtsies uses curtsies <http://ballingt.com/2013/12/21/bpython-curtsies.html>
__
|image7|
More examples </examples>
__
About
Curtsies Documentation <http://curtsies.readthedocs.org/en/latest/>
__- Curtsies was written to for
bpython-curtsies <http://ballingt.com/2013/12/21/bpython-curtsies.html>
__ #bpython
on irc is a good place to talk about Curtsies, but feel free to open an issue if you’re having a problem!- Thanks to the many contributors!
- If all you need are colored strings, consider one of these
other libraries <http://curtsies.readthedocs.io/en/latest/FmtStr.html#fmtstr-rationale>
__!
.. |Build Status| image:: https://travis-ci.org/bpython/curtsies.svg?branch=master :target: https://travis-ci.org/bpython/curtsies .. |Documentation Status| image:: https://readthedocs.org/projects/curtsies/badge/?version=latest :target: https://readthedocs.org/projects/curtsies/?badge=latest .. |Curtsies Logo| image:: http://ballingt.com/assets/curtsiestitle.png .. |image3| image:: https://i.imgur.com/bRLI134.png .. |image4| image:: http://i.imgur.com/rvTRPv1.png .. |image5| image:: http://i.imgur.com/AucB55B.png .. |image6| image:: http://i.imgur.com/nv1RQd3.png .. |image7| image:: http://i.imgur.com/r7rZiBS.png :target: http://www.youtube.com/watch?v=lwbpC4IJlyA
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
Built Distribution
File details
Details for the file curtsies-0.3.3.tar.gz
.
File metadata
- Download URL: curtsies-0.3.3.tar.gz
- Upload date:
- Size: 53.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d528742a9a6a705a7f40b90e5300c8501808d32f59e266a91c91790eff3f7eb8 |
|
MD5 | 1532de9419d7b0325ae8a5356e033c35 |
|
BLAKE2b-256 | 2de7e69aaed62d4547a023ec8f34accbcbad314125cbbdd610a6dfadaeb346d5 |
File details
Details for the file curtsies-0.3.3-py2.py3-none-any.whl
.
File metadata
- Download URL: curtsies-0.3.3-py2.py3-none-any.whl
- Upload date:
- Size: 35.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95c533811d80f20c82c17564a5b28e843235875a573b2a738533aaa1a7c334ec |
|
MD5 | daac4defaafda0483e9818dc652d8843 |
|
BLAKE2b-256 | e1c85ea10ef23beb2c60e87db0dd93681155d00a07870936887c31950d76e946 |