From 889fcefd4c99e4d72e1eec9b18c8487136fef213 Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Mon, 24 Jul 2017 15:43:10 -0400 Subject: [PATCH 1/9] DEV: Updated shutter test for cycles --- xpdsim/dets.py | 41 +++++++++------------------------------ xpdsim/tests/test_dets.py | 3 ++- 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/xpdsim/dets.py b/xpdsim/dets.py index b243426..344b1ea 100644 --- a/xpdsim/dets.py +++ b/xpdsim/dets.py @@ -23,7 +23,6 @@ from cycler import cycler from pims import ImageSequence from pkg_resources import resource_filename as rs_fn -from bluesky.utils import new_uid DATA_DIR = rs_fn('xpdsim', 'data/') @@ -75,39 +74,17 @@ def __init__(self, name, read_fields, fs, shutter=None, else: self._dark_fields = None - def trigger(self): + def trigger_read(self): if self.shutter and self._dark_fields and \ - self.shutter.read()['rad']['value'] == 0: - read_v = {field: {'value': func(), 'timestamp': ttime.time()} - for field, func in self._dark_fields.items() - if field in self.read_attrs} - self._result.clear() - for idx, (name, reading) in enumerate(read_v.items()): - # Save the actual reading['value'] to disk and create a record - # in FileStore. - np.save('{}_{}.npy'.format(self._path_stem, idx), - reading['value']) - datum_id = new_uid() - self.fs.insert_datum(self._resource_id, datum_id, - dict(index=idx)) - # And now change the reading in place, replacing the value with - # a reference to FileStore. - reading['value'] = datum_id - self._result[name] = reading - - delay_time = self.exposure_time - if delay_time: - if self.loop.is_running(): - st = be.SimpleStatus() - self.loop.call_later(delay_time, st._finished) - return st - else: - ttime.sleep(delay_time) - - return be.NullStatus() - + self.shutter.read()['rad']['value'] == 0: + rv = {field: {'value': func(), 'timestamp': ttime.time()} + for field, func in self._dark_fields.items() + if field in self.read_attrs} else: - return super().trigger() + rv = super().trigger_read() + read_v = dict(rv) + read_v['pe1_image']['value'] = read_v['pe1_image']['value'].copy() + return read_v def build_image_cycle(path): diff --git a/xpdsim/tests/test_dets.py b/xpdsim/tests/test_dets.py index d7c4f27..72221cd 100644 --- a/xpdsim/tests/test_dets.py +++ b/xpdsim/tests/test_dets.py @@ -41,12 +41,13 @@ def test_dets_shutter(db, tmp_dir, name, fp): for n, d in db.restream(db[-1], fill=True): if n == 'event': assert_array_equal(d['data']['pe1_image'], - np.zeros(next(cg)['pe1_image'].shape)) + np.zeros(d['data']['pe1_image'].shape)) assert uid is not None # With the shutter up RE(abs_set(shctl1, 1, wait=True)) uid = RE(scan) + next(cg) for n, d in db.restream(db[-1], fill=True): if n == 'event': assert_array_equal(d['data']['pe1_image'], next(cg)['pe1_image']) From df30ff3e2c00afeefbaf1823028354355a41972d Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 11:07:47 -0400 Subject: [PATCH 2/9] ENH: Added bluesky install to travis --- .travis.yml | 1 + xpdsim/dets.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 5dbf2ec..9ad54b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,6 +57,7 @@ install: - source activate testenv - 'pip install https://github.com/NSLS-II/portable-mds/zipball/master#egg=portable_mds' - 'pip install https://github.com/NSLS-II/portable-fs/zipball/master#egg=portable_fs' + 'pip install https://github.com/NSLS-II/bluesky/zipball/master#egg=bluesky' - python setup.py install # Need to clean the python build directory (and other cruft) or pytest is # going to find the build directory and get confused why there are two sets diff --git a/xpdsim/dets.py b/xpdsim/dets.py index 344b1ea..0252831 100644 --- a/xpdsim/dets.py +++ b/xpdsim/dets.py @@ -80,6 +80,8 @@ def trigger_read(self): rv = {field: {'value': func(), 'timestamp': ttime.time()} for field, func in self._dark_fields.items() if field in self.read_attrs} + print('======Triggered shutter======') + print(rv) else: rv = super().trigger_read() read_v = dict(rv) From c83908f2cf8050cbdedcc61a87811326eba072e7 Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 11:13:14 -0400 Subject: [PATCH 3/9] STY: Fixed travis bluesky install syntax --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9ad54b8..54e838a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,7 +57,7 @@ install: - source activate testenv - 'pip install https://github.com/NSLS-II/portable-mds/zipball/master#egg=portable_mds' - 'pip install https://github.com/NSLS-II/portable-fs/zipball/master#egg=portable_fs' - 'pip install https://github.com/NSLS-II/bluesky/zipball/master#egg=bluesky' + - 'pip install https://github.com/NSLS-II/bluesky/zipball/master#egg=bluesky' - python setup.py install # Need to clean the python build directory (and other cruft) or pytest is # going to find the build directory and get confused why there are two sets From 9df22df7fe3c155a1d047c7cdf9a03e0a0919a3b Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 13:11:45 -0400 Subject: [PATCH 4/9] BUG: Rmcd bluesky from travis' conda install sxn --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 54e838a..d7e6cde 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,7 @@ before_install: install: - export GIT_FULL_HASH=`git rev-parse HEAD` - - conda create -n testenv nose python=$TRAVIS_PYTHON_VERSION pytest coverage pip databroker bluesky flake8 pyFAI mongoquery codecov attrs metadatastore filestore -c conda-forge -c lightsource2-tag -c soft-matter + - conda create -n testenv nose python=$TRAVIS_PYTHON_VERSION pytest coverage pip databroker flake8 pyFAI mongoquery codecov attrs metadatastore filestore -c conda-forge -c lightsource2-tag -c soft-matter - source activate testenv - 'pip install https://github.com/NSLS-II/portable-mds/zipball/master#egg=portable_mds' - 'pip install https://github.com/NSLS-II/portable-fs/zipball/master#egg=portable_fs' From 86ecc88538a9deedb449f299311773d3cd12869a Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 13:37:39 -0400 Subject: [PATCH 5/9] ENH: ImportError exclusion --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index 7baf518..0f5ea01 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,4 +10,5 @@ omit = *_version.py exclude_lines = + raise ImportError if __name__ == '__main__': From b9dd8a3a8668a2a545d11923691026f4091c63fc Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 13:59:45 -0400 Subject: [PATCH 6/9] BUG: Exclude try block in conftest.py --- .coveragerc | 1 - xpdsim/tests/conftest.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.coveragerc b/.coveragerc index 0f5ea01..7baf518 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,5 +10,4 @@ omit = *_version.py exclude_lines = - raise ImportError if __name__ == '__main__': diff --git a/xpdsim/tests/conftest.py b/xpdsim/tests/conftest.py index 77b0743..429872b 100644 --- a/xpdsim/tests/conftest.py +++ b/xpdsim/tests/conftest.py @@ -28,7 +28,7 @@ [build_pymongo_backed_broker, build_sqlite_backed_broker], ['metadatastore', 'portable_mds']): - try: + try: # pragma: no cover importlib.import_module(mod) except ImportError: pass From 766ef7084034f8a0dee4f4325c1611a965bb6de1 Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 14:13:13 -0400 Subject: [PATCH 7/9] BUG: Exclude except clause in conftest.py --- xpdsim/tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xpdsim/tests/conftest.py b/xpdsim/tests/conftest.py index 429872b..e1221c6 100644 --- a/xpdsim/tests/conftest.py +++ b/xpdsim/tests/conftest.py @@ -30,7 +30,7 @@ ['metadatastore', 'portable_mds']): try: # pragma: no cover importlib.import_module(mod) - except ImportError: + except ImportError: # pragma: no cover pass else: params.append(name) From 52dfac0b277fa10ae435a1a5c822d3f38c89f188 Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 14:53:42 -0400 Subject: [PATCH 8/9] ENH: exluded ImportError from .coveragerc --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index 7baf518..9d27189 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,4 +10,5 @@ omit = *_version.py exclude_lines = + raise ImportError if __name__ == '__main__': From 299698af96594aa66295174b800f38079156ddff Mon Sep 17 00:00:00 2001 From: Brooke Ferber Date: Tue, 25 Jul 2017 15:38:15 -0400 Subject: [PATCH 9/9] ENH: Added pragma: no cover to the pass line --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index 9d27189..be47e62 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,5 +10,6 @@ omit = *_version.py exclude_lines = + pragma: no cover raise ImportError if __name__ == '__main__':