1616
1717from murfey .server import _transport_object
1818from murfey .server .murfey_db import murfey_db
19+ from murfey .util import sanitise
1920from murfey .util .config import get_machine_config
2021from murfey .util .db import (
2122 CLEMImageMetadata ,
@@ -77,7 +78,7 @@ def validate_and_sanitise(
7778 machine_config = get_machine_config (instrument_name = instrument_name )[
7879 instrument_name
7980 ]
80- base_path = machine_config .rsync_basepath .as_posix ()
81+ rsync_basepath = machine_config .rsync_basepath .resolve ()
8182
8283 # Check that full file path doesn't contain unallowed characters
8384 # Currently allows only:
@@ -90,13 +91,9 @@ def validate_and_sanitise(
9091 raise ValueError (f"Unallowed characters present in { file } " )
9192
9293 # Check that it's not accessing somehwere it's not allowed
93- if not str (full_path ).startswith (str (base_path )):
94+ if not str (full_path ).startswith (str (rsync_basepath )):
9495 raise ValueError (f"{ file } points to a directory that is not permitted" )
9596
96- # Check that it's a file, not a directory
97- if full_path .is_file () is False :
98- raise ValueError (f"{ file } is not a file" )
99-
10097 # Check that it is of a permitted file type
10198 if f"{ full_path .suffix } " not in valid_file_types :
10299 raise ValueError (f"{ full_path .suffix } is not a permitted file format" )
@@ -184,7 +181,7 @@ def get_db_entry(
184181 )
185182 db .add (db_entry )
186183 db .commit ()
187- db . refresh ( db_entry )
184+
188185 except Exception :
189186 raise Exception
190187
@@ -215,7 +212,11 @@ def register_lif_file(
215212 file_path = lif_file ,
216213 )
217214 except Exception :
218- logger .error (traceback .format_exc ())
215+ logger .error (
216+ "Exception encountered while registering "
217+ f"LIF file { sanitise (str (lif_file ))!r} : \n "
218+ f"{ traceback .format_exc ()} "
219+ )
219220 return False
220221
221222 # Add metadata information if provided
@@ -224,7 +225,11 @@ def register_lif_file(
224225 master_metadata = validate_and_sanitise (master_metadata , session_id , db )
225226 clem_lif_file .master_metadata = str (master_metadata )
226227 except Exception :
227- logger .warning (traceback .format_exc ())
228+ logger .warning (
229+ "Unable to add master metadata information to database entry for "
230+ f"LIF file { sanitise (str (lif_file ))!r} : \n "
231+ f"{ traceback .format_exc ()} "
232+ )
228233
229234 # Register child metadata if provided
230235 for metadata in child_metadata :
@@ -238,7 +243,12 @@ def register_lif_file(
238243 # Append to database entry
239244 clem_lif_file .child_metadata .append (metadata_db_entry )
240245 except Exception :
241- logger .warning (traceback .format_exc ())
246+ logger .warning (
247+ "Unable to register "
248+ f"metadata file { sanitise (str (metadata ))!r} in association with "
249+ f"LIF file { sanitise (str (lif_file ))!r} : \n "
250+ f"{ traceback .format_exc ()} "
251+ )
242252 continue
243253
244254 # Register child image series if provided
@@ -253,7 +263,12 @@ def register_lif_file(
253263 # Append to database entry
254264 clem_lif_file .child_series .append (series_db_entry )
255265 except Exception :
256- logger .warning (traceback .format_exc ())
266+ logger .warning (
267+ "Unable to register "
268+ f"metadata file { sanitise (series )!r} in association with "
269+ f"LIF file { sanitise (str (lif_file ))!r} : \n "
270+ f"{ traceback .format_exc ()} "
271+ )
257272 continue
258273
259274 # Register child image stacks if provided
@@ -268,7 +283,12 @@ def register_lif_file(
268283 # Append to database entry
269284 clem_lif_file .child_stacks .append (stack_db_entry )
270285 except Exception :
271- logger .warning (traceback .format_exc ())
286+ logger .warning (
287+ "Unable to register "
288+ f"image stack { sanitise (str (stack ))!r} in association with "
289+ f"LIF file { sanitise (str (lif_file ))!r} : \n "
290+ f"{ traceback .format_exc ()} "
291+ )
272292 continue
273293
274294 # Commit to database
@@ -296,7 +316,11 @@ def register_tiff_file(
296316 file_path = tiff_file ,
297317 )
298318 except Exception :
299- logger .error (traceback .format_exc ())
319+ logger .error (
320+ "Exception encountered while registering "
321+ f"TIFF file { sanitise (str (tiff_file ))!r} : \n "
322+ f"{ traceback .format_exc ()} "
323+ )
300324 return False
301325
302326 # Add metadata if provided
@@ -311,7 +335,12 @@ def register_tiff_file(
311335 # Link database entries
312336 clem_tiff_file .associated_metadata = metadata_db_entry
313337 except Exception :
314- logger .warning (traceback .format_exc ())
338+ logger .warning (
339+ "Unable to register "
340+ f"metadata file { sanitise (str (associated_metadata ))!r} in association with "
341+ f"TIFF file { sanitise (str (tiff_file ))!r} : \n "
342+ f"{ traceback .format_exc ()} "
343+ )
315344
316345 # Add series information if provided
317346 if associated_series is not None :
@@ -325,7 +354,12 @@ def register_tiff_file(
325354 # Link database entries
326355 clem_tiff_file .child_series = series_db_entry
327356 except Exception :
328- logger .warning (traceback .format_exc ())
357+ logger .warning (
358+ "Unable to register "
359+ f"CLEM series { sanitise (associated_series )!r} in association with "
360+ f"TIFF file { sanitise (str (tiff_file ))!r} : \n "
361+ f"{ traceback .format_exc ()} "
362+ )
329363
330364 # Add image stack information if provided
331365 if associated_stack is not None :
@@ -339,7 +373,11 @@ def register_tiff_file(
339373 # Link database entries
340374 clem_tiff_file .child_stack = stack_db_entry
341375 except Exception :
342- logger .warning (traceback .format_exc ())
376+ logger .warning (
377+ "Unable to register "
378+ f"image stack { sanitise (str (associated_stack ))!r} in association with "
379+ f"{ traceback .format_exc ()} "
380+ )
343381
344382 # Commit to database
345383 db .add (clem_tiff_file )
@@ -368,7 +406,11 @@ def register_clem_metadata(
368406 file_path = metadata_file ,
369407 )
370408 except Exception :
371- logger .error (traceback .format_exc ())
409+ logger .error (
410+ "Exception encountered while registering"
411+ f"metadata file { sanitise (str (metadata_file ))!r} "
412+ f"{ traceback .format_exc ()} "
413+ )
372414 return False
373415
374416 # Register a parent LIF file if provided
@@ -383,7 +425,12 @@ def register_clem_metadata(
383425 # Link database entries
384426 clem_metadata .parent_lif = lif_db_entry
385427 except Exception :
386- logger .warning (traceback .format_exc ())
428+ logger .warning (
429+ "Unable to register "
430+ f"LIF file { sanitise (str (parent_lif ))!r} in association with "
431+ f"metadata file { sanitise (str (metadata_file ))!r} : \n "
432+ f"{ traceback .format_exc ()} "
433+ )
387434
388435 # Register associated TIFF files if provided
389436 for tiff in associated_tiffs :
@@ -397,7 +444,12 @@ def register_clem_metadata(
397444 # Append entry
398445 clem_metadata .associated_tiffs .append (tiff_db_entry )
399446 except Exception :
400- logger .warning (traceback .format_exc ())
447+ logger .warning (
448+ "Unable to register "
449+ f"TIFF file { sanitise (str (tiff ))!r} in association with "
450+ f"metadata file { sanitise (str (metadata_file ))!r} : \n "
451+ f"{ traceback .format_exc ()} "
452+ )
401453 continue
402454
403455 # Register associated image series if provided
@@ -414,7 +466,12 @@ def register_clem_metadata(
414466 db .add (series_db_entry )
415467 db .commit ()
416468 except Exception :
417- logger .warning (traceback .format_exc ())
469+ logger .warning (
470+ "Unable to register "
471+ f"CLEM series { sanitise (associated_series )!r} in association with "
472+ f"metadata file { sanitise (str (metadata_file ))!r} : \n "
473+ f"{ traceback .format_exc ()} "
474+ )
418475
419476 # Register associated image stacks if provided
420477 for stack in associated_stacks :
@@ -427,7 +484,12 @@ def register_clem_metadata(
427484 )
428485 clem_metadata .associated_stacks .append (stack_db_entry )
429486 except Exception :
430- logger .warning (traceback .format_exc ())
487+ logger .warning (
488+ "Unable to register "
489+ f"image stack { sanitise (str (stack ))!r} in association with "
490+ f"metadata file { sanitise (str (metadata_file ))!r} : \n "
491+ f"{ traceback .format_exc ()} "
492+ )
431493 continue
432494
433495 # Commit to database
@@ -456,7 +518,11 @@ def register_image_series(
456518 series_name = series_name ,
457519 )
458520 except Exception :
459- logger .error (traceback .format_exc ())
521+ logger .error (
522+ "Exception encountered while registering "
523+ f"CLEM series { sanitise (series_name )!r} : \n "
524+ f"{ traceback .format_exc ()} "
525+ )
460526 return False
461527
462528 # Register parent LIF file if provided
@@ -471,7 +537,12 @@ def register_image_series(
471537 # Link entries
472538 clem_image_series .parent_lif = lif_db_entry
473539 except Exception :
474- logger .warning (traceback .format_exc ())
540+ logger .warning (
541+ "Unable to register "
542+ f"LIF file { sanitise (str (parent_lif ))!r} in association with "
543+ f"CLEM series { sanitise (series_name )!r} : \n "
544+ f"{ traceback .format_exc ()} "
545+ )
475546
476547 # Register parent TIFFs if provided
477548 for tiff in parent_tiffs :
@@ -485,7 +556,12 @@ def register_image_series(
485556 # Append entry
486557 clem_image_series .parent_tiffs .append (tiff_db_entry )
487558 except Exception :
488- logger .warning (traceback .format_exc ())
559+ logger .warning (
560+ "Unable to register "
561+ f"TIFF file { sanitise (str (tiff ))!r} in association with "
562+ f"CLEM series { sanitise (series_name )!r} : \n "
563+ f"{ traceback .format_exc ()} "
564+ )
489565 continue # Try next item in loop
490566
491567 # Register associated metadata if provided
@@ -500,7 +576,12 @@ def register_image_series(
500576 # Link entries
501577 clem_image_series .associated_metadata = metadata_db_entry
502578 except Exception :
503- logger .warning (traceback .format_exc ())
579+ logger .warning (
580+ "Unable to register "
581+ f"metadata file { sanitise (str (associated_metadata ))!r} in association with "
582+ f"CLEM series { sanitise (series_name )!r} : \n "
583+ f"{ traceback .format_exc ()} "
584+ )
504585
505586 # Register child image stacks if provided
506587 for stack in child_stacks :
@@ -514,7 +595,12 @@ def register_image_series(
514595 # Append entry
515596 clem_image_series .child_stacks .append (stack_db_entry )
516597 except Exception :
517- logger .warning (traceback .format_exc ())
598+ logger .warning (
599+ "Unable to register "
600+ f"image stack { sanitise (str (stack ))!r} in association with "
601+ f"CLEM series { sanitise (series_name )!r} : \n "
602+ f"{ traceback .format_exc ()} "
603+ )
518604 continue
519605
520606 # Register
@@ -544,7 +630,11 @@ def register_image_stack(
544630 file_path = image_stack ,
545631 )
546632 except Exception :
547- logger .error (traceback .format_exc ())
633+ logger .error (
634+ "Exception encountered while registering "
635+ f"image stack { sanitise (str (image_stack ))!r} : \n "
636+ f"{ traceback .format_exc ()} "
637+ )
548638 return False
549639
550640 # Register channel name if provided
@@ -562,7 +652,12 @@ def register_image_stack(
562652 )
563653 clem_image_stack .parent_lif = lif_db_entry
564654 except Exception :
565- logger .warning (traceback .format_exc ())
655+ logger .warning (
656+ "Unable to register "
657+ f"LIF file { sanitise (str (parent_lif ))!r} in association with "
658+ f"image stack { sanitise (str (image_stack ))!r} : \n "
659+ f"{ traceback .format_exc ()} "
660+ )
566661
567662 # Register parent TIFF files if provided
568663 for tiff in parent_tiffs :
@@ -576,7 +671,12 @@ def register_image_stack(
576671 # Append entry
577672 clem_image_stack .parent_tiffs .append (tiff_db_entry )
578673 except Exception :
579- logger .warning (traceback .format_exc ())
674+ logger .warning (
675+ "Unable to register "
676+ f"TIFF file { sanitise (str (tiff ))!r} in association with "
677+ f"image stack { sanitise (str (image_stack ))!r} : \n "
678+ f"{ traceback .format_exc ()} "
679+ )
580680 continue
581681
582682 # Register associated metadata if provided
@@ -591,7 +691,12 @@ def register_image_stack(
591691 # Link entries
592692 clem_image_stack .associated_metadata = metadata_db_entry
593693 except Exception :
594- logger .warning (traceback .format_exc ())
694+ logger .warning (
695+ "Unable to register "
696+ f"metadata file { sanitise (str (associated_metadata ))!r} in association with "
697+ f"image stack { sanitise (str (image_stack ))!r} : \n "
698+ f"{ traceback .format_exc ()} "
699+ )
595700
596701 # Register parent series if provided
597702 if parent_series is not None :
@@ -605,7 +710,12 @@ def register_image_stack(
605710 # Link entries
606711 clem_image_stack .parent_series = series_db_entry
607712 except Exception :
608- logger .warning (traceback .format_exc ())
713+ logger .warning (
714+ "Unable to register "
715+ f"CLEM series { sanitise (parent_series )!r} in association with "
716+ f"image stack { sanitise (str (image_stack ))!r} : \n "
717+ f"{ traceback .format_exc ()} "
718+ )
609719
610720 # Register updates to entry
611721 db .add (clem_image_stack )
0 commit comments