Version 0.3.5
Try to make it work as intended
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "basic_data_handling"
|
||||
version = "0.3.4"
|
||||
version = "0.3.5"
|
||||
description = """NOTE: Still in development! Expect breaking changes!
|
||||
Basic Python functions for manipulating data that every programmer is used to.
|
||||
Currently supported ComfyUI data types: BOOLEAN, FLOAT, INT, STRING and data lists.
|
||||
|
||||
@@ -29,7 +29,7 @@ class DataListCreate(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
"item_0": (IO.ANY, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -41,7 +41,8 @@ class DataListCreate(ComfyNodeABC):
|
||||
OUTPUT_IS_LIST = (True,)
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list]:
|
||||
return (list(kwargs.values()),)
|
||||
values = list(kwargs.values())
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class DataListCreateFromBoolean(ComfyNodeABC):
|
||||
@@ -56,7 +57,7 @@ class DataListCreateFromBoolean(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -68,7 +69,8 @@ class DataListCreateFromBoolean(ComfyNodeABC):
|
||||
OUTPUT_IS_LIST = (True,)
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list]:
|
||||
return ([bool(value) for value in kwargs.values()],)
|
||||
values = [bool(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class DataListCreateFromFloat(ComfyNodeABC):
|
||||
@@ -83,7 +85,7 @@ class DataListCreateFromFloat(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -95,7 +97,8 @@ class DataListCreateFromFloat(ComfyNodeABC):
|
||||
OUTPUT_IS_LIST = (True,)
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list]:
|
||||
return ([float(value) for value in kwargs.values()],)
|
||||
values = [float(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class DataListCreateFromInt(ComfyNodeABC):
|
||||
@@ -110,7 +113,7 @@ class DataListCreateFromInt(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.INT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -122,7 +125,8 @@ class DataListCreateFromInt(ComfyNodeABC):
|
||||
OUTPUT_IS_LIST = (True,)
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list]:
|
||||
return ([int(value) for value in kwargs.values()],)
|
||||
values = [int(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class DataListCreateFromString(ComfyNodeABC):
|
||||
@@ -137,7 +141,7 @@ class DataListCreateFromString(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.STRING, {"_dynamic": "number"}),
|
||||
"item_0": (IO.STRING, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -149,7 +153,8 @@ class DataListCreateFromString(ComfyNodeABC):
|
||||
OUTPUT_IS_LIST = (True,)
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return ([str(value) for value in kwargs.values()],)
|
||||
values = [str(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class DataListAppend(ComfyNodeABC):
|
||||
|
||||
@@ -27,8 +27,8 @@ class DictCreate(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.ANY, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
"value_0": (IO.ANY, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class DictCreate(ComfyNodeABC):
|
||||
def create(self, **kwargs: list[Any]) -> tuple[dict]:
|
||||
result = {}
|
||||
# Process all key_X/value_X pairs from dynamic inputs
|
||||
for i in range(len(kwargs) // 2): # Divide by 2 since we have key/value pairs
|
||||
for i in range(len(kwargs) // 2 - 1): # Divide by 2 since we have key/value pairs
|
||||
key_name = f"key_{i}"
|
||||
value_name = f"value_{i}"
|
||||
if key_name in kwargs and value_name in kwargs:
|
||||
@@ -59,8 +59,8 @@ class DictCreateFromBoolean(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.BOOLEAN, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
"value_0": (IO.BOOLEAN, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class DictCreateFromBoolean(ComfyNodeABC):
|
||||
def create(self, **kwargs: list[Any]) -> tuple[dict]:
|
||||
result = {}
|
||||
# Process all key_X/value_X pairs from dynamic inputs
|
||||
for i in range(len(kwargs) // 2): # Divide by 2 since we have key/value pairs
|
||||
for i in range(len(kwargs) // 2 - 1): # Divide by 2 since we have key/value pairs
|
||||
key_name = f"key_{i}"
|
||||
value_name = f"value_{i}"
|
||||
if key_name in kwargs and value_name in kwargs:
|
||||
@@ -91,8 +91,8 @@ class DictCreateFromFloat(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.FLOAT, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
"value_0": (IO.FLOAT, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ class DictCreateFromFloat(ComfyNodeABC):
|
||||
def create(self, **kwargs: list[Any]) -> tuple[dict]:
|
||||
result = {}
|
||||
# Process all key_X/value_X pairs from dynamic inputs
|
||||
for i in range(len(kwargs) // 2): # Divide by 2 since we have key/value pairs
|
||||
for i in range(len(kwargs) // 2 - 1): # Divide by 2 since we have key/value pairs
|
||||
key_name = f"key_{i}"
|
||||
value_name = f"value_{i}"
|
||||
if key_name in kwargs and value_name in kwargs:
|
||||
@@ -123,8 +123,8 @@ class DictCreateFromInt(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.INT, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
"value_0": (IO.INT, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ class DictCreateFromInt(ComfyNodeABC):
|
||||
def create(self, **kwargs: list[Any]) -> tuple[dict]:
|
||||
result = {}
|
||||
# Process all key_X/value_X pairs from dynamic inputs
|
||||
for i in range(len(kwargs) // 2): # Divide by 2 since we have key/value pairs
|
||||
for i in range(len(kwargs) // 2 - 1): # Divide by 2 since we have key/value pairs
|
||||
key_name = f"key_{i}"
|
||||
value_name = f"value_{i}"
|
||||
if key_name in kwargs and value_name in kwargs:
|
||||
@@ -155,8 +155,8 @@ class DictCreateFromString(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"value_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0}),
|
||||
"key_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
"value_0": (IO.STRING, {"_dynamic": "number", "_dynamicGroup": 0, "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ class DictCreateFromString(ComfyNodeABC):
|
||||
def create(self, **kwargs: list[Any]) -> tuple[dict]:
|
||||
result = {}
|
||||
# Process all key_X/value_X pairs from dynamic inputs
|
||||
for i in range(len(kwargs) // 2): # Divide by 2 since we have key/value pairs
|
||||
for i in range(len(kwargs) // 2 - 1): # Divide by 2 since we have key/value pairs
|
||||
key_name = f"key_{i}"
|
||||
value_name = f"value_{i}"
|
||||
if key_name in kwargs and value_name in kwargs:
|
||||
|
||||
@@ -29,7 +29,7 @@ class ListCreate(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
"item_0": (IO.ANY, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -39,7 +39,8 @@ class ListCreate(ComfyNodeABC):
|
||||
FUNCTION = "create_list"
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return (list(kwargs.values()),)
|
||||
values = list(kwargs.values())
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class ListCreateFromBoolean(ComfyNodeABC):
|
||||
@@ -54,7 +55,7 @@ class ListCreateFromBoolean(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -64,7 +65,8 @@ class ListCreateFromBoolean(ComfyNodeABC):
|
||||
FUNCTION = "create_list"
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return ([bool(value) for value in kwargs.values()],)
|
||||
values = [bool(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class ListCreateFromFloat(ComfyNodeABC):
|
||||
@@ -79,7 +81,7 @@ class ListCreateFromFloat(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -89,7 +91,8 @@ class ListCreateFromFloat(ComfyNodeABC):
|
||||
FUNCTION = "create_list"
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return ([float(value) for value in kwargs.values()],)
|
||||
values = [float(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class ListCreateFromInt(ComfyNodeABC):
|
||||
@@ -104,7 +107,7 @@ class ListCreateFromInt(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.INT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -114,7 +117,8 @@ class ListCreateFromInt(ComfyNodeABC):
|
||||
FUNCTION = "create_list"
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return ([int(value) for value in kwargs.values()],)
|
||||
values = [int(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class ListCreateFromString(ComfyNodeABC):
|
||||
@@ -139,7 +143,8 @@ class ListCreateFromString(ComfyNodeABC):
|
||||
FUNCTION = "create_list"
|
||||
|
||||
def create_list(self, **kwargs: list[Any]) -> tuple[list[Any]]:
|
||||
return ([str(value) for value in kwargs.values()],)
|
||||
values = [str(value) for value in kwargs.values()]
|
||||
return (values[:-1],)
|
||||
|
||||
|
||||
class ListAppend(ComfyNodeABC):
|
||||
|
||||
@@ -27,7 +27,7 @@ class SetCreate(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.ANY, {"_dynamic": "number"}),
|
||||
"item_0": (IO.ANY, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@ class SetCreate(ComfyNodeABC):
|
||||
FUNCTION = "create_set"
|
||||
|
||||
def create_set(self, **kwargs: list[Any]) -> tuple[set[Any]]:
|
||||
return (set(kwargs.values()),)
|
||||
values = kwargs.values()
|
||||
return (set(values[:-1]),)
|
||||
|
||||
|
||||
class SetCreateFromBoolean(ComfyNodeABC):
|
||||
@@ -52,7 +53,7 @@ class SetCreateFromBoolean(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number"}),
|
||||
"item_0": (IO.BOOLEAN, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -62,7 +63,8 @@ class SetCreateFromBoolean(ComfyNodeABC):
|
||||
FUNCTION = "create_set"
|
||||
|
||||
def create_set(self, **kwargs: list[Any]) -> tuple[set[Any]]:
|
||||
return (set([bool(value) for value in kwargs.values()]),)
|
||||
values = [bool(value) for value in kwargs.values()]
|
||||
return (set(values[:-1]),)
|
||||
|
||||
|
||||
class SetCreateFromFloat(ComfyNodeABC):
|
||||
@@ -77,7 +79,7 @@ class SetCreateFromFloat(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.FLOAT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -87,7 +89,8 @@ class SetCreateFromFloat(ComfyNodeABC):
|
||||
FUNCTION = "create_set"
|
||||
|
||||
def create_set(self, **kwargs: list[Any]) -> tuple[set[Any]]:
|
||||
return (set([float(value) for value in kwargs.values()]),)
|
||||
values = [float(value) for value in kwargs.values()]
|
||||
return (set(values[:-1]),)
|
||||
|
||||
|
||||
class SetCreateFromInt(ComfyNodeABC):
|
||||
@@ -102,7 +105,7 @@ class SetCreateFromInt(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.INT, {"_dynamic": "number"}),
|
||||
"item_0": (IO.INT, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -112,7 +115,8 @@ class SetCreateFromInt(ComfyNodeABC):
|
||||
FUNCTION = "create_set"
|
||||
|
||||
def create_set(self, **kwargs: list[Any]) -> tuple[set[Any]]:
|
||||
return (set([int(value) for value in kwargs.values()]),)
|
||||
values = [int(value) for value in kwargs.values()]
|
||||
return (set(values[:-1]),)
|
||||
|
||||
|
||||
class SetCreateFromString(ComfyNodeABC):
|
||||
@@ -127,7 +131,7 @@ class SetCreateFromString(ComfyNodeABC):
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"optional": ContainsDynamicDict({
|
||||
"item_0": (IO.STRING, {"_dynamic": "number"}),
|
||||
"item_0": (IO.STRING, {"_dynamic": "number", "widgetType": "STRING"}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -137,7 +141,8 @@ class SetCreateFromString(ComfyNodeABC):
|
||||
FUNCTION = "create_set"
|
||||
|
||||
def create_set(self, **kwargs: list[Any]) -> tuple[set[Any]]:
|
||||
return (set([str(value) for value in kwargs.values()]),)
|
||||
values = [str(value) for value in kwargs.values()]
|
||||
return (set(values[:-1]),)
|
||||
|
||||
|
||||
class SetAdd(ComfyNodeABC):
|
||||
|
||||
+518
-477
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user