bluesky: Exception trace from flyer example

received this exception while trying the flyer example:

AttributeError: 'Legend' object has no attribute 'set_draggable'
full trace (822 lines)

congratulations on this most verbose exception trace

In [1]: from ophyd.sim import det, flyer1, flyer2  # simulated hardware                                                             

In [2]: from bluesky.preprocessors import fly_during_wrapper                                                                        

In [3]: RE(fly_during_wrapper(bp.count([det], num=5), [flyer1, flyer2]))                                                            
Transient Scan ID: 969     Time: 2019-03-08 15:08:43
Persistent Unique Scan ID: 'd5f875b1-55be-40b0-9f59-08981954f3c0'
New stream: 'primary'
+-----------+------------+
|   seq_num |       time |
+-----------+------------+
|         1 | 15:08:43.5 |
|         2 | 15:08:43.6 |
|         3 | 15:08:43.6 |
|         4 | 15:08:43.6 |
|         5 | 15:08:43.6 |
New stream: 'stream_name'
[E 15:08:44.139 run_engine:1264] Run aborted
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.139 run_engine:1264] Run aborted
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.170 run_engine:1278] Failed to collect <ophyd.sim.MockFlyer object at 0x7f30ea90c518>.
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1265, in _run
        raise err
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1276, in _run
        yield from self._collect(Msg('collect', obj))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.170 run_engine:1278] Failed to collect <ophyd.sim.MockFlyer object at 0x7f30ea90c518>.
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1265, in _run
        raise err
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1276, in _run
        yield from self._collect(Msg('collect', obj))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
+-----------+------------+
generator count ['d5f875b1'] (scan num: 969)



---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-b4dd05324fd9> in <module>
----> 1 RE(fly_during_wrapper(bp.count([det], num=5), [flyer1, flyer2]))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in __call__(self, *args, **metadata_kw)
    754                     # it (unless it is a canceled error)
    755                     if exc is not None:
--> 756                         raise exc
    757 
    758             if self._interrupted:

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1263             self._reason = str(err)
   1264             self.log.exception("Run aborted")
-> 1265             raise err
   1266         finally:
   1267             # Some done_callbacks may still be alive in other threads.

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1151                     else:
   1152                         try:
-> 1153                             msg = self._plan_stack[-1].send(resp)
   1154                         # We have exhausted the top generator
   1155                         except StopIteration:

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in __call__(self, plan)
   1292         plan = monitor_during_wrapper(plan, self.monitors)
   1293         plan = baseline_wrapper(plan, self.baseline)
-> 1294         return (yield from plan)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in baseline_wrapper(plan, devices, name)
   1145     if not devices:
   1146         # no-op
-> 1147         return (yield from plan)
   1148     else:
   1149         return (yield from plan_mutator(plan, insert_baseline))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in monitor_during_wrapper(plan, signals)
    788     plan1 = plan_mutator(plan, insert_after_open)
    789     plan2 = plan_mutator(plan1, insert_before_close)
--> 790     return (yield from plan2)
    791 
    792 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in fly_during_wrapper(plan, flyers)
    846     plan1 = plan_mutator(plan, insert_after_open)
    847     plan2 = plan_mutator(plan1, insert_before_close)
--> 848     return (yield from plan2)
    849 
    850 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in fly_during_wrapper(plan, flyers)
    846     plan1 = plan_mutator(plan, insert_after_open)
    847     plan2 = plan_mutator(plan1, insert_before_close)
--> 848     return (yield from plan2)
    849 
    850 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py in count(detectors, num, delay, md)
     65                                       num=num, delay=delay))
     66 
---> 67     return (yield from inner_count())
     68 
     69 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in dec_inner(*inner_args, **inner_kwargs)
   1009                 plan = gen_func(*inner_args, **inner_kwargs)
   1010                 plan = wrapper(plan, *args, **kwargs)
-> 1011                 return (yield from plan)
   1012             return dec_inner
   1013         return dec

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in stage_wrapper(plan, devices)
    937         return (yield from plan)
    938 
--> 939     return (yield from finalize_wrapper(inner(), unstage_devices()))
    940 
    941 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in finalize_wrapper(plan, final_plan, pause_for_debug)
    498     cleanup = True
    499     try:
--> 500         ret = yield from plan
    501     except GeneratorExit:
    502         cleanup = False

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in inner()
    935     def inner():
    936         yield from stage_devices()
--> 937         return (yield from plan)
    938 
    939     return (yield from finalize_wrapper(inner(), unstage_devices()))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in dec_inner(*inner_args, **inner_kwargs)
   1009                 plan = gen_func(*inner_args, **inner_kwargs)
   1010                 plan = wrapper(plan, *args, **kwargs)
