String-like Objects
Project description
The :py:mod:`protostrings` distribution provides string-like objects with functional aspects, integrating well with the standard string type. Each :py:mod:`protostring` simply wraps a function dictating specific behaviours within the overarching constraints of the type. Due to their dynamic nature, features such as length or indexing are not supported. Memoizing variants of each :py:mod:`protostring` type are provided. The :py:mod:`inspect` module is required only for visualing :py:mod:`protostrings` (:py:meth:`~.LazyString.__str__`, :py:meth:`~.LazyString.__repr__`, :py:meth:`~.LazyString.pprint`), and is thus a soft requirement.
>>> protostring = "alpha " + ((lazy_str + context_str_right) + context_str_both) + " omega"
>>> protostring.pprint(False)
LazyString (...)
LazyString (...)
str 'alpha '
LazyString (...)
ContextString (...)
LazyString ()
ContextString (...)
ContextString (...)
str ' omega'
>>> str(protostring)
'alpha @@everything else@@ omega'
>>> "...alpha " + (context_str_right + context_str_both) + " omega..."
'...alpha (everything else) omega...'
>>> protostring = "alpha " + ((lazy_str + context_str_right) + context_str_both) + " omega"
>>> protostring.pprint(False)
LazyString (...)
LazyString (...)
str 'alpha '
LazyString (...)
ContextString (...)
LazyString ()
ContextString (...)
ContextString (...)
str ' omega'
>>> str(protostring)
'alpha @@everything else@@ omega'
>>> "...alpha " + (context_str_right + context_str_both) + " omega..."
'...alpha (everything else) omega...'
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
protostrings-1.0.0.0.tar.gz
(5.4 kB
view hashes)
Built Distribution
Close
Hashes for protostrings-1.0.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5131999043cc1cf2b51932f5384000474775d053898380c6f9ae291a816dbc4 |
|
MD5 | 7795e5e4f0b205ee88d926a792897147 |
|
BLAKE2b-256 | 94f3e2aa65e2b48a44060a78279e5ad76d776287ee7d7f22adaf82ffcf884d99 |