393 lines
9.1 KiB
Python
393 lines
9.1 KiB
Python
NODE_CATEGORY = "string-util"
|
|
|
|
|
|
class Str:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {"required": {}, "optional": {"object": ("*", {})}}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, object=None):
|
|
return (str(object),)
|
|
|
|
|
|
class StrConcat:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s1": ("STRING", {"default": ""}),
|
|
"s2": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s1: str, s2: str):
|
|
return (s1 + s2,)
|
|
|
|
|
|
class StrEqual:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s1": ("STRING", {"default": ""}),
|
|
"s2": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("bool",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s1: str, s2: str):
|
|
return (s1 == s2,)
|
|
|
|
|
|
class StrNotEqual:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s1": ("STRING", {"default": ""}),
|
|
"s2": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("bool",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s1: str, s2: str):
|
|
return (s1 != s2,)
|
|
|
|
|
|
class StrLen:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("INT",)
|
|
RETURN_NAMES = ("length",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (len(s),)
|
|
|
|
|
|
class StrLower:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (s.lower(),)
|
|
|
|
|
|
class StrUpper:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (s.upper(),)
|
|
|
|
|
|
class StrStrip:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {"s": ("STRING", {"default": ""})},
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (s.strip(),)
|
|
|
|
|
|
class StrLstrip:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {"required": {"s": ("STRING", {"default": ""})}}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (s.lstrip(),)
|
|
|
|
|
|
class StrRstrip:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {"required": {"s": ("STRING", {"default": ""})}}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str):
|
|
return (s.rstrip(),)
|
|
|
|
|
|
class StrStartsWith:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"prefix": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("bool",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, prefix: str):
|
|
return (s.startswith(prefix),)
|
|
|
|
|
|
class StrEndsWith:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"suffix": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("bool",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, suffix: str):
|
|
return (s.endswith(suffix),)
|
|
|
|
|
|
class StrFind:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"value": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("INT", "BOOLEAN")
|
|
RETURN_NAMES = ("index", "found")
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, value: str):
|
|
index = s.find(value)
|
|
return (index, index > 0)
|
|
|
|
|
|
class StrReplace:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"to_replace": ("STRING", {"default": ""}),
|
|
"replace_with": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, to_replace: str, replace_with: str):
|
|
return (s.replace(to_replace, replace_with),)
|
|
|
|
|
|
class StrCount:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"value": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("INT",)
|
|
RETURN_NAMES = ("count",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, value: str):
|
|
return (s.count(value),)
|
|
|
|
|
|
class StrJoin:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"strings": ("STRING", {"forceInput": True}),
|
|
"sep": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
INPUT_IS_LIST = True
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, strings: list[str], sep: list[str]):
|
|
return (sep[0].join(strings),)
|
|
|
|
|
|
class StrSplit:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"sep": ("STRING", {"default": ""}),
|
|
}
|
|
}
|
|
|
|
OUTPUT_IS_LIST = (True,)
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("strings",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, sep: str):
|
|
return (s.split(sep),)
|
|
|
|
|
|
class StrSlice:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"s": ("STRING", {"default": ""}),
|
|
"start": ("INT", {"default": 0}),
|
|
"end": ("INT", {"default": 0}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, s: str, start: int, end: int):
|
|
return (s[start:end],)
|
|
|
|
|
|
class StrFormat:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"optional": {
|
|
"object": ("*", {}),
|
|
},
|
|
"required": {
|
|
"format": ("STRING", {"default": ""}),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("string",)
|
|
FUNCTION = "run"
|
|
CATEGORY = NODE_CATEGORY
|
|
|
|
def run(self, object=None, format: str = ""):
|
|
return (format.format(object),)
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"string_util_Str": Str,
|
|
"string_util_StrConcat": StrConcat,
|
|
"string_util_StrEqual": StrEqual,
|
|
"string_util_StrNotEqual": StrNotEqual,
|
|
"string_util_StrLen": StrLen,
|
|
"string_util_StrLower": StrLower,
|
|
"string_util_StrUpper": StrUpper,
|
|
"string_util_StrStrip": StrStrip,
|
|
"string_util_StrLstrip": StrLstrip,
|
|
"string_util_StrRstrip": StrRstrip,
|
|
"string_util_StrStartsWith": StrStartsWith,
|
|
"string_util_StrEndsWith": StrEndsWith,
|
|
"string_util_StrFind": StrFind,
|
|
"string_util_StrReplace": StrReplace,
|
|
"string_util_StrCount": StrCount,
|
|
"string_util_StrJoin": StrJoin,
|
|
"string_util_StrSplit": StrSplit,
|
|
"string_util_StrSlice": StrSlice,
|
|
"string_util_StrFormat": StrFormat,
|
|
}
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"string_util_Str": "String Str",
|
|
"string_util_StrConcat": "String Concat",
|
|
"string_util_StrEqual": "String Equal",
|
|
"string_util_StrNotEqual": "String Not Equal",
|
|
"string_util_StrLen": "String Length",
|
|
"string_util_StrLower": "String Lower",
|
|
"string_util_StrUpper": "String Upper",
|
|
"string_util_StrStrip": "String Strip",
|
|
"string_util_StrLstrip": "String Lstrip",
|
|
"string_util_StrRstrip": "String Rstrip",
|
|
"string_util_StrStartsWith": "String StartsWith",
|
|
"string_util_StrEndsWith": "String EndsWith",
|
|
"string_util_StrFind": "String Find",
|
|
"string_util_StrReplace": "String Replace",
|
|
"string_util_StrCount": "String Count",
|
|
"string_util_StrJoin": "String Join",
|
|
"string_util_StrSplit": "String Split",
|
|
"string_util_StrSlice": "String Slice",
|
|
"string_util_StrFormat": "String Format",
|
|
}
|