feat: PoolProfile companion node
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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"}
|
||||||
@@ -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"
|
||||||
Reference in New Issue
Block a user