-> 1011                 return (yield from plan)
   1012             return dec_inner
   1013         return dec

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in run_wrapper(plan, md)
    324     yield from contingency_wrapper(plan,
    325                                    except_plan=except_plan,
--> 326                                    else_plan=close_run)
    327     return rs_uid
    328 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in contingency_wrapper(plan, except_plan, else_plan, final_plan, pause_for_debug)
    574     else:
    575         if else_plan:
--> 576             yield from else_plan()
    577     finally:
    578         # if the exception raised in `GeneratorExit` that means

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py in close_run(exit_status, reason)
    731     :func:`bluesky.plans_stubs.open_run`
    732     """
--> 733     return (yield Msg('close_run', exit_status=exit_status, reason=reason))
    734 
    735 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
     75             # if we have a stashed exception, pass it along
     76             try:
---> 77                 msg = plan_stack[-1].throw(exception)
     78             except StopIteration as e:
     79                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in new_gen()
    837             def new_gen():
    838                 yield from ensure_generator(complete_msgs)
--> 839                 yield from ensure_generator(collect_msgs)
    840                 yield msg
    841             return new_gen(), None

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in <genexpr>(.0)
    113     if not isinstance(gen, PLAN_TYPES):
    114         # If plan does not support .send, we must wrap it in a generator.
--> 115         gen = (msg for msg in gen)
    116 
    117     return gen

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1209                         # exceptions (coming in via throw) can be
   1210                         # raised
-> 1211                         new_response = yield from coro(msg)
   1212 
   1213                     # special case `CancelledError` and let the outer

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _collect(self, msg)
   1884                            name=stream_name, hints=hints,
   1885                            object_keys=object_keys)
-> 1886                 yield from self.emit(DocumentNames.descriptor, doc)
   1887                 self.log.debug("Emitted Event Descriptor with name %r "
   1888                                "containing data keys %r (uid=%r)", stream_name,

~/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py in coro(*args, **kw)
    210         @functools.wraps(func)
    211         def coro(*args, **kw):
--> 212             res = func(*args, **kw)
    213             if (base_futures.isfuture(res) or inspect.isgenerator(res) or
    214                 isinstance(res, CoroWrapper)):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in emit(self, name, doc)
   2322         "Process blocking callbacks and schedule non-blocking callbacks."
   2323         _validate(doc, schemas[name])
-> 2324         self.dispatcher.process(name, doc)
   2325 
   2326 

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in process(self, name, doc)
   2342         doc : dict
   2343         """
-> 2344         exceptions = self.cb_registry.process(name, name.name, doc)
   2345         for exc, traceback in exceptions:
   2346             warn("A %r was raised during the processing of a %s "

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in process(self, sig, *args, **kwargs)
    332             for cid, func in list(self.callbacks[sig].items()):
    333                 try:
--> 334                     func(*args, **kwargs)
    335                 except ReferenceError:
    336                     self._remove_proxy(func)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in __call__(self, *args, **kwargs)
    413             mtd = self.func
    414         # invoke the callable and return the result
--> 415         return mtd(*args, **kwargs)
    416 
    417     def __eq__(self, other):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py in __call__(self, name, doc)
     91             return
     92 
---> 93         super().__call__(name, doc)
     94 
     95     def start(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py in __call__(self, name, doc)
     15     def __call__(self, name, doc):
     16         "Dispatch to methods expecting particular doc types."
---> 17         return getattr(self, name)(doc)
     18 
     19     def event(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py in descriptor(self, doc)
    273                 live_plot = LivePlotPlusPeaks(y=y_key, x=x_key, ax=ax,
    274                                               peak_results=self.peaks)
--> 275                 live_plot('start', self._start_doc)
    276                 live_plot('descriptor', doc)
    277                 peak_stats = PeakStats(x=x_key, y=y_key)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py in __call__(self, name, doc)
     15     def __call__(self, name, doc):
     16         "Dispatch to methods expecting particular doc types."
---> 17         return getattr(self, name)(doc)
     18 
     19     def event(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py in start(self, doc)
     95         self.lines.append(self.current_line)
     96         self.legend = self.ax.legend(
---> 97             loc=0, title=self.legend_title).set_draggable(True)
     98         super().start(doc)
     99 

AttributeError: 'Legend' object has no attribute 'set_draggable'

Expected Behavior

expected a working example of a Flyer

Current Behavior

fails

Possible Solution

example needs to be updated to follow changes in API

Steps to Reproduce (for bugs)

  1. look at the trace

Context

Operate the synApps sscan record as a bluesky/ophyd Flyer

Your Environment

  • RE.md[‘BLUESKY_VERSION’] = 1.5.0.post11+g226d74f
  • RE.md[‘OPHYD_VERSION’] = 1.3.0.post331+g8671719
  • linux-x86_64

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Comments: 16 (16 by maintainers)

Most upvoted comments

Now that’s some detective work. Seems like a duplicate but this problem was quickly lost in the murky details of the per_step discussion. Recommend to keep this open as separate issue.

Everyone agree that imposing a requirement of MPL>=3 would be the fix for this?