Skip to content

Commit bb7c2c4

Browse files
committed
Rearranged MachineConfiguration keys according to purpose and grouped them under comment blocks
1 parent f0ff051 commit bb7c2c4

File tree

1 file changed

+51
-30
lines changed

1 file changed

+51
-30
lines changed

src/murfey/util/config.py

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,53 @@
1212

1313

1414
class MachineConfig(BaseModel, extra=Extra.allow): # type: ignore
15-
acquisition_software: List[str]
16-
calibrations: Dict[str, Dict[str, Union[dict, float]]]
17-
data_directories: List[Path]
18-
rsync_basepath: Path
19-
default_model: Path
15+
"""
16+
Keys that describe the type of workflow conducted on the client side, and how
17+
Murfey will handle its data transfer and processing
18+
"""
19+
20+
# General info --------------------------------------------------------------------
2021
display_name: str = ""
2122
instrument_name: str = ""
2223
image_path: Optional[Path] = None
24+
machine_override: str = ""
25+
26+
# Hardware and software -----------------------------------------------------------
27+
camera: str = "FALCON"
28+
superres: bool = False
29+
calibrations: Dict[str, Dict[str, Union[dict, float]]]
30+
acquisition_software: List[str]
2331
software_versions: Dict[str, str] = {}
24-
external_executables: Dict[str, str] = {}
25-
external_executables_eer: Dict[str, str] = {}
26-
external_environment: Dict[str, str] = {}
27-
rsync_module: str = ""
32+
software_settings_output_directories: Dict[str, List[str]] = {}
33+
data_required_substrings: Dict[str, Dict[str, List[str]]] = {}
34+
35+
# Client side directory setup -----------------------------------------------------
36+
data_directories: List[Path]
2837
create_directories: list[str] = ["atlas"]
2938
analyse_created_directories: List[str] = []
3039
gain_reference_directory: Optional[Path] = None
3140
eer_fractionation_file_template: str = ""
32-
processed_directory_name: str = "processed"
33-
gain_directory_name: str = "processing"
34-
node_creator_queue: str = "node_creator"
35-
superres: bool = False
36-
camera: str = "FALCON"
37-
data_required_substrings: Dict[str, Dict[str, List[str]]] = {}
38-
allow_removal: bool = False
41+
42+
# Data transfer setup -------------------------------------------------------------
43+
# Rsync setup
3944
data_transfer_enabled: bool = True
45+
rsync_url: str = ""
46+
rsync_module: str = ""
47+
rsync_basepath: Path
48+
allow_removal: bool = False
49+
50+
# Upstream data download setup
51+
upstream_data_directories: List[Path] = [] # Previous sessions
52+
upstream_data_download_directory: Optional[Path] = None # Set by microscope config
53+
upstream_data_tiff_locations: List[str] = ["processed"] # Location of CLEM TIFFs
54+
55+
# Data processing setup -----------------------------------------------------------
56+
# General processing setup
4057
processing_enabled: bool = True
41-
machine_override: str = ""
42-
processed_extra_directory: str = ""
43-
plugin_packages: Dict[str, Path] = {}
44-
software_settings_output_directories: Dict[str, List[str]] = {}
4558
process_by_default: bool = True
59+
gain_directory_name: str = "processing"
60+
processed_directory_name: str = "processed"
61+
processed_extra_directory: str = ""
4662
recipes: Dict[str, str] = {
4763
"em-spa-bfactor": "em-spa-bfactor",
4864
"em-spa-class2d": "em-spa-class2d",
@@ -53,22 +69,27 @@ class MachineConfig(BaseModel, extra=Extra.allow): # type: ignore
5369
"em-tomo-align": "em-tomo-align",
5470
}
5571

56-
# Find and download upstream directories
57-
upstream_data_directories: List[Path] = [] # Previous sessions
58-
upstream_data_download_directory: Optional[Path] = None # Set by microscope config
59-
upstream_data_tiff_locations: List[str] = ["processed"] # Location of CLEM TIFFs
60-
72+
# Particle picking setup
73+
default_model: Path
6174
model_search_directory: str = "processing"
6275
initial_model_search_directory: str = "processing/initial_model"
6376

64-
failure_queue: str = ""
65-
instrument_server_url: str = "http://localhost:8001"
66-
frontend_url: str = "http://localhost:3000"
67-
murfey_url: str = "http://localhost:8000"
68-
rsync_url: str = ""
77+
# Data analysis plugins
78+
external_executables: Dict[str, str] = {}
79+
external_executables_eer: Dict[str, str] = {}
80+
external_environment: Dict[str, str] = {}
81+
plugin_packages: Dict[str, Path] = {}
6982

83+
# Server and network setup --------------------------------------------------------
84+
# Configurations and URLs
7085
security_configuration_path: Optional[Path] = None
86+
murfey_url: str = "http://localhost:8000"
87+
frontend_url: str = "http://localhost:3000"
88+
instrument_server_url: str = "http://localhost:8001"
7189

90+
# Messaging queues
91+
failure_queue: str = ""
92+
node_creator_queue: str = "node_creator"
7293
notifications_queue: str = "pato_notification"
7394

7495

0 commit comments

Comments
 (0)