Colored text output in Python using ANSI escape sequences.
Project description
styled-str
styled-str is a package for creating strings styled with ANSI escape sequences. The motivation for writing this package was that many existing string-styling modules do not implement logical string behavior, like properly formatting the string, indexing, containment, all of which are useless if they don't ignore the styling.
The Styled object ignores styling and acts on just its content for the following operations:
For an example Styled s = Styled('Hello!', fg='red', style='italic')
- length, e.g.
len(s) => 6
- formatting, e.g.
f'{s:.3}' => 'Hel'
- indexing, e.g.
s[1] => 'e'
- iteration, e.g.
for c in s: => H, e, l, l, o, !
- reversed, e.g.
for c in reversed(s): => !, o, l, l, e, H
- containment, e.g. only characters of "Hello!" are True for
c in s
We would like to have a strings with the same content viewed as distinct though, and so Styled includes styling for the following operations:
For example Styled a = Styled('Hello!', fg='red'); b = Styled('Hello!', bg='blue')
- equality, e.g.
a == b => False
- comparison, e.g.
a < b => True
Installation
Install using pip (Python3):
pip3 install styled-str
Usage
Import the module and create a string with your desired styles:
from styledstr import Styled
s = Styled('Hello World!', fg='cyan', bg='white', style=['bold', 'underlined'])
# Print it out
print(s)
# Use it in a larger string
print("He said, '" + str(s) + "'")
# Format it worry-free!
print(f'Title: {s:>20}')
Behavior
In the following examples, variables prefixed with styled
refer to Styled
strings, while variables prefixed with regular
refer to standard Python
strings.
The following builtin functions all work as they normally would on only the underlying string contents:
-
repr(styled)
-
int(styled)
-
float(styled)
-
complex(styled)
-
hash(styled)
-
str(styled)
returns a Python string that includes escape sequences for the specified formatting.
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 styled-str-0.1.0.tar.gz
.
File metadata
- Download URL: styled-str-0.1.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 498e7836228d85217528b4c42fc1a8985a856f9ee97993152dd558bc110cfb63 |
|
MD5 | fb557e5a7ec4f3de9d6ac755a033b18b |
|
BLAKE2b-256 | 76e0882d990b82807850460e17fd594245778615bb050d78363690a1c0dfc3c1 |
File details
Details for the file styled_str-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: styled_str-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4c93315b597d0ee1ddeb2897b79258c039b2fae767456badd5b1548cd4eba6b |
|
MD5 | c81f242788e4e3e97cb9e531b1cf0443 |
|
BLAKE2b-256 | 5ee090e895cebd784def04a6fb5d1323b7d22b815c511f893bf376e19b7b198f |