Creating a sequence containing only custom data is not allowed
This first sequence is fine
DEMO_SESSION [28]: seq = Sequence()
...: seq.add_custom_channel(AcquisitionChannel("mychannel", numpy.float, ()))
...: with seq.sequence_context() as scan_seq:
...: s1 = loopscan(5, .1, diode, run=False)
...: s2 = loopscan(5, .1, diode, run=False)
...: scan_seq.add_and_run(s1)
...: scan_seq.add_and_run(s2)
...: seq.custom_channels["mychannel"].emit([1.1, 2.2, 3.3])
But if we remove the loopscans
DEMO_SESSION [29]: seq = Sequence()
...: seq.add_custom_channel(AcquisitionChannel("mychannel", numpy.float, ()))
...: with seq.sequence_context() as scan_seq:
...: seq.custom_channels["mychannel"].emit([1.1, 2.2, 3.3])
Here is the logs:
Out [30]: Traceback (most recent call last):
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 380, in _another_execute
code = compile_with_flags(line, "eval")
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 367, in compile_with_flags
dont_inherit=True,
File "<stdin>", line 1
seq = Sequence()
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 728, in embed
cmd_line_i._execute(inp)
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 449, in _execute
raise return_value[1].with_traceback(return_value[2])
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 427, in _execute_task
return self._another_execute(*args, **kwargs)
File "/users/valls/workspace/bliss.git/bliss/shell/cli/repl.py", line 420, in _another_execute
six.exec_(code, self.get_globals(), self.get_locals())
File "<stdin>", line 4, in <module>
File "/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/valls/workspace/bliss.git/bliss/scanning/group.py", line 131, in sequence_context
group_scan.get()
File "/users/valls/workspace/bliss.git/bliss/common/greenlet_utils.py", line 102, in get
return super().get(*args, **keys)
File "src/gevent/greenlet.py", line 795, in gevent._gevent_cgreenlet.Greenlet.get
File "src/gevent/greenlet.py", line 364, in gevent._gevent_cgreenlet.Greenlet._raise_exception
File "/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "src/gevent/greenlet.py", line 854, in gevent._gevent_cgreenlet.Greenlet.run
File "/users/valls/workspace/bliss.git/bliss/scanning/scan.py", line 1541, in run
self.writer.close()
File "/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/valls/workspace/bliss.git/bliss/common/cleanup.py", line 276, in capture_exceptions
raise value
File "/users/valls/workspace/bliss.git/bliss/common/cleanup.py", line 252, in capture
yield
File "/users/valls/workspace/bliss.git/bliss/scanning/scan.py", line 1539, in run
self.writer.finalize_scan_entry(self)
File "/users/valls/workspace/bliss.git/bliss/scanning/writer/nexus.py", line 143, in finalize_scan_entry
timeout=0,
File "/users/valls/workspace/bliss.git/bliss/scanning/writer/nexus.py", line 260, in _retry
if method():
File "/users/valls/workspace/bliss.git/bliss/scanning/writer/nexus.py", line 334, in is_scan_notfault
raise RuntimeError(f"Nexus writer is in FAULT state ({reason})")
RuntimeError: Nexus writer is in FAULT state (sample_0002 incomplete)
The invalid syntax
can be ignored. That's part of another issue #1882 (closed)