def createOutputPin(self, pinName, dataType, defaultValue=None, foo=None, structure=PinStructure.Single, constraint=None, structConstraint=None, allowedPins=[]): pinName = self.getUniqPinName(pinName) p = CreateRawPin(pinName, self, dataType, PinDirection.Output) p.structureType = structure if structure == PinStructure.Array: p.initAsArray(True) elif structure == PinStructure.Multi: p.enableOptions(PinOptions.ArraySupported) if foo: p.onExecute.connect(foo, weak=False) if defaultValue is not None: p.setDefaultValue(defaultValue) p.setData(defaultValue) if dataType == "AnyPin" and allowedPins: def supportedDataTypes(): return allowedPins p.supportedDataTypes = supportedDataTypes if constraint is not None: p.updateConstraint(constraint) if structConstraint is not None: p.updatestructConstraint(structConstraint) return p
def createOutputPin(self, pinName, dataType, defaultValue=None, structure=PinStructure.Single, constraint=None, structConstraint=None, supportedPinDataTypes=[], group=""): """Creates output pin :param pinName: Pin name :type pinName: str :param dataType: Pin data type :type dataType: str :param defaultValue: Pin default value :type defaultValue: object :param structure: Pin structure :type structure: :class:`~PyFlow.Core.Common.PinStructure.Single` :param constraint: Pin constraint. Should be any hashable type. We use str :type constraint: object :param structConstraint: Pin struct constraint. Also should be hashable type :type structConstraint: object :param supportedPinDataTypes: List of allowed pin data types to be connected. Used by AnyPin :type supportedPinDataTypes: list(str) :param group: Pin group. Used only by ui wrapper :type group: str """ pinName = self.getUniqPinName(pinName) p = CreateRawPin(pinName, self, dataType, PinDirection.Output) p.structureType = structure p.group = group if structure == PinStructure.Array: p.initAsArray(True) elif structure == PinStructure.Dict: p.initAsDict(True) elif structure == PinStructure.Multi: p.enableOptions(PinOptions.ArraySupported) if defaultValue is not None or dataType == "AnyPin": p.setDefaultValue(defaultValue) p.setData(defaultValue) if dataType == "AnyPin": p.setTypeFromData(defaultValue) else: p.setDefaultValue(getPinDefaultValueByType(dataType)) if dataType == "AnyPin" and supportedPinDataTypes: def supportedDataTypes(): return supportedPinDataTypes p.supportedDataTypes = supportedDataTypes if constraint is not None: p.updateConstraint(constraint) if structConstraint is not None: p.updateStructConstraint(structConstraint) return p
def createInputPin(self, pinName, dataType, defaultValue=None, foo=None, structure=PinStructure.Single, constraint=None, structConstraint=None, allowedPins=[], group=""): # check unique name pinName = self.getUniqPinName(pinName) p = CreateRawPin(pinName, self, dataType, PinDirection.Input) p.structureType = structure p.group = group if structure == PinStructure.Array: p.initAsArray(True) elif structure == PinStructure.Dict: p.initAsDict(True) elif structure == PinStructure.Multi: p.enableOptions(PinOptions.ArraySupported) if foo: p.onExecute.connect(foo, weak=False) if defaultValue is not None or dataType == "AnyPin": p.setDefaultValue(defaultValue) p.setData(defaultValue) if dataType == "AnyPin": p.setTypeFromData(defaultValue) else: p.setDefaultValue(getPinDefaultValueByType(dataType)) if dataType == "AnyPin" and allowedPins: def supportedDataTypes(): return allowedPins p._supportedDataTypes = p._defaultSupportedDataTypes = tuple( allowedPins) p.supportedDataTypes = supportedDataTypes if constraint is not None: p.updateConstraint(constraint) if structConstraint is not None: p.updatestructConstraint(structConstraint) return p
def createInputPin(self, pinName, dataType, defaultValue=None, foo=None, structure=PinStructure.Single, constraint=None, structConstraint=None, allowedPins=[]): # if dataType == 'ExecPin': # assert(foo is not None), "Invalid parameters for input exec pin. Call function must be specified" # check unique name pinName = self.getUniqPinName(pinName) p = CreateRawPin(pinName, self, dataType, PinDirection.Input) p.direction = PinDirection.Input p.structureType = structure if structure == PinStructure.Array: p.initAsArray(True) elif structure == PinStructure.Multi: p.enableOptions(PinOptions.ArraySupported) if foo: # p.call = foo p.onExecute.connect(foo, weak=False) if defaultValue is not None: p.setDefaultValue(defaultValue) p.setData(defaultValue) if dataType == "AnyPin" and allowedPins: def supportedDataTypes(): return allowedPins p._supportedDataTypes = p._defaultSupportedDataTypes = tuple( allowedPins) p.supportedDataTypes = supportedDataTypes if constraint is not None: p.updateConstraint(constraint) if structConstraint is not None: p.updatestructConstraint(structConstraint) return p
def createInputPin(self, pinName, dataType, defaultValue=None, foo=None, structure=StructureType.Single, constraint=None, structConstraint=None, supportedPinDataTypes=[], group=""): """Creates input pin :param pinName: Pin name :type pinName: str :param dataType: Pin data type :type dataType: str :param defaultValue: Pin default value :type defaultValue: object :param foo: Pin callback. used for exec pins :type foo: function :param structure: Pin structure :type structure: :class:`~PyFlow.Core.Common.StructureType.Single` :param constraint: Pin constraint. Should be any hashable type. We use str :type constraint: object :param structConstraint: Pin struct constraint. Also should be hashable type :type structConstraint: object :param supportedPinDataTypes: List of allowed pin data types to be connected. Used by AnyPin :type supportedPinDataTypes: list(str) :param group: Pin group. Used only by ui wrapper :type group: str """ pinName = self.getUniqPinName(pinName) p = CreateRawPin(pinName, self, dataType, PinDirection.Input) p.structureType = structure p.group = group if structure == StructureType.Array: p.initAsArray(True) elif structure == StructureType.Dict: p.initAsDict(True) elif structure == StructureType.Multi: p.enableOptions(PinOptions.ArraySupported) if foo: p.onExecute.connect(foo, weak=False) if defaultValue is not None or dataType == "AnyPin": p.setDefaultValue(defaultValue) p.setData(defaultValue) if dataType == "AnyPin": p.setTypeFromData(defaultValue) else: p.setDefaultValue(getPinDefaultValueByType(dataType)) if dataType == "AnyPin" and supportedPinDataTypes: def supportedDataTypes(): return supportedPinDataTypes p._supportedDataTypes = p._defaultSupportedDataTypes = tuple( supportedPinDataTypes) p.supportedDataTypes = supportedDataTypes if constraint is not None: p.updateConstraint(constraint) if structConstraint is not None: p.updateStructConstraint(structConstraint) p.dataBeenSet.connect(self.setDirty.send) p.markedAsDirty.connect(self.setDirty.send) return p