debug
This commit is contained in:
+28
-9
@@ -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,)
|
||||
|
||||
+37
-39
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user