Code Duplication    Length = 15-16 lines in 2 locations

asyncua/common/manage_nodes.py 2 locations

@@ 91-106 (lines=16) @@
88
    )
89
90
91
async def create_variable(parent, nodeid, bname, val, varianttype=None, datatype=None):
92
    """
93
    create a child node variable
94
    args are nodeid, browsename, value, [variant type], [data type]
95
    or idx, name, value, [variant type], [data type]
96
    """
97
    nodeid, qname = _parse_nodeid_qname(nodeid, bname)
98
    var = ua.Variant(val, varianttype)
99
    if datatype and isinstance(datatype, int):
100
        datatype = ua.NodeId(datatype, 0)
101
    if datatype and not isinstance(datatype, ua.NodeId):
102
        raise RuntimeError("datatype argument must be a nodeid or an int refering to a nodeid")
103
104
    return make_node(
105
        parent.server,
106
        await _create_variable(parent.server, parent.nodeid, nodeid, qname, var, datatype=datatype, isproperty=False)
107
    )
108
109
@@ 73-87 (lines=15) @@
70
        )
71
72
73
async def create_property(parent, nodeid, bname, val, varianttype=None, datatype=None):
74
    """
75
    create a child node property
76
    args are nodeid, browsename, value, [variant type]
77
    or idx, name, value, [variant type]
78
    """
79
    nodeid, qname = _parse_nodeid_qname(nodeid, bname)
80
    var = ua.Variant(val, varianttype)
81
    if datatype and isinstance(datatype, int):
82
        datatype = ua.NodeId(datatype, 0)
83
    if datatype and not isinstance(datatype, ua.NodeId):
84
        raise RuntimeError("datatype argument must be a nodeid or an int refering to a nodeid")
85
    return make_node(
86
        parent.server,
87
        await _create_variable(parent.server, parent.nodeid, nodeid, qname, var, datatype=datatype, isproperty=True)
88
    )
89
90