Code Duplication    Length = 34-35 lines in 2 locations

opcua/tools.py 2 locations

@@ 259-293 (lines=35) @@
256
    sys.exit(0)
257
    print(args)
258
259
260
def uals():
261
    parser = argparse.ArgumentParser(description="Browse OPC-UA node and print result")
262
    add_common_args(parser)
263
    parser.add_argument("-l",
264
                        dest="long_format",
265
                        const=3,
266
                        nargs="?",
267
                        type=int,
268
                        help="use a long listing format")
269
    parser.add_argument("-d",
270
                        "--depth",
271
                        default=1,
272
                        type=int,
273
                        help="Browse depth")
274
275
    args = parse_args(parser)
276
    if args.long_format is None:
277
        args.long_format = 1
278
279
    client = Client(args.url, timeout=args.timeout)
280
    client.set_security_string(args.security)
281
    client.connect()
282
    try:
283
        node = get_node(client, args)
284
        print("Browsing node {0} at {1}\n".format(node, args.url))
285
        if args.long_format == 0:
286
            _lsprint_0(node, args.depth - 1)
287
        elif args.long_format == 1:
288
            _lsprint_1(node, args.depth - 1)
289
        else:
290
            _lsprint_long(node, args.depth - 1)
291
    finally:
292
        client.disconnect()
293
    sys.exit(0)
294
    print(args)
295
296
@@ 95-128 (lines=34) @@
92
        node = node.get_child(path)
93
    return node
94
95
96
def uaread():
97
    parser = argparse.ArgumentParser(description="Read attribute of a node, per default reads value of a node")
98
    add_common_args(parser)
99
    parser.add_argument("-a",
100
                        "--attribute",
101
                        dest="attribute",
102
                        type=int,
103
                        default=ua.AttributeIds.Value,
104
                        help="Set attribute to read")
105
    parser.add_argument("-t",
106
                        "--datatype",
107
                        dest="datatype",
108
                        default="python",
109
                        choices=['python', 'variant', 'datavalue'],
110
                        help="Data type to return")
111
112
    args = parse_args(parser, requirenodeid=True)
113
114
    client = Client(args.url, timeout=args.timeout)
115
    client.set_security_string(args.security)
116
    client.connect()
117
    try:
118
        node = get_node(client, args)
119
        attr = node.get_attribute(args.attribute)
120
        if args.datatype == "python":
121
            print(attr.Value.Value)
122
        elif args.datatype == "variant":
123
            print(attr.Value)
124
        else:
125
            print(attr)
126
    finally:
127
        client.disconnect()
128
    sys.exit(0)
129
    print(args)
130
131