@@ -127,6 +127,7 @@ def __init__(self, name=None, config=None, server=None, operator=None):
127127 self ._internal_obj = None
128128 self ._description = None
129129 self ._inputs = None
130+ self ._id = None
130131
131132 # step 1: get server
132133 self ._server = server_module .get_or_create_server (
@@ -241,7 +242,7 @@ def progress_bar(self) -> bool:
241242 def progress_bar (self , value : bool ) -> None :
242243 self ._progress_bar = value
243244
244- def connect (self , pin , inpt , pin_out = 0 ):
245+ def connect (self , pin , inpt , pin_out = 0 , operator_as_input = False ):
245246 """Connect an input on the operator using a pin number.
246247
247248 Parameters
@@ -275,7 +276,10 @@ def connect(self, pin, inpt, pin_out=0):
275276 if inpt is self :
276277 raise ValueError ("Cannot connect to itself." )
277278 elif isinstance (inpt , Operator ):
278- self ._api .operator_connect_operator_output (self , pin , inpt , pin_out )
279+ if operator_as_input :
280+ self ._api .operator_connect_operator_as_input (self , pin , inpt )
281+ else :
282+ self ._api .operator_connect_operator_output (self , pin , inpt , pin_out )
279283 elif isinstance (inpt , Output ):
280284 self ._api .operator_connect_operator_output (self , pin , inpt ._operator , inpt ._pin )
281285 elif isinstance (inpt , list ):
@@ -657,6 +661,15 @@ def config(self, value):
657661 """
658662 self ._api .operator_set_config (self , value )
659663
664+ @property
665+ def id (self ):
666+ if self ._id is None :
667+ operator_id_op = Operator ("operator_id" )
668+ operator_id_op .inputs .operator .connect (self , operator_as_input = True )
669+ self ._id = operator_id_op .outputs .id ()
670+
671+ return self ._id
672+
660673 @property
661674 def inputs (self ):
662675 """Inputs connected to the operator.
0 commit comments