Code Duplication    Length = 11-12 lines in 3 locations

opcua/common/xmlimporter.py 3 locations

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