Code Duplication    Length = 11-12 lines in 3 locations

opcua/common/xmlimporter.py 3 locations

@@ 207-218 (lines=12) @@
204
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
205
        attrs.DataType = self.to_nodeid(obj.datatype)
206
        if obj.value and len(obj.value) == 1:
207
            attrs.Value = obj.value[0]
208
        if obj.rank:
209
            attrs.ValueRank = obj.rank
210
        if obj.abstract:
211
            attrs.IsAbstract = obj.abstract
212
        if obj.dimensions:
213
            attrs.ArrayDimensions = obj.dimensions
214
        node.NodeAttributes = attrs
215
        res = self.server.add_nodes([node])
216
        self._add_refs(obj)
217
        return res[0].AddedNodeId
218
219
    def add_method(self, obj):
220
        node = self._get_node(obj)
221
        attrs = ua.MethodAttributes()
@@ 85-95 (lines=11) @@
82
        elif "=" in nodeid:
83
            return ua.NodeId.from_string(nodeid)
84
        elif hasattr(ua.ObjectIds, nodeid):
85
            return ua.NodeId(getattr(ua.ObjectIds, nodeid))
86
        else:
87
            if nodeid in self.parser.aliases:
88
                nodeid = self.parser.aliases[nodeid]
89
            else:
90
                nodeid = "i={}".format(getattr(ua.ObjectIds, nodeid))
91
            return ua.NodeId.from_string(nodeid)
92
93
    def add_object(self, obj):
94
        node = self._get_node(obj)
95
        attrs = ua.ObjectAttributes()
96
        if obj.desc:
97
            attrs.Description = ua.LocalizedText(obj.desc)
98
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
@@ 73-83 (lines=11) @@
70
        node.NodeClass = getattr(ua.NodeClass, obj.nodetype[2:])
71
        if obj.parent:
72
            node.ParentNodeId = ua.NodeId.from_string(obj.parent)
73
        if obj.parentlink:
74
            node.ReferenceTypeId = self.to_nodeid(obj.parentlink)
75
        if obj.typedef:
76
            node.TypeDefinition = ua.NodeId.from_string(obj.typedef)
77
        return node
78
79
    def to_nodeid(self, nodeid):
80
        if not nodeid:
81
            return ua.NodeId(ua.ObjectIds.String)
82
        elif "=" in nodeid:
83
            return ua.NodeId.from_string(nodeid)
84
        elif hasattr(ua.ObjectIds, nodeid):
85
            return ua.NodeId(getattr(ua.ObjectIds, nodeid))
86
        else: