diff --git a/src/openflexure_microscope_server/scan_directories.py b/src/openflexure_microscope_server/scan_directories.py index 8f0e97d5..8adadfa0 100644 --- a/src/openflexure_microscope_server/scan_directories.py +++ b/src/openflexure_microscope_server/scan_directories.py @@ -70,10 +70,10 @@ class ScanDirectoryManager: """ return os.path.join(self._base_scan_dir, scan_name, IMG_DIR_NAME) - def get_file_from( + def get_file_path_from( self, scan_name: str, filename: str, check_exists: bool = False ) -> Optional[str]: - """Return the file path for the file within a scan directory + """Return the file full path for the file within a scan directory If check_exists is True then None will be returned if the file does not exist. @@ -84,10 +84,10 @@ class ScanDirectoryManager: return None return file_path - def get_file_from_img_dir( + def get_file_path_from_img_dir( self, scan_name: str, filename: str, check_exists: bool = False ) -> Optional[str]: - """Return the file path for the file within a scan directory + """Return the full file path for the file within a scan directory If check_exists is True, None is returned if the file does not exist. If False then the path is returned anyway @@ -98,15 +98,15 @@ class ScanDirectoryManager: return None return file_path - def get_final_stitch(self, scan_name: str) -> Optional[str]: + def get_final_stitch_path(self, scan_name: str) -> Optional[str]: """Return the file full path for the final stitch. If no final stitch is found, return None """ - stitch_fname = ScanDirectory(scan_name, self.base_dir).get_final_stitch() + stitch_fname = ScanDirectory(scan_name, self.base_dir).get_final_stitch_name() if stitch_fname is None: return None - return self.get_file_from_img_dir(scan_name, stitch_fname) + return self.get_file_path_from_img_dir(scan_name, stitch_fname) @property def all_scans(self) -> list[str]: @@ -282,7 +282,7 @@ class ScanDirectory: return scan_images, stitches, dzi_files - def get_final_stitch(self) -> Optional[str]: + def get_final_stitch_name(self) -> Optional[str]: """Return the filename for the final stitch (in the images dir) If no final stitch is found, return None diff --git a/src/openflexure_microscope_server/things/smart_scan.py b/src/openflexure_microscope_server/things/smart_scan.py index 36e73273..22937721 100644 --- a/src/openflexure_microscope_server/things/smart_scan.py +++ b/src/openflexure_microscope_server/things/smart_scan.py @@ -580,7 +580,7 @@ class SmartScanThing(Thing): This endpoint allows files to be downloaded from a scan. """ - preview_path = self._scan_dir_manager.get_file_from_img_dir( + preview_path = self._scan_dir_manager.get_file_path_from_img_dir( scan_name=scan_name, filename="stitched_thumbnail.jpg", check_exists=True ) if preview_path is None: @@ -684,7 +684,7 @@ class SmartScanThing(Thing): Will only return a file ending in suffix STITCH_SUFFIX Note: when downloading this, the default filename will be `scan_name`.jpeg""" - stitch_path = self._scan_dir_manager.get_final_stitch(scan_name) + stitch_path = self._scan_dir_manager.get_final_stitch_path(scan_name) if stitch_path is None: raise HTTPException(404, "File not found") @@ -758,7 +758,7 @@ class SmartScanThing(Thing): if not self.latest_scan_name: return None - return self._scan_dir_manager.get_file_from_img_dir( + return self._scan_dir_manager.get_file_path_from_img_dir( scan_name=self.latest_scan_name, filename="preview.jpg", check_exists=True ) @@ -899,7 +899,7 @@ class SmartScanThing(Thing): Note that as this is a thing_action it needs the logger passed as a variable if called from another thing action """ - json_fpath = self._scan_dir_manager.get_file_from_img_dir( + json_fpath = self._scan_dir_manager.get_file_path_from_img_dir( scan_name=scan_name, filename=SCAN_DATA_FILENAME ) diff --git a/tests/test_scan_directories.py b/tests/test_scan_directories.py index 3f0a60c1..22f88957 100644 --- a/tests/test_scan_directories.py +++ b/tests/test_scan_directories.py @@ -122,17 +122,19 @@ def test_basic_directory_operations(): assert scan_dir_manager.img_dir_for(scan_name) == scan_im_dir # Get the path of a fake file - fake_file = scan_dir_manager.get_file_from(scan_name, "foo.zip") + fake_file = scan_dir_manager.get_file_path_from(scan_name, "foo.zip") assert fake_file == os.path.join(scan_path, "foo.zip") # But this is none if we check it exists - fake_file = scan_dir_manager.get_file_from(scan_name, "foo.zip", check_exists=True) + fake_file = scan_dir_manager.get_file_path_from( + scan_name, "foo.zip", check_exists=True + ) assert fake_file is None # Get the path of another fake file - fake_file = scan_dir_manager.get_file_from_img_dir(scan_name, "bar.img") + fake_file = scan_dir_manager.get_file_path_from_img_dir(scan_name, "bar.img") assert fake_file == os.path.join(scan_im_dir, "bar.img") # But this is none if we check it exists - fake_file = scan_dir_manager.get_file_from_img_dir( + fake_file = scan_dir_manager.get_file_path_from_img_dir( scan_name, "bar.img", check_exists=True ) assert fake_file is None @@ -268,11 +270,11 @@ def test_get_final_stitch(): _add_fake_image(scan_dir) # No scans, so None should be returned, from both manager and scan dir - assert scan_dir_manager.get_final_stitch(scan_dir.name) is None - assert scan_dir.get_final_stitch() is None + assert scan_dir_manager.get_final_stitch_path(scan_dir.name) is None + assert scan_dir.get_final_stitch_name() is None fake_scan_name = "fake_scan_0001_stitched.jpg" - fake_scan_path = scan_dir_manager.get_file_from_img_dir( + fake_scan_path = scan_dir_manager.get_file_path_from_img_dir( scan_name=scan_dir.name, filename="fake_scan_0001_stitched.jpg", check_exists=False, @@ -280,9 +282,9 @@ def test_get_final_stitch(): # Add a fake scan _add_fake_file(scan_dir, fake_scan_name, in_im_dir=True) # Manager returns full path - assert scan_dir_manager.get_final_stitch(scan_dir.name) == fake_scan_path + assert scan_dir_manager.get_final_stitch_path(scan_dir.name) == fake_scan_path # ScanDirectory object returns just the filename - assert scan_dir.get_final_stitch() == fake_scan_name + assert scan_dir.get_final_stitch_name() == fake_scan_name def test_empty_scan_info():