Code Duplication    Length = 16-16 lines in 2 locations

opcua/common/node.py 2 locations

@@ 408-423 (lines=16) @@
405
        result = self.history_read_events(details)
406
        return result.HistoryData.Events
407
408
    def history_read_events(self, details):
409
        """
410
        Read event history of a node, low-level function
411
        result code from server is checked and an exception is raised in case of error
412
        """
413
        valueid = ua.HistoryReadValueId()
414
        valueid.NodeId = self.nodeid
415
        valueid.IndexRange = ''
416
417
        params = ua.HistoryReadParameters()
418
        params.HistoryReadDetails = details
419
        params.TimestampsToReturn = ua.TimestampsToReturn.Both
420
        params.ReleaseContinuationPoints = False
421
        params.NodesToRead.append(valueid)
422
        result = self.server.history_read(params)[0]
423
        return result
424
425
    # Hack for convenience methods
426
    # local import is ugly but necessary for python2 support
@@ 363-378 (lines=16) @@
360
        result = self.history_read(details)
361
        return result.HistoryData.DataValues
362
363
    def history_read(self, details):
364
        """
365
        Read raw history of a node, low-level function
366
        result code from server is checked and an exception is raised in case of error
367
        """
368
        valueid = ua.HistoryReadValueId()
369
        valueid.NodeId = self.nodeid
370
        valueid.IndexRange = ''
371
372
        params = ua.HistoryReadParameters()
373
        params.HistoryReadDetails = details
374
        params.TimestampsToReturn = ua.TimestampsToReturn.Both
375
        params.ReleaseContinuationPoints = False
376
        params.NodesToRead.append(valueid)
377
        result = self.server.history_read(params)[0]
378
        return result
379
380
    def read_event_history(self, evfilter, starttime=None, endtime=None, numvalues=0):
381
        """