From 3f74da647d099ca6170a38006e587d7a2b7c302e Mon Sep 17 00:00:00 2001 From: Shaun Johnston Date: Sun, 28 Dec 2025 15:24:05 +1000 Subject: [PATCH] debug --- friendly_pipe_edit.py | 37 ++++++++++++++++----- js/friendly_pipe.js | 76 +++++++++++++++++++++---------------------- 2 files changed, 65 insertions(+), 48 deletions(-) diff --git a/friendly_pipe_edit.py b/friendly_pipe_edit.py index 6315572..8347ed9 100644 --- a/friendly_pipe_edit.py +++ b/friendly_pipe_edit.py @@ -41,6 +41,21 @@ class FriendlyPipeEdit: def execute(self, pipe, slot_count=0, slot_names="{}", incoming_slot_count=0, **kwargs): import json + import os + import re + + # Read debug setting from js/config.js + debug = False + config_path = os.path.join(os.path.dirname(__file__), "js", "config.js") + try: + with open(config_path, "r") as f: + content = f.read() + # Parse debug: true or debug: false from the JS config + match = re.search(r'debug:\s*(true|false)', content) + if match: + debug = match.group(1) == "true" + except: + pass # Convert slot_count and incoming_slot_count to int if they're strings if isinstance(slot_count, str): @@ -48,12 +63,13 @@ class FriendlyPipeEdit: if isinstance(incoming_slot_count, str): incoming_slot_count = int(incoming_slot_count) if incoming_slot_count else 0 - # Debug: print what we received - print(f"[FriendlyPipeEdit] execute called") - print(f"[FriendlyPipeEdit] slot_count={slot_count}, incoming_slot_count={incoming_slot_count}") - print(f"[FriendlyPipeEdit] pipe data: {pipe}") - print(f"[FriendlyPipeEdit] kwargs keys: {list(kwargs.keys())}") - print(f"[FriendlyPipeEdit] kwargs: {kwargs}") + # Debug logging + if debug: + print(f"[FriendlyPipeEdit] execute called") + print(f"[FriendlyPipeEdit] slot_count={slot_count}, incoming_slot_count={incoming_slot_count}") + print(f"[FriendlyPipeEdit] pipe data: {pipe}") + print(f"[FriendlyPipeEdit] kwargs keys: {list(kwargs.keys())}") + print(f"[FriendlyPipeEdit] kwargs: {kwargs}") # Parse slot names from JSON string try: @@ -96,10 +112,12 @@ class FriendlyPipeEdit: # Override incoming slots if exposed inputs are connected for i in range(1, actual_incoming_count + 1): incoming_key = f"incoming_slot_{i}" - print(f"[FriendlyPipeEdit] Checking {incoming_key}: present={incoming_key in kwargs}, value={kwargs.get(incoming_key, 'NOT_PRESENT')}") + if debug: + print(f"[FriendlyPipeEdit] Checking {incoming_key}: present={incoming_key in kwargs}, value={kwargs.get(incoming_key, 'NOT_PRESENT')}") if incoming_key in kwargs and kwargs[incoming_key] is not None: pipe_data["slots"][i] = kwargs[incoming_key] - print(f"[FriendlyPipeEdit] Overriding slot {i} with {kwargs[incoming_key]}") + if debug: + print(f"[FriendlyPipeEdit] Overriding slot {i} with {kwargs[incoming_key]}") # Find the highest slot we're adding max_new_slot = 0 @@ -122,6 +140,7 @@ class FriendlyPipeEdit: # Calculate final slot count pipe_data["slot_count"] = actual_incoming_count + max(slot_count, max_new_slot) - print(f"[FriendlyPipeEdit] Final pipe_data: {pipe_data}") + if debug: + print(f"[FriendlyPipeEdit] Final pipe_data: {pipe_data}") return (pipe_data,) diff --git a/js/friendly_pipe.js b/js/friendly_pipe.js index 5e73392..02b4ee5 100644 --- a/js/friendly_pipe.js +++ b/js/friendly_pipe.js @@ -1,12 +1,8 @@ import { app } from "../../scripts/app.js"; +import { config } from "./config.js"; console.log("[FriendlyPipe] Script file loaded"); -// Configuration - edit this directly to enable debug -const config = { - debug: false, -}; - // Debug logging helper function debugLog(...args) { if (config.debug) { @@ -1273,43 +1269,43 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { sourceNode = graph.getNodeById(link.origin_id); } - console.log("[FriendlyPipeEdit] syncWithSource - sourceNode:", sourceNode?.type, sourceNode?.id); - console.log("[FriendlyPipeEdit] syncWithSource - sourceNode.slotCount:", sourceNode?.slotCount); - console.log("[FriendlyPipeEdit] syncWithSource - sourceNode.slotNames:", JSON.stringify(sourceNode?.slotNames)); + debugLog("syncWithSource - sourceNode:", sourceNode?.type, sourceNode?.id); + debugLog("syncWithSource - sourceNode.slotCount:", sourceNode?.slotCount); + debugLog("syncWithSource - sourceNode.slotNames:", JSON.stringify(sourceNode?.slotNames)); if (!sourceNode) return; - console.log("[FriendlyPipeEdit] sourceNode.type exact value:", JSON.stringify(sourceNode.type)); - console.log("[FriendlyPipeEdit] Is FriendlyPipeOut?", sourceNode.type === "FriendlyPipeOut"); + debugLog("sourceNode.type exact value:", JSON.stringify(sourceNode.type)); + debugLog("Is FriendlyPipeOut?", sourceNode.type === "FriendlyPipeOut"); // Special case: if connected to a FriendlyPipeOut's output slot, check if that slot // contains a FRIENDLY_PIPE and trace back to its original source if (sourceNode.type === "FriendlyPipeOut") { // originSlot is 0-indexed, but slotTypes/slotSources are 1-indexed const slotNum = originSlot + 1; - console.log("[FriendlyPipeEdit] Connected to FriendlyPipeOut, originSlot:", originSlot, "slotNum:", slotNum); + debugLog("Connected to FriendlyPipeOut, originSlot:", originSlot, "slotNum:", slotNum); const slotType = sourceNode.slotTypes?.[slotNum]; - console.log("[FriendlyPipeEdit] FriendlyPipeOut slot type:", slotType); + debugLog("FriendlyPipeOut slot type:", slotType); if (slotType === "FRIENDLY_PIPE") { - console.log("[FriendlyPipeEdit] Slot contains FRIENDLY_PIPE, tracing back..."); + debugLog("Slot contains FRIENDLY_PIPE, tracing back..."); // Need to find the original source of this nested pipe const pipeOutInput = sourceNode.inputs?.[0]; - console.log("[FriendlyPipeEdit] pipeOutInput:", pipeOutInput); + debugLog("pipeOutInput:", pipeOutInput); if (pipeOutInput && pipeOutInput.link) { const sourceGraph = sourceNode.graph || graph; const pipeOutLink = sourceGraph.links instanceof Map ? sourceGraph.links.get(pipeOutInput.link) : sourceGraph.links?.[pipeOutInput.link]; - console.log("[FriendlyPipeEdit] pipeOutLink:", pipeOutLink); + debugLog("pipeOutLink:", pipeOutLink); if (pipeOutLink) { let pipeInNode = null; // Handle negative origin_id (subgraph input boundary) if (pipeOutLink.origin_id < 0) { - console.log("[FriendlyPipeEdit] pipeOutLink has negative origin_id"); + debugLog("pipeOutLink has negative origin_id"); const parentInfo = getParentSubgraphInfo(sourceNode); if (parentInfo) { const { parentNode, parentGraph } = parentInfo; @@ -1326,15 +1322,15 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { } else { pipeInNode = sourceGraph.getNodeById(pipeOutLink.origin_id); } - console.log("[FriendlyPipeEdit] pipeInNode:", pipeInNode?.type, pipeInNode?.id); + debugLog("pipeInNode:", pipeInNode?.type, pipeInNode?.id); if (pipeInNode) { const pipeSource = findOriginalSource(pipeInNode, pipeOutLink.origin_slot); - console.log("[FriendlyPipeEdit] pipeSource:", pipeSource?.type, pipeSource?.id); + debugLog("pipeSource:", pipeSource?.type, pipeSource?.id); if (pipeSource && pipeSource.getSlotSource) { const slotSource = pipeSource.getSlotSource(slotNum); - console.log("[FriendlyPipeEdit] slotSource:", slotSource?.type, slotSource?.id, "slotCount:", slotSource?.slotCount); + debugLog("slotSource:", slotSource?.type, slotSource?.id, "slotCount:", slotSource?.slotCount); if (slotSource) { if (slotSource.updateSlotTypes) { @@ -1368,10 +1364,10 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { const originalSource = findOriginalSource(sourceNode, originSlot); const effectiveSource = originalSource || sourceNode; - console.log("[FriendlyPipeEdit] syncWithSource - effectiveSource:", effectiveSource?.type, effectiveSource?.id); - console.log("[FriendlyPipeEdit] syncWithSource - effectiveSource.slotCount:", effectiveSource?.slotCount); - console.log("[FriendlyPipeEdit] syncWithSource - effectiveSource.slotNames:", JSON.stringify(effectiveSource?.slotNames)); - console.log("[FriendlyPipeEdit] syncWithSource - has getTotalSlotCount:", !!effectiveSource?.getTotalSlotCount); + debugLog("syncWithSource - effectiveSource:", effectiveSource?.type, effectiveSource?.id); + debugLog("syncWithSource - effectiveSource.slotCount:", effectiveSource?.slotCount); + debugLog("syncWithSource - effectiveSource.slotNames:", JSON.stringify(effectiveSource?.slotNames)); + debugLog("syncWithSource - has getTotalSlotCount:", !!effectiveSource?.getTotalSlotCount); // Get combined slot info from source (could be FriendlyPipeIn or another FriendlyPipeEdit) if (effectiveSource.slotCount !== undefined) { @@ -1381,7 +1377,7 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { this.incomingSlotNames = effectiveSource.getCombinedSlotNames(); this.incomingSlotTypes = effectiveSource.getCombinedSlotTypes(); this.incomingSlotSources = effectiveSource.getCombinedSlotSources ? effectiveSource.getCombinedSlotSources() : {}; - console.log("[FriendlyPipeEdit] Got from getTotalSlotCount:", this.incomingSlotCount); + debugLog("Got from getTotalSlotCount:", this.incomingSlotCount); } else { this.incomingSlotCount = effectiveSource.slotCount; this.incomingSlotNames = effectiveSource.slotNames || {}; @@ -1391,10 +1387,10 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { } this.incomingSlotTypes = effectiveSource.slotTypes || {}; this.incomingSlotSources = effectiveSource.slotSources || {}; - console.log("[FriendlyPipeEdit] Got from slotCount:", this.incomingSlotCount); + debugLog("Got from slotCount:", this.incomingSlotCount); } - console.log("[FriendlyPipeEdit] After sync - incomingSlotCount:", this.incomingSlotCount); - console.log("[FriendlyPipeEdit] After sync - incomingSlotNames:", JSON.stringify(this.incomingSlotNames)); + debugLog("After sync - incomingSlotCount:", this.incomingSlotCount); + debugLog("After sync - incomingSlotNames:", JSON.stringify(this.incomingSlotNames)); } // Update exposed incoming slot inputs @@ -1407,11 +1403,11 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { nodeType.prototype.updateExposedIncomingSlots = function() { const node = this; - console.log("[FriendlyPipeEdit] updateExposedIncomingSlots called"); - console.log("[FriendlyPipeEdit] incomingSlotCount:", this.incomingSlotCount); - console.log("[FriendlyPipeEdit] incomingSlotNames:", JSON.stringify(this.incomingSlotNames)); - console.log("[FriendlyPipeEdit] slotCount:", this.slotCount); - console.log("[FriendlyPipeEdit] slotNames:", JSON.stringify(this.slotNames)); + debugLog("updateExposedIncomingSlots called"); + debugLog("incomingSlotCount:", this.incomingSlotCount); + debugLog("incomingSlotNames:", JSON.stringify(this.incomingSlotNames)); + debugLog("slotCount:", this.slotCount); + debugLog("slotNames:", JSON.stringify(this.slotNames)); // Calculate expected input structure: // Index 0: pipe input @@ -1465,9 +1461,11 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { this.removeInput(this.inputs.length - 1); } - console.log("[FriendlyPipeEdit] Final inputs:"); - for (let i = 0; i < this.inputs.length; i++) { - console.log(` [${i}] name=${this.inputs[i].name}, label=${this.inputs[i].label}, link=${this.inputs[i].link}, type=${this.inputs[i].type}`); + if (config.debug) { + console.log("[FriendlyPipe] Final inputs:"); + for (let i = 0; i < this.inputs.length; i++) { + console.log(` [${i}] name=${this.inputs[i].name}, label=${this.inputs[i].label}, link=${this.inputs[i].link}, type=${this.inputs[i].type}`); + } } this.exposedIncomingSlots = {}; @@ -1720,10 +1718,10 @@ function setupFriendlyPipeEdit(nodeType, nodeData, app) { } // Debug: log input state at execution time - console.log("[FriendlyPipeEdit] onExecutionStart"); - console.log("[FriendlyPipeEdit] incomingSlotCount:", this.incomingSlotCount); - console.log("[FriendlyPipeEdit] slotCount:", this.slotCount); - console.log("[FriendlyPipeEdit] inputs:", this.inputs?.map((inp, idx) => ({ + debugLog("onExecutionStart"); + debugLog("incomingSlotCount:", this.incomingSlotCount); + debugLog("slotCount:", this.slotCount); + debugLog("inputs:", this.inputs?.map((inp, idx) => ({ idx, name: inp.name, label: inp.label,