feat: PoolProfile companion node

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-21 19:58:34 +02:00
parent ac3ad07b17
commit b7e064508a
2 changed files with 43 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
# gates/profile_node.py
NODE_CLASS_MAPPINGS = {}
NODE_DISPLAY_NAME_MAPPINGS = {}
class PoolProfile:
CATEGORY = "Datasete Gates"
FUNCTION = "run"
RETURN_TYPES = ("POOL_PROFILE",)
RETURN_NAMES = ("profile",)
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"profile": ("STRING", {"default": ""}), # name; JS renders a dropdown
"profile_id": ("STRING", {"default": ""}), # hidden, JS-owned id
},
}
def run(self, profile, profile_id=""):
return (profile_id or "default",)
@classmethod
def IS_CHANGED(cls, profile, profile_id="", **kwargs):
return profile_id
NODE_CLASS_MAPPINGS = {"PoolProfile": PoolProfile}
NODE_DISPLAY_NAME_MAPPINGS = {"PoolProfile": "Pool Profile"}
+13
View File
@@ -0,0 +1,13 @@
# tests/test_profile_node.py
from gates import profile_node as pn
def test_io():
assert pn.PoolProfile.RETURN_TYPES == ("POOL_PROFILE",)
assert pn.PoolProfile.RETURN_NAMES == ("profile",)
def test_run_returns_id_or_default():
assert pn.PoolProfile().run(profile="setA", profile_id="id1") == ("id1",)
assert pn.PoolProfile().run(profile="", profile_id="") == ("default",)
def test_is_changed_tracks_id():
assert pn.PoolProfile.IS_CHANGED(profile="x", profile_id="id1") == "id1"