Code Duplication    Length = 17-19 lines in 2 locations

opcua/common/manage_nodes.py 2 locations

@@ 281-299 (lines=19) @@
278
    attrs = ua.DataTypeAttributes()
279
    attrs.Description = ua.LocalizedText(qname.Name)
280
    attrs.DisplayName = ua.LocalizedText(qname.Name)
281
    attrs.WriteMask = 0
282
    attrs.UserWriteMask = 0
283
    attrs.Historizing = 0
284
    attrs.IsAbstract = False  # True mean they cannot be instanciated
285
    addnode.NodeAttributes = attrs
286
    results = server.add_nodes([addnode])
287
    results[0].StatusCode.check()
288
    return results[0].AddedNodeId
289
290
291
def _create_method(parent, nodeid, qname, callback, inputs, outputs):
292
    addnode = ua.AddNodesItem()
293
    addnode.RequestedNewNodeId = nodeid
294
    addnode.BrowseName = qname
295
    addnode.NodeClass = ua.NodeClass.Method
296
    addnode.ParentNodeId = parent.nodeid
297
    addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasComponent)
298
    #node.TypeDefinition = ua.NodeId(ua.ObjectIds.BaseObjectType)
299
    attrs = ua.MethodAttributes()
300
    attrs.Description = ua.LocalizedText(qname.Name)
301
    attrs.DisplayName = ua.LocalizedText(qname.Name)
302
    attrs.WriteMask = 0
@@ 182-198 (lines=17) @@
179
    attrs.IsAbstract = False
180
    attrs.Description = ua.LocalizedText(qname.Name)
181
    attrs.DisplayName = ua.LocalizedText(qname.Name)
182
    attrs.WriteMask = 0
183
    attrs.UserWriteMask = 0
184
    addnode.NodeAttributes = attrs
185
    results = server.add_nodes([addnode])
186
    results[0].StatusCode.check()
187
    return results[0].AddedNodeId
188
189
190
def _to_variant(val, vtype=None):
191
    return _to_variant_with_datatype(val, vtype, datatype=None)[0]
192
193
194
def _to_variant_with_datatype(val, vtype=None, datatype=None):
195
    if isinstance(val, ua.Variant):
196
        if vtype:
197
            datatype = vtype
198
        return val, datatype
199
    else:
200
        return ua.Variant(val, vtype), datatype
201