imaging-server-kit 0.0.15__tar.gz → 0.0.16__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/PKG-INFO +1 -1
  2. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/algorithm_server.md +3 -0
  3. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/main.py +1 -1
  4. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/main.py +1 -1
  5. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/_version.py +2 -2
  6. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/geometry.py +16 -15
  7. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/serialization.py +13 -0
  8. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/PKG-INFO +1 -1
  9. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/.dockerignore +0 -0
  10. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/.gitattributes +0 -0
  11. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/.github/workflows/deploy.yml +0 -0
  12. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/.github/workflows/publish.yml +0 -0
  13. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/.gitignore +0 -0
  14. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/CITATION.cff +0 -0
  15. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/Dockerfile +0 -0
  16. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/Dockerfile-GPU +0 -0
  17. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/LICENSE +0 -0
  18. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/MANIFEST.in +0 -0
  19. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/README.md +0 -0
  20. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/build.sh +0 -0
  21. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/_config.yml +0 -0
  22. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/_toc.yml +0 -0
  23. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/assets/screenshot_napari_threshold.png +0 -0
  24. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/assets/screenshot_running_server.png +0 -0
  25. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/index.md +0 -0
  26. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/logo.ico +0 -0
  27. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/api_endpoints.md +0 -0
  28. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/authentication.md +0 -0
  29. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/client_apps.md +0 -0
  30. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/docker.md +0 -0
  31. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/examples.md +0 -0
  32. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/getting_started.md +0 -0
  33. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/docs/sections/multi_algo_server.md +0 -0
  34. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/basic/auto_threshold.py +0 -0
  35. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/basic/multi_algo.py +0 -0
  36. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/basic/sample_images/blobs.tif +0 -0
  37. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/basic/threshold.py +0 -0
  38. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/docker-compose.yml +0 -0
  39. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/Dockerfile +0 -0
  40. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/README.md +0 -0
  41. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/docker-compose.yml +0 -0
  42. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/main.py +0 -0
  43. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/requirements.txt +0 -0
  44. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-cellpose/sample_images/nuclei_2d.tif +0 -0
  45. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/Dockerfile +0 -0
  46. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/README.md +0 -0
  47. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/docker-compose.yml +0 -0
  48. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/main.py +0 -0
  49. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/requirements.txt +0 -0
  50. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-orientationpy/sample_images/image1_from_OrientationJ.tif +0 -0
  51. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/Dockerfile +0 -0
  52. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/README.md +0 -0
  53. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/docker-compose.yml +0 -0
  54. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/main.py +0 -0
  55. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/requirements.txt +0 -0
  56. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-rembg/sample_images/astronaut.tif +0 -0
  57. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/Dockerfile +0 -0
  58. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/README.md +0 -0
  59. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/docker-compose.yml +0 -0
  60. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/requirements.txt +0 -0
  61. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/sample_images/blobs.tif +0 -0
  62. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-skimage-log/sample_images/tracks.tif +0 -0
  63. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/Dockerfile +0 -0
  64. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/README.md +0 -0
  65. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/docker-compose.yml +0 -0
  66. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/main.py +0 -0
  67. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/requirements.txt +0 -0
  68. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stackreg/sample_images/pc12-unreg.tif +0 -0
  69. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/Dockerfile +0 -0
  70. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/README.md +0 -0
  71. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/docker-compose.yml +0 -0
  72. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/main.py +0 -0
  73. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/requirements.txt +0 -0
  74. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-stardist/sample_images/nuclei_2d.tif +0 -0
  75. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/Dockerfile +0 -0
  76. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/README.md +0 -0
  77. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/docker-compose.yml +0 -0
  78. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/main.py +0 -0
  79. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/requirements.txt +0 -0
  80. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-trackpy/sample_images/tracks.tif +0 -0
  81. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/Dockerfile +0 -0
  82. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/README.md +0 -0
  83. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/docker-compose.yml +0 -0
  84. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/requirements.txt +0 -0
  85. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/examples/servers/serverkit-yolo/sample_images/giraffs.png +0 -0
  86. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/main.py +0 -0
  87. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/pyproject.toml +0 -0
  88. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/setup.cfg +0 -0
  89. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/__init__.py +0 -0
  90. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/__init__.py +0 -0
  91. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/authenticated_server.py +0 -0
  92. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/static/css/login.css +0 -0
  93. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/static/css/register.css +0 -0
  94. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/static/js/login_script.js +0 -0
  95. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/static/js/register_script.js +0 -0
  96. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/templates/login.html +0 -0
  97. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/templates/register.html +0 -0
  98. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/utils/__init__.py +0 -0
  99. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/utils/db.py +0 -0
  100. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/utils/schemas.py +0 -0
  101. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/auth/utils/users.py +0 -0
  102. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/cli.py +0 -0
  103. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/client/__init__.py +0 -0
  104. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/client/client.py +0 -0
  105. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/__init__.py +0 -0
  106. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/decorator.py +0 -0
  107. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/encoding.py +0 -0
  108. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/errors.py +0 -0
  109. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/server.py +0 -0
  110. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/static/css/index.css +0 -0
  111. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/static/css/info.css +0 -0
  112. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/templates/index.html +0 -0
  113. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/templates/info.html +0 -0
  114. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/core/ui_library.py +0 -0
  115. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/demo/__init__.py +0 -0
  116. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/demo/sample_images/blobs.tif +0 -0
  117. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/demo/threshold.py +0 -0
  118. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/hub/__init__.py +0 -0
  119. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/hub/algorithm_hub.py +0 -0
  120. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/hub/multialgo_server.py +0 -0
  121. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/cookiecutter.json +0 -0
  122. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/.dockerignore +0 -0
  123. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/.gitignore +0 -0
  124. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/Dockerfile +0 -0
  125. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/README.md +0 -0
  126. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/docker-compose.yml +0 -0
  127. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/main.py +0 -0
  128. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/requirements.txt +0 -0
  129. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/sample_images/blobs.tif +0 -0
  130. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/SOURCES.txt +0 -0
  131. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/dependency_links.txt +0 -0
  132. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/entry_points.txt +0 -0
  133. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/requires.txt +0 -0
  134. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/src/imaging_server_kit.egg-info/top_level.txt +0 -0
  135. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/start_algorithm_hub.py +0 -0
  136. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/tests/test_error_paths.py +0 -0
  137. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/tests/test_import.py +0 -0
  138. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/tests/test_multialgo_server.py +0 -0
  139. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/tests/test_parameter_schema.py +0 -0
  140. {imaging_server_kit-0.0.15 → imaging_server_kit-0.0.16}/tests/test_simple_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imaging-server-kit
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: Deploy image processing algorithms in FastAPI servers.
5
5
  Author-email: Mallory Wittwer <mallory.wittwer@epfl.ch>
