Code Duplication    Length = 7-10 lines in 2 locations

opcua/common/subscription.py 1 location

@@ 315-324 (lines=10) @@
312
313
        # insert monitored item into map to avoid notification arrive before result return
314
        # server_handle is left as None in purpose as we don't get it yet.
315
        with self._lock:
316
            for mi in monitored_items:
317
                data = SubscriptionItemData()
318
                data.client_handle = mi.RequestedParameters.ClientHandle
319
                data.node = Node(self.server, mi.ItemToMonitor.NodeId)
320
                data.attribute = mi.ItemToMonitor.AttributeId
321
                data.mfilter = mi.RequestedParameters.Filter
322
                self._monitoreditems_map[mi.RequestedParameters.ClientHandle] = data
323
        results = self.server.create_monitored_items(params)
324
        mids = []
325
        # process result, add server_handle, or remove it if failed
326
        with self._lock:
327
            for idx, result in enumerate(results):

opcua/server/event.py 1 location

@@ 111-117 (lines=7) @@
108
109
            def __init__(self):
110
                super(CustomEvent, self).__init__(extended=True)
111
                self.EventType = node.nodeid
112
                curr_node = node
113
114
                while curr_node.nodeid.Identifier != parent_identifier:
115
                    for prop in curr_node.get_properties():
116
                        setattr(self, prop.get_browse_name().Name, prop.get_value())
117
                    parents = curr_node.get_referenced_nodes(refs=ua.ObjectIds.HasSubtype, direction=ua.BrowseDirection.Inverse, includesubtypes=False)
118
                    if len(parents) != 1: # Something went wrong
119
                        return None
120
                    curr_node = parents[0]