Make rate_limited use cvs.
[python_utils.git] / string_utils.py
index aca4a5e3bfd9f49efa9a329b06addd9af5ffaa0a..097dc1b092dc51bb031f104e82e09047bef1b8ad 100644 (file)
@@ -1141,6 +1141,24 @@ def valid_datetime(in_str: str) -> bool:
     return False
 
 
+def squeeze(in_str: str, character_to_squeeze: str = ' ') -> str:
+    """
+    Squeeze runs of more than one character_to_squeeze into one.
+
+    >>> squeeze(' this        is       a    test    ')
+    ' this is a test '
+
+    >>> squeeze('one|!||!|two|!||!|three', character_to_squeeze='|!|')
+    'one|!|two|!|three'
+
+    """
+    return re.sub(
+        r'(' + re.escape(character_to_squeeze) + r')+',
+        character_to_squeeze,
+        in_str
+    )
+
+
 def dedent(in_str: str) -> str:
     """
     Removes tab indentation from multi line strings (inspired by analogous Scala function).