Code Duplication    Length = 19-20 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 254-273 (lines=20) @@
251
            extobj = self._make_ext_obj(obj.value)
252
            return ua.Variant(extobj, getattr(ua.VariantType, obj.valuetype))
253
        else:
254
            return ua.Variant(obj.value, getattr(ua.VariantType, obj.valuetype))
255
256
    def add_variable_type(self, obj):
257
        node = self._get_node(obj)
258
        attrs = ua.VariableTypeAttributes()
259
        if obj.desc:
260
            attrs.Description = ua.LocalizedText(obj.desc)
261
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
262
        attrs.DataType = self.to_nodeid(obj.datatype)
263
        if obj.value and len(obj.value) == 1:
264
            attrs.Value = obj.value[0]
265
        if obj.rank:
266
            attrs.ValueRank = obj.rank
267
        if obj.abstract:
268
            attrs.IsAbstract = obj.abstract
269
        if obj.dimensions:
270
            attrs.ArrayDimensions = obj.dimensions
271
        node.NodeAttributes = attrs
272
        res = self.server.iserver.isession.add_nodes([node])
273
        self._add_refs(obj)
274
        res[0].StatusCode.check()
275
        return res[0].AddedNodeId
276
@@ 275-293 (lines=19) @@
272
        res = self.server.iserver.isession.add_nodes([node])
273
        self._add_refs(obj)
274
        res[0].StatusCode.check()
275
        return res[0].AddedNodeId
276
277
    def add_method(self, obj):
278
        node = self._get_node(obj)
279
        attrs = ua.MethodAttributes()
280
        if obj.desc:
281
            attrs.Description = ua.LocalizedText(obj.desc)
282
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
283
        if obj.accesslevel:
284
            attrs.AccessLevel = obj.accesslevel
285
        if obj.useraccesslevel:
286
            attrs.UserAccessLevel = obj.useraccesslevel
287
        if obj.minsample:
288
            attrs.MinimumSamplingInterval = obj.minsample
289
        if obj.dimensions:
290
            attrs.ArrayDimensions = obj.dimensions
291
        node.NodeAttributes = attrs
292
        res = self.server.iserver.isession.add_nodes([node])
293
        self._add_refs(obj)
294
        res[0].StatusCode.check()
295
        return res[0].AddedNodeId
296