Files
dev-gpt/dev_gpt/utils/string_tools.py
2023-05-24 01:17:28 +02:00

49 lines
1.4 KiB
Python

import os
import platform
import string
import re
if platform.system() == "Windows":
os.system("color")
def print_colored(headline, text, color_code, end='\n'):
if color_code == 'black':
color_code = '30'
elif color_code == 'red':
color_code = '31'
elif color_code == 'green':
color_code = '32'
elif color_code == 'yellow':
color_code = '33'
elif color_code == 'blue':
color_code = '34'
elif color_code == 'magenta':
color_code = '35'
elif color_code == 'cyan':
color_code = '36'
elif color_code == 'white':
color_code = '37'
color_start = f"\033[{color_code}m"
reset = "\033[0m"
bold_start = "\033[1m"
if headline:
print(f"{bold_start}{color_start}{headline}{reset}")
print(f"{color_start}{text}{reset}", end=end)
def get_template_parameters(formatted_string):
formatter = string.Formatter()
parsed = formatter.parse(formatted_string)
parameters = []
for literal_text, field_name, format_spec, conversion in parsed:
if field_name is not None:
parameters.append(field_name)
return parameters
def clean_large_words(text):
"""Large words like base64 strings are returned by omitting the middle part of the word."""
pattern = r'\b([a-zA-Z0-9+/]{20})([a-zA-Z0-9+/]{200,})([a-zA-Z0-9+/]{20})\b'
cleaned_text = re.sub(pattern, r'\1...\3', text)
return cleaned_text