1
- from NodeGraphQt import BaseNode , SubGraph , Port , QtCore
2
- from NodeGraphQt .constants import NODE_PROP
1
+ from NodeGraphQt import BaseNode , Port , QtCore
3
2
from . utils import update_node_down_stream
4
3
import traceback
5
4
import hashlib
@@ -34,43 +33,43 @@ class AutoNode(BaseNode, QtCore.QObject):
34
33
def __init__ (self , defaultInputType = None , defaultOutputType = None ):
35
34
super (AutoNode , self ).__init__ ()
36
35
QtCore .QObject .__init__ (self )
37
- self ._needCook = True
36
+ self ._need_cook = True
38
37
self ._error = False
39
38
self .matchTypes = [['float' , 'int' ]]
40
39
self .errorColor = (200 , 50 , 50 )
41
40
self .stopCookColor = (200 , 200 , 200 )
42
41
self ._cryptoColors = CryptoColors ()
43
42
44
- self .create_property ('autoCook ' , True )
43
+ self .create_property ('auto_cook ' , True )
45
44
self .create_property ('default_color' , self .get_property ('color' ))
46
45
self .defaultValue = None
47
46
self .defaultInputType = defaultInputType
48
47
self .defaultOutputType = defaultOutputType
49
48
50
- self ._cookTime = 0.0
49
+ self ._cook_time = 0.0
51
50
self ._toolTip = self ._setup_tool_tip ()
52
51
53
52
@property
54
- def autoCook (self ):
53
+ def auto_cook (self ):
55
54
"""
56
55
Returns whether the node can update stream automatically.
57
56
"""
58
57
59
- return self .get_property ('autoCook ' )
58
+ return self .get_property ('auto_cook ' )
60
59
61
- @autoCook .setter
62
- def autoCook (self , mode ):
60
+ @auto_cook .setter
61
+ def auto_cook (self , mode ):
63
62
"""
64
63
Set whether the node can update stream automatically.
65
64
66
65
Args:
67
66
mode(bool).
68
67
"""
69
68
70
- if mode is self .autoCook :
69
+ if mode is self .auto_cook :
71
70
return
72
71
73
- self .model .set_property ('autoCook ' , mode )
72
+ self .model .set_property ('auto_cook ' , mode )
74
73
if mode :
75
74
self .set_property ('color' , self .get_property ('default_color' ))
76
75
else :
@@ -79,23 +78,23 @@ def autoCook(self, mode):
79
78
self .set_property ('color' , self .stopCookColor )
80
79
81
80
@property
82
- def cookTime (self ):
81
+ def cook_time (self ):
83
82
"""
84
83
Returns the last cooked time of the node.
85
84
"""
86
85
87
- return self ._cookTime
86
+ return self ._cook_time
88
87
89
- @cookTime .setter
90
- def cookTime (self , cook_time ):
88
+ @cook_time .setter
89
+ def cook_time (self , cook_time ):
91
90
"""
92
91
Set the last cooked time of the node.
93
92
94
93
Args:
95
94
cook_time(float).
96
95
"""
97
96
98
- self ._cookTime = cook_time
97
+ self ._cook_time = cook_time
99
98
self ._update_tool_tip ()
100
99
101
100
@property
@@ -111,17 +110,17 @@ def update_stream(self, forceCook=False):
111
110
Update all down stream nodes.
112
111
113
112
Args:
114
- forceCook(bool): if True, it will ignore the autoCook and so on.
113
+ forceCook(bool): if True, it will ignore the auto_cook and so on.
115
114
"""
116
115
117
116
if not forceCook :
118
- if not self .autoCook or not self ._needCook :
117
+ if not self .auto_cook or not self .get_input_data :
119
118
return
120
119
if self .graph is not None and not self .graph .auto_update :
121
120
return
122
121
update_node_down_stream (self )
123
122
124
- def getData (self , port ):
123
+ def get_data (self , port ):
125
124
"""
126
125
Get node data by port.
127
126
Most time it will called by output nodes of the node.
@@ -135,7 +134,7 @@ def getData(self, port):
135
134
136
135
return self .get_property (port .name ())
137
136
138
- def getInputData (self , port ):
137
+ def get_input_data (self , port ):
139
138
"""
140
139
Get input data by input port name/index/object.
141
140
@@ -154,7 +153,7 @@ def getInputData(self, port):
154
153
return copy .deepcopy (self .defaultValue )
155
154
156
155
for from_port in from_ports :
157
- data = from_port .node ().getData (from_port )
156
+ data = from_port .node ().get_data (from_port )
158
157
return copy .deepcopy (data )
159
158
160
159
def when_disabled (self ):
@@ -164,16 +163,16 @@ def when_disabled(self):
164
163
165
164
num = max (0 , len (self .input_ports ())- 1 )
166
165
for index , out_port in enumerate (self .output_ports ()):
167
- self .model .set_property (out_port .name (), self .getInputData (min (index , num )))
166
+ self .model .set_property (out_port .name (), self .get_input_data (min (index , num )))
168
167
169
168
def cook (self ):
170
169
"""
171
170
The entry of the node evaluation.
172
171
Most time we need to call this method instead of AutoNode.run'.
173
172
"""
174
173
175
- _tmp = self .autoCook
176
- self .model .set_property ('autoCook ' , False )
174
+ _tmp = self .auto_cook
175
+ self .model .set_property ('auto_cook ' , False )
177
176
178
177
if self ._error :
179
178
self ._close_error ()
@@ -184,12 +183,12 @@ def cook(self):
184
183
except :
185
184
self .error (traceback .format_exc ())
186
185
187
- self .model .set_property ('autoCook ' , _tmp )
186
+ self .model .set_property ('auto_cook ' , _tmp )
188
187
189
188
if self ._error :
190
189
return
191
190
192
- self .cookTime = time .time () - _start_time
191
+ self .cook_time = time .time () - _start_time
193
192
194
193
self .cooked .emit ()
195
194
@@ -201,19 +200,19 @@ def run(self):
201
200
pass
202
201
203
202
def on_input_connected (self , to_port , from_port ):
204
- if self .checkPortType (to_port , from_port ):
203
+ if self .check_port_type (to_port , from_port ):
205
204
self .update_stream ()
206
205
else :
207
- self ._needCook = False
206
+ self .get_input_data = False
208
207
to_port .disconnect_from (from_port )
209
208
210
209
def on_input_disconnected (self , to_port , from_port ):
211
- if not self ._needCook :
212
- self ._needCook = True
210
+ if not self .get_input_data :
211
+ self .get_input_data = True
213
212
return
214
213
self .update_stream ()
215
214
216
- def checkPortType (self , to_port , from_port ):
215
+ def check_port_type (self , to_port , from_port ):
217
216
"""
218
217
Check whether the port_type of the to_port and from_type is matched.
219
218
@@ -272,13 +271,6 @@ def set_port_type(self, port, data_type: str):
272
271
conn_type = 'multi' if current_port .multi_connection () else 'single'
273
272
current_port .view .setToolTip ('{}: {} ({}) ' .format (current_port .name (), data_type , conn_type ))
274
273
275
- def create_property (self , name , value , items = None , range = None ,
276
- widget_type = NODE_PROP , tab = None , ext = None , funcs = None ):
277
- super (AutoNode , self ).create_property (name , value , items , range , widget_type , tab , ext , funcs )
278
-
279
- if value is not None :
280
- self .set_port_type (name , type (value ).__name__ )
281
-
282
274
def add_input (self , name = 'input' , data_type = 'None' , multi_input = False , display_name = True ,
283
275
color = None ):
284
276
new_port = super (AutoNode , self ).add_input (name , multi_input , display_name , color )
@@ -314,23 +306,6 @@ def _close_error(self):
314
306
self .set_property ('color' , self .get_property ('default_color' ))
315
307
self ._update_tool_tip ()
316
308
317
- def _show_error (self , message ):
318
- """
319
- Show the node error.
320
- It will change the node color and set error describe to the node tooltip.
321
-
322
- Args:
323
- message(str): the describe of the error.
324
- """
325
-
326
- if not self ._error :
327
- self .model .set_property ('default_color' , self .get_property ('color' ))
328
-
329
- self ._error = True
330
- self .set_property ('color' , self .errorColor )
331
- tooltip = '<font color="red"><br>({})</br></font>' .format (message )
332
- self ._update_tool_tip (tooltip )
333
-
334
309
def _update_tool_tip (self , message = None ):
335
310
"""
336
311
Update the node tooltip.
@@ -340,7 +315,7 @@ def _update_tool_tip(self, message=None):
340
315
"""
341
316
342
317
if message is None :
343
- tooltip = self ._toolTip .format (self ._cookTime )
318
+ tooltip = self ._toolTip .format (self ._cook_time )
344
319
else :
345
320
tooltip = '<b>{}</b>' .format (self .name ())
346
321
tooltip += message
@@ -358,14 +333,21 @@ def _setup_tool_tip(self):
358
333
tooltip = '<br> last cook used: {}s</br>'
359
334
return self ._update_tool_tip (tooltip )
360
335
361
- def error (self , message = None ):
336
+ def error (self , message ):
362
337
"""
363
- Set error message to node tooltip.
338
+ Change the node color and set error describe to the node tooltip.
364
339
365
340
Args:
366
341
message(str): the describe of the error.
367
342
"""
368
- self ._show_error (message )
343
+
344
+ if not self ._error :
345
+ self .model .set_property ('default_color' , self .get_property ('color' ))
346
+
347
+ self ._error = True
348
+ self .set_property ('color' , self .errorColor )
349
+ tooltip = '<font color="red"><br>({})</br></font>' .format (message )
350
+ self ._update_tool_tip (tooltip )
369
351
370
352
# def __del__(self):
371
353
# """
0 commit comments