From 647683b87902645a0ce2c55a9f098f2bf8413b19 Mon Sep 17 00:00:00 2001
From: Christopher Rhodes <christopher.rhodes@embl.de>
Date: Wed, 27 Sep 2023 16:08:44 +0200
Subject: [PATCH] Move ilastik examples; auto-generate accessor

---
 extensions/{ => ilastik}/examples/__init__.py  | 0
 extensions/{ => ilastik}/examples/ilastik3d.py | 0
 model_server/accessors.py                      | 4 +++-
 tests/test_accessors.py                        | 6 ++++--
 4 files changed, 7 insertions(+), 3 deletions(-)
 rename extensions/{ => ilastik}/examples/__init__.py (100%)
 rename extensions/{ => ilastik}/examples/ilastik3d.py (100%)

diff --git a/extensions/examples/__init__.py b/extensions/ilastik/examples/__init__.py
similarity index 100%
rename from extensions/examples/__init__.py
rename to extensions/ilastik/examples/__init__.py
diff --git a/extensions/examples/ilastik3d.py b/extensions/ilastik/examples/ilastik3d.py
similarity index 100%
rename from extensions/examples/ilastik3d.py
rename to extensions/ilastik/examples/ilastik3d.py
diff --git a/model_server/accessors.py b/model_server/accessors.py
index 1a9b6b0b..ae5355f0 100644
--- a/model_server/accessors.py
+++ b/model_server/accessors.py
@@ -140,7 +140,9 @@ def write_accessor_data_to_file(fpath: Path, accessor: GenericImageDataAccessor)
 
 
 def generate_file_accessor(fpath):
-    if str(fpath).upper().endswith('.CZI'):
+    if str(fpath).upper().endswith('.TIF') or str(fpath).upper().endswith('.TIFF'):
+        return TifSingleSeriesFileAccessor(fpath)
+    elif str(fpath).upper().endswith('.CZI'):
         return CziImageFileAccessor(fpath)
     else:
         raise FileAccessorError(f'Could not match a file accessor with {fpath}')
diff --git a/tests/test_accessors.py b/tests/test_accessors.py
index bb5c95cd..da39610a 100644
--- a/tests/test_accessors.py
+++ b/tests/test_accessors.py
@@ -3,7 +3,7 @@ import unittest
 import numpy as np
 
 from conf.testing import czifile, output_path, tifffile
-from model_server.accessors import CziImageFileAccessor, DataShapeError, InMemoryDataAccessor, write_accessor_data_to_file, TifSingleSeriesFileAccessor
+from model_server.accessors import CziImageFileAccessor, DataShapeError, generate_file_accessor, InMemoryDataAccessor, write_accessor_data_to_file, TifSingleSeriesFileAccessor
 
 class TestCziImageFileAccess(unittest.TestCase):
 
@@ -11,7 +11,9 @@ class TestCziImageFileAccess(unittest.TestCase):
         pass
 
     def test_tiffile_is_correct_shape(self):
-        tf = TifSingleSeriesFileAccessor(tifffile['path'])
+        tf = generate_file_accessor(tifffile['path'])
+
+        self.assertIsInstance(tf, TifSingleSeriesFileAccessor)
         self.assertEqual(tf.shape_dict['Y'], tifffile['h'])
         self.assertEqual(tf.shape_dict['X'], tifffile['w'])
         self.assertEqual(tf.chroma, tifffile['c'])
-- 
GitLab