Skip to content

Commit ffae935

Browse files
committed
update AutoNode
1 parent ca4f9c3 commit ffae935

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

example_auto_nodes/node_base/auto_node.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ def cookNextNode(self):
6868
for n in nodeList:
6969
n.cook()
7070

71+
def getData(self, port):
72+
# for custom output data
73+
return self.get_property(port.name())
74+
7175
def getInputData(self, port):
7276
# get input data by input Port,the type of "port" can be :
7377
# int : Port index
@@ -89,7 +93,7 @@ def getInputData(self, port):
8993
return copy.deepcopy(self.defaultValue)
9094

9195
for from_port in from_ports:
92-
data = from_port.node().get_property(from_port.name())
96+
data = from_port.node().getData(from_port)
9397
return copy.deepcopy(data)
9498

9599
def when_disabled(self):
@@ -101,19 +105,12 @@ def cook(self, forceCook=False):
101105
if not self._autoCook and forceCook is not True:
102106
return
103107

104-
_tmp = self._autoCook
105-
self._autoCook = False
106-
107-
if self.disabled():
108-
self._autoCook = _tmp
109-
self.when_disabled()
110-
self.cookNextNode()
111-
return
112-
113108
if not self.needCook:
114-
self._autoCook = _tmp
115109
return
116110

111+
_tmp = self._autoCook
112+
self._autoCook = False
113+
117114
if self.error():
118115
self._close_error()
119116

@@ -123,6 +120,7 @@ def cook(self, forceCook=False):
123120
self.run()
124121
except Exception as error:
125122
self.error(error)
123+
126124
self._autoCook = _tmp
127125

128126
if self.error():
@@ -149,11 +147,6 @@ def on_input_disconnected(self, to_port, from_port):
149147
return
150148
self.cook()
151149

152-
def set_disabled(self, mode=False):
153-
super(AutoNode, self).set_disabled(mode)
154-
if self.input_ports():
155-
self.cook()
156-
157150
def checkPortType(self, to_port, from_port):
158151
# None type port can connect with any other type port
159152
# types in self.matchTypes can connect with each other
@@ -224,6 +217,16 @@ def add_output(self, name='output', data_type=None, multi_output=True, display_n
224217
self.set_port_type(new_port, self.defaultOutputType)
225218
return new_port
226219

220+
def set_disabled(self, mode=False):
221+
super(AutoNode, self).set_disabled(mode)
222+
self._autoCook = not mode
223+
if mode is True:
224+
self.when_disabled()
225+
self.cookNextNode()
226+
else:
227+
self.cook()
228+
229+
227230
def _close_error(self):
228231
self._error = False
229232
self.set_property('color', self.defaultColor)

0 commit comments

Comments
 (0)