Skip to content

Commit 94d95a8

Browse files
committed
Updated registratino logic so that 'add' and 'commit' always happen at the end of the function, and both new and old entries are populated or updated correctly
1 parent cb0a651 commit 94d95a8

1 file changed

Lines changed: 38 additions & 28 deletions

File tree

src/murfey/workflows/fib/register_atlas.py

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,26 @@ def _register_fib_imaging_site(
151151
"""
152152
Register FIB atlas in Murfey database or update existing entry.
153153
"""
154-
# Create new entry if one doesn't already exist
154+
155+
def _update_entry(
156+
site: MurfeyDB.ImagingSite,
157+
metadata: FIBAtlasMetadata,
158+
):
159+
site.image_path = str(metadata.file)
160+
site.pos_x = metadata.pos_x
161+
site.pos_y = metadata.pos_y
162+
site.pos_z = metadata.pos_z
163+
site.rotation = float(np.rad2deg(metadata.rotation))
164+
site.tilt_alpha = float(np.rad2deg(metadata.tilt_alpha))
165+
site.tilt_beta = float(np.rad2deg(metadata.tilt_beta))
166+
site.len_x = metadata.len_x
167+
site.len_y = metadata.len_y
168+
site.image_pixels_x = metadata.pixels_x
169+
site.image_pixels_y = metadata.pixels_y
170+
site.image_pixel_size = metadata.pixel_size
171+
172+
return site
173+
155174
if (
156175
fib_imaging_site := murfey_db.exec(
157176
select(MurfeyDB.ImagingSite)
@@ -160,40 +179,31 @@ def _register_fib_imaging_site(
160179
.where(MurfeyDB.ImagingSite.data_type == "atlas")
161180
).one_or_none()
162181
) is None:
182+
# Create new entry if one doesn't already exist
163183
fib_imaging_site = MurfeyDB.ImagingSite(
164184
session_id=session_id,
165185
site_name=metadata.site_name,
166186
image_path=str(metadata.file),
167187
data_type="atlas",
168188
)
169-
170-
# Check if the entry is new or newer than the current stored one
171-
incoming_number = number_from_name(metadata.file.stem)
172-
# Handle empty string
173-
if not fib_imaging_site.image_path:
174-
current_number = 0
175-
# Read 'maps' atlases in one way
176-
elif "maps" in (curr_path := Path(fib_imaging_site.image_path)).parts:
177-
current_number = number_from_name(curr_path.stem)
189+
fib_imaging_site = _update_entry(fib_imaging_site, metadata)
178190
else:
179-
current_number = 0
180-
# Update if incoming one is newer
181-
if incoming_number > current_number:
182-
fib_imaging_site.image_path = str(metadata.file)
183-
fib_imaging_site.pos_x = metadata.pos_x
184-
fib_imaging_site.pos_y = metadata.pos_y
185-
fib_imaging_site.pos_z = metadata.pos_z
186-
fib_imaging_site.rotation = float(np.rad2deg(metadata.rotation))
187-
fib_imaging_site.tilt_alpha = float(np.rad2deg(metadata.tilt_alpha))
188-
fib_imaging_site.tilt_beta = float(np.rad2deg(metadata.tilt_beta))
189-
fib_imaging_site.len_x = metadata.len_x
190-
fib_imaging_site.len_y = metadata.len_y
191-
fib_imaging_site.image_pixels_x = metadata.pixels_x
192-
fib_imaging_site.image_pixels_y = metadata.pixels_y
193-
fib_imaging_site.image_pixel_size = metadata.pixel_size
194-
195-
murfey_db.add(fib_imaging_site)
196-
murfey_db.commit()
191+
# Check if the entry is new or newer than the current stored one
192+
incoming_number = number_from_name(metadata.file.stem)
193+
# Handle empty string
194+
if not fib_imaging_site.image_path:
195+
current_number = 0
196+
# Read 'maps' atlases in one way
197+
elif "maps" in (curr_path := Path(fib_imaging_site.image_path)).parts:
198+
current_number = number_from_name(curr_path.stem)
199+
else:
200+
current_number = 0
201+
# Update if incoming one is newer
202+
if incoming_number > current_number:
203+
fib_imaging_site = _update_entry(fib_imaging_site, metadata)
204+
205+
murfey_db.add(fib_imaging_site)
206+
murfey_db.commit()
197207

198208

199209
def run(

0 commit comments

Comments
 (0)