Code Duplication    Length = 17-18 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 113-130 (lines=18) @@
110
        if obj.dimensions:
111
            attrs.ArrayDimensions = obj.dimensions
112
        node.NodeAttributes = attrs
113
        self.server.add_nodes([node])
114
        self._add_refs(obj)
115
116
    def _add_variable_value(self, obj):
117
        """
118
        Returns the value for a Variable based on the objects valuetype. 
119
        """
120
        if obj.valuetype == 'ListOfLocalizedText':
121
            return ua.Variant([ua.LocalizedText(txt) for txt in obj.value], None)
122
        elif obj.valuetype == 'EnumValueType':
123
            values = []
124
            for ev in obj.value:
125
                enum_value = ua.EnumValueType()
126
                enum_value.DisplayName = ua.LocalizedText(ev['DisplayName'])
127
                enum_value.Description = ua.LocalizedText(ev['Description'])
128
                enum_value.Value = int(ev['Value'])
129
                values.append(enum_value)
130
            return values
131
        elif obj.valuetype == 'Argument':
132
            values = []
133
            for arg in obj.value:
@@ 132-148 (lines=17) @@
129
                values.append(enum_value)
130
            return values
131
        elif obj.valuetype == 'Argument':
132
            values = []
133
            for arg in obj.value:
134
                argument = ua.Argument()
135
                argument.Name = arg['Name']
136
                argument.Description = ua.LocalizedText(arg['Description'])
137
                argument.DataType = self.to_nodeid(arg['DataType'])
138
                argument.ValueRank = int(arg['ValueRank'])
139
                argument.ArrayDimensions = arg['ArrayDimensions']
140
                values.append(argument)
141
            return values
142
143
        return ua.Variant(obj.value, getattr(ua.VariantType, obj.valuetype))
144
145
146
    def add_variable_type(self, obj):
147
        node = self._get_node(obj)
148
        attrs = ua.VariableTypeAttributes()
149
        if obj.desc:
150
            attrs.Description = ua.LocalizedText(obj.desc)
151
        attrs.DisplayName = ua.LocalizedText(obj.displayname)