Skip to content

rbroderi/StringDataDeque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
R. Broderick
Apr 27, 2024
8efd2a0 · Apr 27, 2024
Apr 22, 2024
Apr 22, 2024
Apr 21, 2024
Apr 20, 2024
Mar 10, 2024
Mar 31, 2024
Apr 8, 2024
Apr 20, 2024
Apr 7, 2024
Apr 13, 2024
Mar 17, 2024
Apr 22, 2024
Apr 7, 2024
Apr 27, 2024
Apr 27, 2024
Apr 27, 2024
Apr 22, 2024
Apr 22, 2024

Repository files navigation

StringDataDeque

Useful when building a string from data that can be converted into a string, in parts.

Installation

https://pypi.org/project/StringDataDeque/

pip install StringDataDeque

Uses

This is designed to be a drop-in replacement for when you might want to append to a string in a loop.

Benefits

  • Around 5 times faster than the naive implementation of appending to a string, such as
    x = ""
    for x in collection:
        x+="new string"
  • Provides many extra features that help simply code.

Examples

sd = StringDeque(sep="\n")
for x in collection:
    sd += x
# StringDeque is a specialization of StringDataDeque where conversion func is "str"
# this allows any datatype to be used which can convert to str
sd += 1
print(sd)

You can also pipe data into the StringDeque

sd = StringDeque()
sd = [1,2,3,4,5] | sd
# or
sd |= [1,2,3,4,5]

StringDataDeque implements the "contains" method so you can search within it

sd = StringDeque(["line_one","line_two"],sep="\n")
if "line_one" in sd:
    print("yes")

If you need more control over how data is added to the deque either use StringDataDeque or one of its subclasses.

# convert_func is called when data is added, and format_func is called when data is printed.
int_sdd =StringDataDeque(data="test", convert_func=int, format_func=str,sep=" ")
int_sdd |= ["1","2","3","4","5"]
assert int_sdd[0] == 1
assert str(int_sdd) == "1 2 3 4 5"