extension over array of unicode characters: fast inserts, deletions, replacements, slices, etc. supports all the str class methods if does not provide custom implementation itself. works for py3.7+.
Create:
from rstring import String String() # empty String('123') # or String.from_str String(array('u', '123')) # or String.from_unicode_array String(b'123', encoding='utf8') # or String.from_encoding String(str(i) for i in range(1, 5) if i < 4) # or String.from_iterableConvert back to str:
assert str(String('123')) == '123'It implements all magic methods of str. And much more:
char_index, char_indices, chars, clear, contains (__contains__), copy, drain, extend, insert, insert_str, is_empty (!__bool__), lines, map, pop, push, push_str, rchar_index, remove, removeprefix (strip_prefix), removesuffix (strip_suffix), repeat (__mul__), replace_range, retain (filter), rsplit_once, split_at, split_inclusive, split_off, split_once, take_from, truncate, __str__ ( as_str to_str), reverse, trim, trimr, triml, trim_num, trimr_num, triml_num. Refer to source and tests for more.
Classmethods:
new, from_str, from_iterable, from_unicode_array, from_encoding, from_utf8, has_custom_impl Install:
pip install git+https://github.com/phantie/mutable-string.git -U