Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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