Skip to content

Commit 4439678

Browse files
committed
pull out some constants into _utils.py
1 parent 7a0650d commit 4439678

File tree

4 files changed

+56
-31
lines changed

4 files changed

+56
-31
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from pathlib import Path
2+
from platform import node
3+
4+
INSTRUMENT = node()
5+
DEFAULT_PATH = Path("//isis.cclrc.ac.uk/inst$") / INSTRUMENT / "user" / "TEST" / "scans"
6+
7+
# Common document metadata
8+
UID = "uid"
9+
TIME = "time"
10+
DATA = "data"
11+
RB = "rb_number"
12+
START_TIME = "start_time"
13+
NAME = "name"
14+
SEQ_NUM = "seq_num"
15+
DATA_KEYS = "data_keys"
16+
DESCRIPTOR = "descriptor"
17+
UNITS = "units"
18+
PRECISION = "precision"
19+
MOTORS = "motors"
20+
UNKNOWN_RB = "Unknown RB"

src/ibex_bluesky_core/callbacks/file_logger.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import os
66
from datetime import datetime
77
from pathlib import Path
8-
from platform import node
98
from typing import Optional
109
from zoneinfo import ZoneInfo
1110

@@ -15,21 +14,25 @@
1514
from event_model.documents.run_start import RunStart
1615
from event_model.documents.run_stop import RunStop
1716

18-
logger = logging.getLogger(__name__)
17+
from ibex_bluesky_core.callbacks._utils import (
18+
DATA,
19+
DATA_KEYS,
20+
DEFAULT_PATH,
21+
DESCRIPTOR,
22+
INSTRUMENT,
23+
MOTORS,
24+
NAME,
25+
PRECISION,
26+
RB,
27+
SEQ_NUM,
28+
START_TIME,
29+
TIME,
30+
UID,
31+
UNITS,
32+
UNKNOWN_RB,
33+
)
1934

20-
TIME = "time"
21-
START_TIME = "start_time"
22-
NAME = "name"
23-
SEQ_NUM = "seq_num"
24-
DATA_KEYS = "data_keys"
25-
DATA = "data"
26-
DESCRIPTOR = "descriptor"
27-
UNITS = "units"
28-
UID = "uid"
29-
RB = "rb_number"
30-
PRECISION = "precision"
31-
INSTRUMENT = node()
32-
DEFAULT_PATH = Path("//isis.cclrc.ac.uk/inst$") / INSTRUMENT / "user" / "TEST" / "scans"
35+
logger = logging.getLogger(__name__)
3336

3437

3538
class HumanReadableFileCallback(CallbackBase):
@@ -57,20 +60,20 @@ def start(self, doc: RunStart) -> None:
5760
self.current_start_document = doc[UID]
5861

5962
datetime_obj = datetime.fromtimestamp(doc[TIME])
60-
title_format_datetime = datetime_obj.astimezone(ZoneInfo("Europe/London")).strftime(
63+
title_format_datetime = datetime_obj.astimezone(ZoneInfo("UTC")).strftime(
6164
"%Y-%m-%d_%H-%M-%S"
6265
)
63-
rb_num = doc.get("rb_number", "Unknown RB")
66+
rb_num = doc.get(RB, UNKNOWN_RB)
6467

6568
# motors is a tuple, we need to convert to a list to join the two below
66-
motors = list(doc.get("motors", []))
69+
motors = list(doc.get(MOTORS, []))
6770

6871
self.filename = (
6972
self.output_dir
7073
/ f"{rb_num}"
7174
/ f"{INSTRUMENT}{'_' + '_'.join(motors) if motors else ''}_{title_format_datetime}Z.txt"
7275
)
73-
if rb_num == "Unknown RB":
76+
if rb_num == UNKNOWN_RB:
7477
logger.warning('No RB number found, saving to "Unknown RB"')
7578
assert self.filename is not None
7679
logger.info("starting new file %s", self.filename)

src/ibex_bluesky_core/callbacks/fitting/livefit_logger.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import os
66
from datetime import datetime
77
from pathlib import Path
8-
from platform import node
98
from typing import Optional
109
from zoneinfo import ZoneInfo
1110

@@ -15,14 +14,17 @@
1514
from event_model.documents.run_start import RunStart
1615
from event_model.documents.run_stop import RunStop
1716

17+
from ibex_bluesky_core.callbacks._utils import (
18+
DATA,
19+
DEFAULT_PATH,
20+
INSTRUMENT,
21+
RB,
22+
TIME,
23+
UID,
24+
UNKNOWN_RB,
25+
)
1826
from ibex_bluesky_core.callbacks.fitting import LiveFit
1927

20-
UID = "uid"
21-
TIME = "time"
22-
DATA = "data"
23-
RB = "rb_number"
24-
INSTRUMENT = node()
25-
DEFAULT_PATH = Path("//isis.cclrc.ac.uk/inst$") / INSTRUMENT / "user" / "TEST" / "scans"
2628
logger = logging.getLogger(__name__)
2729

2830

@@ -78,8 +80,8 @@ def start(self, doc: RunStart) -> None:
7880
self.output_dir.mkdir(parents=True, exist_ok=True)
7981
self.current_start_document = doc[UID]
8082
file = f"{INSTRUMENT}_{self.x}_{self.y}_{title_format_datetime}Z{self.postfix}.txt"
81-
rb_num = doc.get("rb_number", "Unknown RB")
82-
if rb_num == "Unknown RB":
83+
rb_num = doc.get(RB, UNKNOWN_RB)
84+
if rb_num == UNKNOWN_RB:
8385
logger.warning('No RB number found, will save to "Unknown RB"')
8486
self.filename = self.output_dir / f"{rb_num}" / file
8587

tests/callbacks/test_write_log_callback.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_header_data_all_available_on_start(cb):
3333
result = (
3434
save_path
3535
/ f"{run_start.get('rb_number', None)}"
36-
/ f"{node()}_block_2024-10-04_14-43-43Z.txt"
36+
/ f"{node()}_block_2024-10-04_13-43-43Z.txt"
3737
)
3838

3939
mock_file.assert_called_with(result, "a", newline="\n", encoding="utf-8")
@@ -54,7 +54,7 @@ def test_no_rb_number_folder(cb):
5454
patch("ibex_bluesky_core.callbacks.file_logger.os.makedirs") as mock_mkdir,
5555
):
5656
cb.start(run_start)
57-
result = save_path / "Unknown RB" / f"{node()}_block_2024-10-04_14-43-43Z.txt"
57+
result = save_path / "Unknown RB" / f"{node()}_block_2024-10-04_13-43-43Z.txt"
5858
assert mock_mkdir.called
5959

6060
mock_file.assert_called_with(result, "a", newline="\n", encoding="utf-8")
@@ -75,7 +75,7 @@ def test_no_motors_doesnt_append_to_filename(cb):
7575
patch("ibex_bluesky_core.callbacks.file_logger.os.makedirs") as mock_mkdir,
7676
):
7777
cb.start(run_start)
78-
result = save_path / "Unknown RB" / f"{node()}_2024-10-04_14-43-43Z.txt"
78+
result = save_path / "Unknown RB" / f"{node()}_2024-10-04_13-43-43Z.txt"
7979
assert mock_mkdir.called
8080

8181
mock_file.assert_called_with(result, "a", newline="\n", encoding="utf-8")

0 commit comments

Comments
 (0)