|
|
|
class AnyType(str): |
|
def __ne__(self, __value: object) -> bool: |
|
return False |
|
|
|
|
|
|
|
any = AnyType("*") |
|
|
|
|
|
class Repeater: |
|
@classmethod |
|
def INPUT_TYPES(s): |
|
return {"required": { |
|
"source": (any, {}), |
|
"repeats": ("INT", {"min": 0, "max": 5000, "default": 2}), |
|
"output": (["single", "multi"], {}), |
|
"node_mode": (["reuse", "create"], {}), |
|
}} |
|
|
|
RETURN_TYPES = (any,) |
|
FUNCTION = "repeat" |
|
OUTPUT_NODE = False |
|
OUTPUT_IS_LIST = (True,) |
|
|
|
CATEGORY = "utils" |
|
|
|
def repeat(self, repeats, output, node_mode, **kwargs): |
|
if output == "multi": |
|
|
|
return ([kwargs["source"]],) |
|
elif node_mode == "reuse": |
|
|
|
return ([kwargs["source"]] * repeats,) |
|
else: |
|
|
|
return ((list(kwargs.values())),) |
|
|
|
|
|
NODE_CLASS_MAPPINGS = { |
|
"Repeater|pysssss": Repeater, |
|
} |
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = { |
|
"Repeater|pysssss": "Repeater ๐", |
|
} |
|
|