Skip to content

Commit 00cf64a

Browse files
committed
feat: remove scan def
1 parent ca04737 commit 00cf64a

9 files changed

Lines changed: 5 additions & 145 deletions

File tree

bec_ipython_client/bec_ipython_client/callbacks/ipython_live_updates.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,6 @@ def _process_report_instructions(self, report_instructions: list) -> None:
6363
if not self._active_request:
6464
return
6565
scan_type = self._active_request.scan_type
66-
if scan_type in ["open_scan_def", "close_scan_def"]:
67-
self._process_instruction({"scan_progress": {"points": 0, "show_table": True}})
68-
return
6966
if scan_type == "close_scan_group":
7067
return
7168

@@ -319,10 +316,9 @@ def _process_queue(
319316
if not available_blocks:
320317
return False
321318
req_block = available_blocks[self._request_block_index[req_id]]
322-
if req_block.msg.scan_type in [
323-
"open_scan_def",
324-
"mv",
325-
]: # TODO: make this more general for all scan types that don't have report instructions
319+
if (
320+
req_block.msg.scan_type == "mv"
321+
): # TODO: make this more general for scans without report instructions
326322
return True
327323

328324
report_instructions = req_block.report_instructions or []
@@ -405,11 +401,7 @@ def _reset(self, forced=False):
405401
self._current_queue = None
406402
self._user_callback = None
407403
self._processed_instructions = 0
408-
scan_closed = (
409-
forced
410-
or self._active_request is None
411-
or (self._active_request.scan_type == "close_scan_def")
412-
)
404+
scan_closed = forced or self._active_request is None
413405
self._active_request = None
414406

415407
if self.client.scans._scan_def_id and not scan_closed:

bec_ipython_client/bec_ipython_client/callbacks/live_table.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -377,11 +377,6 @@ def close_table(self):
377377

378378
def process_request(self):
379379
"""process the request and start the core loop for live updates"""
380-
if self.request.content["scan_type"] == "close_scan_def":
381-
self.wait_for_scan_item_to_finish()
382-
self.close_table()
383-
return
384-
385380
self.wait_for_request_acceptance()
386381
self.update_scan_item(timeout=15)
387382
self.wait_for_scan_to_start()
@@ -396,9 +391,6 @@ def process_request(self):
396391

397392
def run(self):
398393
"""run the live updates"""
399-
if self.request.content["scan_type"] == "open_scan_def":
400-
self.wait_for_request_acceptance()
401-
return
402394
self.process_request()
403395
self.wait_for_scan_item_to_finish()
404396
if self._print_table_data:

bec_ipython_client/demo.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,6 @@
153153
# scans.close_interactive_scan(md={"scan_def_id": scan_def_id})
154154

155155

156-
# @scan_def
157-
# def new_scan():
158-
# for ii in range(10):
159-
# scans.umv(dev.samx, ii * 10)
160-
# scans.fermat_scan(dev.samx, -5, 5, dev.samy, -5, 5, step=1, exp_time=0.02, relative=True)
161-
162-
163156
# for ii in range(10):
164157
# scans.umv(dev.samx, ii * 10)
165158
# # scans.grid_scan(dev.samx, -5, 5, 5, dev.samy, -5, 5, 10, exp_time=0.02, relative=True)
@@ -180,17 +173,9 @@
180173
# # scans.line_scan(dev.samx, -8, 8, steps=200, exp_time=0.1, relative=True)
181174

182175

183-
# with scans.scan_def:
184-
# scan_with_decorator()
185176
# with scans.dataset_id_on_hold:
186177
# scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=True)
187178
# scans.line_scan(dev.samx, -8, 8, steps=10, exp_time=0.1, relative=True)
188-
189-
# scan_def_id = str(uuid.uuid4())
190-
# scans.open_scan_def(md={"scan_def_id": scan_def_id})
191-
# scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, md={"scan_def_id": scan_def_id})
192-
# scans.line_scan(dev.samx, -8, 8, steps=10, exp_time=0.1, md={"scan_def_id": scan_def_id})
193-
# scans.close_scan_def(md={"scan_def_id": scan_def_id})
194179
# for ii in range(10):
195180
# scans.grid_scan(dev.samx, -5, 5, 10, dev.samy, -5, 5, 10, exp_time=0.01)
196181

bec_ipython_client/tests/end-2-end/test_scans_e2e.py

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -509,58 +509,10 @@ def test_file_writer(bec_ipython_client_fixture):
509509
dev.samy.velocity.set(100).wait()
510510

511511

512-
@pytest.mark.timeout(100)
513-
def test_scan_def_callback(capsys, bec_ipython_client_fixture):
514-
bec = bec_ipython_client_fixture
515-
bec.metadata.update({"unit_test": "test_scan_def_callback"})
516-
scans = bec.scans
517-
dev = bec.device_manager.devices
518-
scan_number = bec.queue.next_scan_number
519-
with scans.scan_def:
520-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
521-
scans.umv(dev.samy, 5, relative=False)
522-
current_pos_samy = dev.samy.read(cached=True)["samy"]["value"]
523-
captured = capsys.readouterr()
524-
assert f"Starting scan {scan_number}" in captured.out
525-
ref_out_samy = f"━━━━━━━━━━━━━━━ {current_pos_samy:10.2f} / 5.00 / 100 %"
526-
assert ref_out_samy in captured.out
527-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
528-
captured = capsys.readouterr()
529-
assert f"Scan {scan_number} finished." in captured.out
530-
531-
532-
@pytest.mark.timeout(100)
533-
def test_scan_def(bec_ipython_client_fixture):
534-
bec = bec_ipython_client_fixture
535-
bec.metadata.update({"unit_test": "test_scan_def"})
536-
scans = bec.scans
537-
dev = bec.device_manager.devices
538-
scan_number = bec.queue.next_scan_number
539-
with scans.scan_def:
540-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
541-
scans.umv(dev.samy, 5, relative=False)
542-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
543-
scans.mv(dev.samx, 0, relative=False)
544-
545-
assert scan_number == bec.queue.next_scan_number - 1
546-
547-
scan_number = bec.queue.next_scan_number
548-
549-
@scans.scan_def
550-
def scan_def_with_decorator():
551-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
552-
scans.umv(dev.samy, 5, relative=False)
553-
scans.line_scan(dev.samx, -5, 5, steps=10, exp_time=0.1, relative=False)
554-
scans.mv(dev.samx, 0, relative=False)
555-
556-
scan_def_with_decorator()
557-
assert scan_number == bec.queue.next_scan_number - 1
558-
559-
560512
@pytest.mark.timeout(100)
561513
def test_group_def(bec_ipython_client_fixture):
562514
bec = bec_ipython_client_fixture
563-
bec.metadata.update({"unit_test": "test_scan_def"})
515+
bec.metadata.update({"unit_test": "test_group_def"})
564516
scans = bec.scans
565517
dev = bec.device_manager.devices
566518
scan_number = bec.queue.next_scan_number

bec_lib/bec_lib/client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,6 @@ def _load_scans(self):
277277
else:
278278
self.scans._refresh_available_scans()
279279
builtins.__dict__["scans"] = self.scans
280-
self.scans_namespace.scan_def = self.scans.scan_def
281280

282281
def load_high_level_interface(self, module_name: str) -> None:
283282
"""Load a high level interface module.

bec_lib/bec_lib/scans.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ def __init__(self, parent):
181181
self._scan_def_id = None
182182
self._interactive_scan = False
183183
self._scan_group_ctx = ScanGroup(parent=self)
184-
self._scan_def_ctx = ScanDef(parent=self)
185184
self._hide_report = None
186185
self._hide_report_ctx = HideReport(parent=self)
187186
self._dataset_id_on_hold = None
@@ -367,11 +366,6 @@ def scan_group(self):
367366
"""Context manager / decorator for defining scan groups"""
368367
return self._scan_group_ctx
369368

370-
@property
371-
def scan_def(self):
372-
"""Context manager / decorator for defining new scans"""
373-
return self._scan_def_ctx
374-
375369
@property
376370
def hide_report(self):
377371
"""Context manager / decorator for hiding the report"""
@@ -408,27 +402,6 @@ def __exit__(self, *exc):
408402
self.parent._scan_group = None
409403

410404

411-
class ScanDef(ContextDecorator):
412-
"""ScanDef is a ContextDecorator for defining a new scan"""
413-
414-
def __init__(self, parent: Scans = None) -> None:
415-
super().__init__()
416-
self.parent = parent
417-
418-
def __enter__(self):
419-
if self.parent._scan_def_id is not None:
420-
raise ScanAbortion("Nested scan definitions currently not supported.")
421-
scan_def_id = str(uuid.uuid4())
422-
self.parent._scan_def_id = scan_def_id
423-
self.parent.open_scan_def()
424-
return self
425-
426-
def __exit__(self, *exc):
427-
if exc[0] is None:
428-
self.parent.close_scan_def()
429-
self.parent._scan_def_id = None
430-
431-
432405
class HideReport(ContextDecorator):
433406
"""HideReport is a ContextDecorator for hiding the report"""
434407

bec_lib/bec_lib/tests/utils.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ class ScansMock(Scans):
6060
def _import_scans(self):
6161
pass
6262

63-
def open_scan_def(self, *args, device_manager=None, monitored: list | None = None, **kwargs):
64-
pass
65-
66-
def close_scan_def(self):
67-
pass
68-
6963
def close_scan_group(self):
7064
pass
7165

@@ -139,8 +133,6 @@ def _load_scans(self):
139133
mv=self.scans.mv,
140134
umv=self.scans.umv,
141135
fermat_scan=self.scans.fermat_scan,
142-
open_scan_def=self.scans.open_scan_def,
143-
close_scan_def=self.scans.close_scan_def,
144136
close_scan_group=self.scans.close_scan_group,
145137
)
146138

bec_lib/tests/test_scan_context.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
FileWriter,
1111
HideReport,
1212
Metadata,
13-
ScanDef,
1413
ScanExport,
1514
ScanGroup,
1615
Scans,
@@ -95,16 +94,6 @@ def test_dataset_id_on_hold_cleanup_on_error(bec_client_mock):
9594
assert client.scans._dataset_id_on_hold is None
9695

9796

98-
def test_scan_def_cm(bec_client_mock):
99-
client = bec_client_mock
100-
client.scans._scan_def_id = None
101-
scan_def_id_cm = ScanDef(client.scans)
102-
with scan_def_id_cm:
103-
assert isinstance(client.scans._scan_def_id, str)
104-
105-
assert client.scans._scan_def_id is None
106-
107-
10897
def test_scan_group_cm(bec_client_mock):
10998
client = bec_client_mock
11099
client.scans._scan_group = None

bec_server/bec_server/scan_server/scans/legacy_scans.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -790,20 +790,6 @@ class ScanStub(RequestBase):
790790
pass
791791

792792

793-
class OpenScanDef(ScanStub):
794-
scan_name = "open_scan_def"
795-
796-
def run(self):
797-
yield from self.stubs.open_scan_def()
798-
799-
800-
class CloseScanDef(ScanStub):
801-
scan_name = "close_scan_def"
802-
803-
def run(self):
804-
yield from self.stubs.close_scan_def()
805-
806-
807793
class CloseScanGroup(ScanStub):
808794
scan_name = "close_scan_group"
809795

0 commit comments

Comments
 (0)