|
|
| 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 🐍",
|
| }
|
|
|