Commit 7cfd72ab authored by AlexejStukov's avatar AlexejStukov Committed by ORD

Make subscribe method accept iterables, not only lists (#341)

* Made subscribe handle most iterable items 

like dicts, etc

* replaced try/except with isinstance
parent 962ab91c
...@@ -4,6 +4,7 @@ high level interface to subscriptions ...@@ -4,6 +4,7 @@ high level interface to subscriptions
import time import time
import logging import logging
from threading import Lock from threading import Lock
import collections
from opcua import ua from opcua import ua
from opcua.common import events from opcua.common import events
...@@ -197,9 +198,11 @@ class Subscription(object): ...@@ -197,9 +198,11 @@ class Subscription(object):
def _subscribe(self, nodes, attr, mfilter=None, queuesize=0): def _subscribe(self, nodes, attr, mfilter=None, queuesize=0):
is_list = True is_list = True
if not type(nodes) in (list, tuple): if isinstance(nodes, collections.Iterable):
is_list = False nodes = list(nodes)
else:
nodes = [nodes] nodes = [nodes]
is_list = False
mirs = [] mirs = []
for node in nodes: for node in nodes:
mir = self._make_monitored_item_request(node, attr, mfilter, queuesize) mir = self._make_monitored_item_request(node, attr, mfilter, queuesize)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment