From 227a6ce2b42fc9a59e2421788c698d0131d94e15 Mon Sep 17 00:00:00 2001 From: Evan Jeffrey Date: Mon, 2 May 2016 12:43:19 -0700 Subject: [PATCH 1/4] Make signals class attributes instead of instance attributes --- datavault/server.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/datavault/server.py b/datavault/server.py index e3dda336..5bbd3e3e 100644 --- a/datavault/server.py +++ b/datavault/server.py @@ -13,21 +13,20 @@ class DataVault(LabradServer): name = 'Data Vault' + # session signals + onNewDir = Signal(543617, 'signal: new dir', 's') + onNewDataset = Signal(543618, 'signal: new dataset', 's') + onTagsUpdated = Signal(543622, 'signal: tags updated', '*(s*s)*(s*s)') + + # dataset signals + onDataAvailable = Signal(543619, 'signal: data available', '') + onNewParameter = Signal(543620, 'signal: new parameter', '') + onCommentsAvailable = Signal(543621, 'signal: comments available', '') + def __init__(self, session_store): LabradServer.__init__(self) - self.session_store = session_store - # session signals - self.onNewDir = Signal(543617, 'signal: new dir', 's') - self.onNewDataset = Signal(543618, 'signal: new dataset', 's') - self.onTagsUpdated = Signal(543622, 'signal: tags updated', '*(s*s)*(s*s)') - - # dataset signals - self.onDataAvailable = Signal(543619, 'signal: data available', '') - self.onNewParameter = Signal(543620, 'signal: new parameter', '') - self.onCommentsAvailable = Signal(543621, 'signal: comments available', '') - def initServer(self): # create root session _root = self.session_store.get(['']) From dce2643574368515a14694bf136ae82a2cb9db6b Mon Sep 17 00:00:00 2001 From: Matthew Neeley Date: Tue, 19 Apr 2016 15:13:45 -0700 Subject: [PATCH 2/4] datavault: Fix labrad_urlencode to work with new FlatData type The FlatData type is a namedtuple that replaces the plain tuple returned by older versions of pylabrad when flattening data. We modify the labrad_urlencode method to use names of the FlatData items if possible, rather than explicitly unpacking the tuple. This lets us maintain compatibility with changes in 0.95.2 which added a third endianness member to the FlatData tuple. --- datavault/backend.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/datavault/backend.py b/datavault/backend.py index 3fb1cb8a..c3d99cb9 100644 --- a/datavault/backend.py +++ b/datavault/backend.py @@ -40,9 +40,15 @@ def time_from_str(s): return datetime.datetime.strptime(s, TIME_FORMAT) def labrad_urlencode(data): - data_bytes, t = T.flatten(data) - all_bytes, _ = T.flatten((str(t), data_bytes), 'ss') - data_url = DATA_URL_PREFIX + base64.urlsafe_b64encode(all_bytes) + if hasattr(T, 'FlatData'): + # pylabrad 0.95+ + flat_data = T.flatten(data) + flat_bytes = T.flatten((str(flat_data.tag), flat_data.bytes), 'sy') + bytes = flat_bytes.bytes + else: + data_bytes, t = T.flatten(data) + bytes, _ = T.flatten((str(t), data_bytes), 'ss') + data_url = DATA_URL_PREFIX + base64.urlsafe_b64encode(bytes) return data_url def labrad_urldecode(data_url): From 7206072a748ff4f0c9fe9522804efdcdf7504d33 Mon Sep 17 00:00:00 2001 From: Matthew Neeley Date: Tue, 19 Apr 2016 15:28:35 -0700 Subject: [PATCH 3/4] Rename some variables --- datavault/backend.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/datavault/backend.py b/datavault/backend.py index c3d99cb9..c93a1186 100644 --- a/datavault/backend.py +++ b/datavault/backend.py @@ -43,12 +43,12 @@ def labrad_urlencode(data): if hasattr(T, 'FlatData'): # pylabrad 0.95+ flat_data = T.flatten(data) - flat_bytes = T.flatten((str(flat_data.tag), flat_data.bytes), 'sy') - bytes = flat_bytes.bytes + flat_cluster = T.flatten((str(flat_data.tag), flat_data.bytes), 'sy') + all_bytes = flat_cluster.bytes else: data_bytes, t = T.flatten(data) - bytes, _ = T.flatten((str(t), data_bytes), 'ss') - data_url = DATA_URL_PREFIX + base64.urlsafe_b64encode(bytes) + all_bytes, _ = T.flatten((str(t), data_bytes), 'ss') + data_url = DATA_URL_PREFIX + base64.urlsafe_b64encode(all_bytes) return data_url def labrad_urldecode(data_url): From cea45e5592f57a50720bb39e7fa68ca583044576 Mon Sep 17 00:00:00 2001 From: Evan Jeffrey Date: Mon, 2 May 2016 14:36:02 -0700 Subject: [PATCH 4/4] Fix test for flatten tuple --- tests/test_datavault.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/test_datavault.py b/tests/test_datavault.py index 058c89d8..e4795385 100644 --- a/tests/test_datavault.py +++ b/tests/test_datavault.py @@ -239,10 +239,9 @@ def test_parameters(dv): name = 'param{}'.format(i) dv.add_parameter(name, a) b = dv.get_parameter(name) - sa, ta = T.flatten(a) - sb, tb = T.flatten(b) - assert ta == tb - assert sa == sb + flat_a = T.flatten(a) + flat_b = T.flatten(b) + assert flat_a == flat_b # Test asynchronous notification signals.