6
6
  License: Copyright (c) 2024, EPFL
@@ -50,6 +50,9 @@ The data tuples are inspired from Napari's [LayerDataTuple](https://napari.org/0
50
50
  | `"tracks"` | Array of tracks in the Napari [Tracks](https://napari.org/stable/howtos/layers/tracks.html) format. |
51
51
  | `"class"` | A class label (for image classification). |
52
52
  | `"text"` | A string of text (for example, for image captioning). |
53
+ | `"notification"` | A notification message (with levels `info`, `warning`, or `error`). |
54
+ | `"scalar"` | A scalar value (e.g. `42`, `3.14`). |
55
+ | `"list"` | A list of numeric and/or string values (e.g. `[42, 3.14, "cat"]`). |
53
56
 
54
57
  The function can return multiple outputs, following the pattern:
55
58
 
@@ -132,7 +132,7 @@ def skimage_log_server(
132
132
  (points, points_params, "points"),
133
133
  ]
134
134
  else:
135
- return [("No points were detected.", {}, "text")]
135
+ return [("No points were detected.", {"level": "info"}, "notification")]
136
136
 
137
137
 
138
138
  if __name__ == "__main__":
@@ -61,7 +61,7 @@ def yolo_detect_server(
61
61
 
62
62
  probabilities = results[0].boxes.conf.cpu().numpy()
63
63
  if len(probabilities) == 0:
64
- return [("Nothing was detected", {}, "text")]
64
+ return [("Nothing was detected", {"level": "info"}, "notification")]
65
65
 
66
66
  box_results = results[0].boxes.xyxy.cpu().numpy().reshape((-1, 2, 2))
67
67
  classes_indeces = results[0].boxes.cls.cpu().numpy()
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.0.15'
21
- __version_tuple__ = version_tuple = (0, 0, 15)
20
+ __version__ = version = '0.0.16'
21
+ __version_tuple__ = version_tuple = (0, 0, 16)
@@ -38,8 +38,7 @@ def mask2features(segmentation_mask: np.ndarray) -> List[Feature]:
38
38
  )
39
39
  features.append(feature)
40
40
  except ValueError:
41
- # TODO: not sure what to do when this happens (very occasionally)
42
- print("Found an invalid polygon...")
41
+ print("Invalid polygon geometry.")
43
42
 
44
43
  return features
45
44
 
@@ -90,8 +89,7 @@ def instance_mask2features(segmentation_mask: np.ndarray) -> List[Feature]:
90
89
  )
