Code Duplication    Length = 18-19 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 273-291 (lines=19) @@
270
        else:
271
            return ua.Variant(obj.value, getattr(ua.VariantType, obj.valuetype))
272
273
    def add_variable_type(self, obj):
274
        node = self._get_node(obj)
275
        attrs = ua.VariableTypeAttributes()
276
        if obj.desc:
277
            attrs.Description = ua.LocalizedText(obj.desc)
278
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
279
        attrs.DataType = self.to_nodeid(obj.datatype)
280
        if obj.value and len(obj.value) == 1:
281
            attrs.Value = obj.value[0]
282
        if obj.rank:
283
            attrs.ValueRank = obj.rank
284
        if obj.abstract:
285
            attrs.IsAbstract = obj.abstract
286
        if obj.dimensions:
287
            attrs.ArrayDimensions = obj.dimensions
288
        node.NodeAttributes = attrs
289
        res = self.server.add_nodes([node])
290
        self._add_refs(obj)
291
        return res[0].AddedNodeId
292
293
    def add_method(self, obj):
294
        node = self._get_node(obj)
@@ 293-310 (lines=18) @@
290
        self._add_refs(obj)
291
        return res[0].AddedNodeId
292
293
    def add_method(self, obj):
294
        node = self._get_node(obj)
295
        attrs = ua.MethodAttributes()
296
        if obj.desc:
297
            attrs.Description = ua.LocalizedText(obj.desc)
298
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
299
        if obj.accesslevel:
300
            attrs.AccessLevel = obj.accesslevel
301
        if obj.useraccesslevel:
302
            attrs.UserAccessLevel = obj.useraccesslevel
303
        if obj.minsample:
304
            attrs.MinimumSamplingInterval = obj.minsample
305
        if obj.dimensions:
306
            attrs.ArrayDimensions = obj.dimensions
307
        node.NodeAttributes = attrs
308
        res = self.server.add_nodes([node])
309
        self._add_refs(obj)
310
        return res[0].AddedNodeId
311
312
    def add_reference_type(self, obj):
313
        node = self._get_node(obj)