@@ -66,6 +66,27 @@ def __init__(self):
6666 self .errorMessage .setStandardButtons (QMessageBox .StandardButton .Ok )
6767
6868 def run_pipeline (self ):
69+
70+ invalid_blocks = []
71+
72+ for block , info in self .pipelineCanvas .block_data .items ():
73+ label = info .get ("label" , "" )
74+ if hasattr (block , "get_value" ):
75+ value = block .get_value ()
76+ elif hasattr (block , "dropdown" ):
77+ value = block .dropdown .currentText ()
78+ else :
79+ value = info .get ("path" ) or getattr (block , "value" , None )
80+
81+ if not value or (isinstance (value , str ) and not value .strip ()):
82+ invalid_blocks .append (label )
83+
84+ if invalid_blocks :
85+ msg = "Pipeline isn't set up correctly. Missing components:\n \n " + "\n " .join (f"- { label } " for label in invalid_blocks )
86+ self .errorMessage .setText (msg )
87+ self .errorMessage .exec ()
88+ return
89+
6990 blocks = self .pipelineCanvas .block_data
7091 if not blocks :
7192 self .errorMessage .setText ("Pipeline is empty!" )
@@ -175,7 +196,7 @@ def validate_pipeline_ready(self):
175196 value = block .dropdown .currentText ()
176197 else :
177198 value = info .get ("path" ) or getattr (block , "value" , None )
178-
199+
179200 if not value or (isinstance (value , str ) and not value .strip ()):
180201 all_valid = False
181202 break
0 commit comments