91
90
  features.append(feature)
92
91
  except ValueError:
93
- # TODO: not sure what to do when this happens (very occasionally)
94
- print("Found an invalid polygon...")
92
+ print("Invalid polygon geometry.")
95
93
 
96
94
  return features
97
95
 
@@ -175,15 +173,12 @@ def boxes2features(boxes: np.ndarray) -> List[Feature]:
175
173
  for i, box in enumerate(boxes):
176
174
  coords = np.array(box)[:, ::-1] # Invert XY
177
175
  coords = coords.tolist()
178
- coords.append(
179
- coords[0]
180
- ) # Add the first element at the end to close the Polygon
176
+ coords.append(coords[0]) # Close the Polygon
181
177
  try:
182
178
  geom = Polygon(coordinates=[coords], validate=True)
179
+ features.append(Feature(geometry=geom, properties={"Detection ID": i}))
183
180
  except ValueError:
184
- print("Invalid box polygon found. Expected an array of shape (N, 4, D) representing the corners of the box.")
185
- geom = None # TODO: should we handle this better?
186
- features.append(Feature(geometry=geom, properties={"Detection ID": i}))
181
+ print("Invalid box polygon geometry. Expected an array of shape (N, 4, D) representing the corners of the box.")
187
182
  return features
188
183
 
189
184
 
@@ -211,8 +206,11 @@ def points2features(points: np.ndarray) -> List[Feature]:
211
206
  features = []
212
207
  point_coords = np.array(points)[:, ::-1] # Invert XY
213
208
  for i, point in enumerate(point_coords):
214
- geom = Point(coordinates=[np.array(point).tolist()])
215
- features.append(Feature(geometry=geom, properties={"Detection ID": i}))
209
+ try:
210
+ geom = Point(coordinates=[np.array(point).tolist()])
211
+ features.append(Feature(geometry=geom, properties={"Detection ID": i}))
212
+ except:
213
+ print("Invalid point geometry.")
216
214
  return features
217
215
 
218
216
 
@@ -242,8 +240,12 @@ def vectors2features(vectors: np.ndarray) -> List[Feature]:
242
240
  point_start = list(vector[0])
243
241
  point_end = list(vector[0] + vector[1])
244
242
  coords = [point_start, point_end]
245
- geom = LineString(coordinates=coords)
246
- features.append(Feature(geometry=geom, properties={"Detection ID": i}))
243
+ try:
244
+ geom = LineString(coordinates=coords)
245
+ features.append(Feature(geometry=geom, properties={"Detection ID": i}))
246
+ except ValueError:
247
+ print("Invalid line string geometry.")
248
+
247
249
  return features
248
250
 
249
251
 
@@ -255,6 +257,5 @@ def features2vectors(features):
255
257
  displacements = vectors_arr[:, 1] - origins
256
258
  vectors = np.stack((origins, displacements))
257
259
  vectors = np.rollaxis(vectors, 1)
258
- print(f"{vectors.shape=}")
259
260
  vectors = vectors[:, :, ::-1] # Invert XY
260
261
  return vectors
@@ -106,6 +106,12 @@ def serialize_result_tuple(result_data_tuple: List[Tuple]) -> List[Dict]:
106
106
  features = data # A simple string
107
107
  elif data_type == "text":
108
108
  features = data # A text string
109
+ elif data_type == "notification":
110
+ features = data
111
+ elif data_type == "scalar":
112
+ features = data
113
+ elif data_type == "list":
114
+ features = data # Lists of numeric/string values don't need to be encoded
109
115
  else:
110
116
  print(f"Unknown data_type: {data_type}")
111
117
  features = None
@@ -155,8 +161,15 @@ def deserialize_result_tuple(serialized_results: List[Dict]) -> List[Tuple]:
155
161
  data = features # A simple string
156
162
  elif data_type == "text":
157
163
  data = features # A text string
164
+ elif data_type == "notification":
165
+ data = features
166
+ elif data_type == "scalar":
167
+ data = features
168
+ elif data_type == "list":
169
+ data = features
158
170
  else:
159
171
  print(f"Unknown data_type: {data_type}")
172
+ data = features
160
173
 
161
174
  data_tuple = (data, data_params, data_type)
162
175
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imaging-server-kit
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: Deploy image processing algorithms in FastAPI servers.
5
5
  Author-email: Mallory Wittwer <mallory.wittwer@epfl.ch>
6
6
  License: Copyright (c) 2024, EPFL