imaging-server-kit 0.0.15__tar.gz → 0.1.0__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 (209) hide show
  1. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/.github/workflows/deploy.yml +5 -4
  2. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/PKG-INFO +53 -18
  3. imaging_server_kit-0.1.0/README.md +75 -0
  4. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/docs/_config.yml +4 -1
  5. imaging_server_kit-0.1.0/docs/_static/oripy_threshold.mp4 +0 -0
  6. imaging_server_kit-0.1.0/docs/_static/progressive_threshold.mp4 +0 -0
  7. imaging_server_kit-0.1.0/docs/_static/server_napari.mp4 +0 -0
  8. imaging_server_kit-0.1.0/docs/_static/stardist_blobs.mp4 +0 -0
  9. imaging_server_kit-0.1.0/docs/_static/tiles.mp4 +0 -0
  10. imaging_server_kit-0.1.0/docs/_static/tiling2.mp4 +0 -0
  11. imaging_server_kit-0.1.0/docs/_static/yolo-stream.mp4 +0 -0
  12. imaging_server_kit-0.1.0/docs/_toc.yml +15 -0
  13. imaging_server_kit-0.1.0/docs/assets/demo_napari_screenshot.png +0 -0
  14. imaging_server_kit-0.1.0/docs/assets/gaussian_result.png +0 -0
  15. imaging_server_kit-0.1.0/docs/assets/meta_sc.png +0 -0
  16. imaging_server_kit-0.1.0/docs/assets/samples_sc.png +0 -0
  17. imaging_server_kit-0.1.0/docs/assets/screenshot_napari_threshold.png +0 -0
  18. imaging_server_kit-0.1.0/docs/assets/screenshot_server.png +0 -0
  19. imaging_server_kit-0.1.0/docs/assets/server_running.png +0 -0
  20. imaging_server_kit-0.1.0/docs/assets/threshold_qupath.png +0 -0
  21. imaging_server_kit-0.1.0/docs/index.md +99 -0
  22. imaging_server_kit-0.1.0/docs/sections/00_getting_started.md +77 -0
  23. imaging_server_kit-0.1.0/docs/sections/01_algorithm.ipynb +424 -0
  24. imaging_server_kit-0.1.0/docs/sections/02_samples.ipynb +106 -0
  25. imaging_server_kit-0.1.0/docs/sections/03_metadata.ipynb +101 -0
  26. imaging_server_kit-0.1.0/docs/sections/04_multialgo.ipynb +108 -0
  27. imaging_server_kit-0.1.0/docs/sections/05_streams.ipynb +147 -0
  28. imaging_server_kit-0.1.0/docs/sections/06_tiled.ipynb +110 -0
  29. imaging_server_kit-0.1.0/docs/sections/07_server.md +61 -0
  30. imaging_server_kit-0.1.0/docs/sections/08_python.ipynb +407 -0
  31. imaging_server_kit-0.1.0/docs/sections/09_docker.md +57 -0
  32. imaging_server_kit-0.1.0/docs/sections/10_types.md +22 -0
  33. imaging_server_kit-0.1.0/docs/sections/11_examples.md +3 -0
  34. imaging_server_kit-0.1.0/examples/readme.md +4 -0
  35. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/pyproject.toml +16 -14
  36. imaging_server_kit-0.1.0/src/imaging_server_kit/__init__.py +165 -0
  37. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/_version.py +16 -3
  38. imaging_server_kit-0.1.0/src/imaging_server_kit/cli.py +65 -0
  39. imaging_server_kit-0.1.0/src/imaging_server_kit/core/__init__.py +14 -0
  40. imaging_server_kit-0.1.0/src/imaging_server_kit/core/_etc.py +158 -0
  41. imaging_server_kit-0.1.0/src/imaging_server_kit/core/algorithm.py +450 -0
  42. imaging_server_kit-0.1.0/src/imaging_server_kit/core/app.py +329 -0
  43. imaging_server_kit-0.1.0/src/imaging_server_kit/core/client.py +221 -0
  44. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/encoding.py +12 -12
  45. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/errors.py +53 -8
  46. imaging_server_kit-0.1.0/src/imaging_server_kit/core/multialgo.py +109 -0
  47. imaging_server_kit-0.1.0/src/imaging_server_kit/core/results.py +261 -0
  48. imaging_server_kit-0.1.0/src/imaging_server_kit/core/runner.py +211 -0
  49. imaging_server_kit-0.1.0/src/imaging_server_kit/core/serialization.py +70 -0
  50. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/static/css/info.css +2 -2
  51. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/templates/index.html +3 -3
  52. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/templates/info.html +8 -20
  53. imaging_server_kit-0.1.0/src/imaging_server_kit/core/tiling.py +146 -0
  54. imaging_server_kit-0.1.0/src/imaging_server_kit/demo/__init__.py +15 -0
  55. imaging_server_kit-0.1.0/src/imaging_server_kit/demo/examples.py +519 -0
  56. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/cookiecutter.json +2 -3
  57. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/README.md +2 -2
  58. imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/docker-compose.yml → imaging_server_kit-0.1.0/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/docker-compose.yml +1 -1
  59. imaging_server_kit-0.1.0/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/main.py +41 -0
  60. imaging_server_kit-0.1.0/src/imaging_server_kit/types/__init__.py +55 -0
  61. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_bool.py +44 -0
  62. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_boxes.py +178 -0
  63. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_choice.py +59 -0
  64. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_float.py +57 -0
  65. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_image.py +132 -0
  66. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_integer.py +58 -0
  67. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_mask.py +283 -0
  68. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_notification.py +55 -0
  69. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_null.py +45 -0
  70. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_paths.py +79 -0
  71. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_points.py +196 -0
  72. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_string.py +44 -0
  73. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_tracks.py +70 -0
  74. imaging_server_kit-0.1.0/src/imaging_server_kit/types/_vectors.py +189 -0
  75. imaging_server_kit-0.1.0/src/imaging_server_kit/types/common.py +49 -0
  76. imaging_server_kit-0.1.0/src/imaging_server_kit/types/data_layer.py +120 -0
  77. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit.egg-info/PKG-INFO +53 -18
  78. imaging_server_kit-0.1.0/src/imaging_server_kit.egg-info/SOURCES.txt +106 -0
  79. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit.egg-info/requires.txt +12 -15
  80. imaging_server_kit-0.1.0/tests/test_basic.py +161 -0
  81. imaging_server_kit-0.1.0/tests/test_multialgo.py +23 -0
  82. imaging_server_kit-0.1.0/tests/test_results.py +32 -0
  83. imaging_server_kit-0.1.0/tests/test_streaming.py +70 -0
  84. imaging_server_kit-0.1.0/tests/test_tiling.py +144 -0
  85. imaging_server_kit-0.0.15/README.md +0 -38
  86. imaging_server_kit-0.0.15/docs/_toc.yml +0 -9
  87. imaging_server_kit-0.0.15/docs/assets/screenshot_napari_threshold.png +0 -0
  88. imaging_server_kit-0.0.15/docs/assets/screenshot_running_server.png +0 -0
  89. imaging_server_kit-0.0.15/docs/index.md +0 -67
  90. imaging_server_kit-0.0.15/docs/sections/algorithm_server.md +0 -191
  91. imaging_server_kit-0.0.15/docs/sections/api_endpoints.md +0 -14
  92. imaging_server_kit-0.0.15/docs/sections/authentication.md +0 -11
  93. imaging_server_kit-0.0.15/docs/sections/client_apps.md +0 -30
  94. imaging_server_kit-0.0.15/docs/sections/docker.md +0 -38
  95. imaging_server_kit-0.0.15/docs/sections/examples.md +0 -12
  96. imaging_server_kit-0.0.15/docs/sections/getting_started.md +0 -65
  97. imaging_server_kit-0.0.15/docs/sections/multi_algo_server.md +0 -40
  98. imaging_server_kit-0.0.15/examples/basic/auto_threshold.py +0 -38
  99. imaging_server_kit-0.0.15/examples/basic/multi_algo.py +0 -13
  100. imaging_server_kit-0.0.15/examples/basic/threshold.py +0 -37
  101. imaging_server_kit-0.0.15/examples/servers/docker-compose.yml +0 -14
  102. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/Dockerfile +0 -15
  103. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/README.md +0 -34
  104. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/docker-compose.yml +0 -6
  105. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/main.py +0 -105
  106. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/requirements.txt +0 -6
  107. imaging_server_kit-0.0.15/examples/servers/serverkit-cellpose/sample_images/nuclei_2d.tif +0 -0
  108. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/Dockerfile +0 -15
  109. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/README.md +0 -34
  110. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/docker-compose.yml +0 -6
  111. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/main.py +0 -133
  112. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/requirements.txt +0 -4
  113. imaging_server_kit-0.0.15/examples/servers/serverkit-orientationpy/sample_images/image1_from_OrientationJ.tif +0 -0
  114. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/Dockerfile +0 -15
  115. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/README.md +0 -30
  116. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/docker-compose.yml +0 -6
  117. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/main.py +0 -56
  118. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/requirements.txt +0 -4
  119. imaging_server_kit-0.0.15/examples/servers/serverkit-rembg/sample_images/astronaut.tif +0 -0
  120. imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/Dockerfile +0 -15
  121. imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/README.md +0 -30
  122. imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/main.py +0 -139
  123. imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/requirements.txt +0 -2
  124. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/Dockerfile +0 -15
  125. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/README.md +0 -34
  126. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/docker-compose.yml +0 -6
  127. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/main.py +0 -63
  128. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/requirements.txt +0 -2
  129. imaging_server_kit-0.0.15/examples/servers/serverkit-stackreg/sample_images/pc12-unreg.tif +0 -0
  130. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/Dockerfile +0 -15
  131. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/README.md +0 -34
  132. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/docker-compose.yml +0 -6
  133. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/main.py +0 -102
  134. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/requirements.txt +0 -5
  135. imaging_server_kit-0.0.15/examples/servers/serverkit-stardist/sample_images/nuclei_2d.tif +0 -0
  136. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/Dockerfile +0 -15
  137. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/README.md +0 -33
  138. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/docker-compose.yml +0 -6
  139. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/main.py +0 -63
  140. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/requirements.txt +0 -3
  141. imaging_server_kit-0.0.15/examples/servers/serverkit-trackpy/sample_images/tracks.tif +0 -0
  142. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/Dockerfile +0 -15
  143. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/README.md +0 -30
  144. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/docker-compose.yml +0 -6
  145. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/main.py +0 -103
  146. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/requirements.txt +0 -3
  147. imaging_server_kit-0.0.15/examples/servers/serverkit-yolo/sample_images/giraffs.png +0 -0
  148. imaging_server_kit-0.0.15/main.py +0 -9
  149. imaging_server_kit-0.0.15/src/imaging_server_kit/__init__.py +0 -30
  150. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/__init__.py +0 -5
  151. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/authenticated_server.py +0 -86
  152. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/static/css/login.css +0 -33
  153. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/static/css/register.css +0 -33
  154. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/static/js/login_script.js +0 -24
  155. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/static/js/register_script.js +0 -15
  156. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/templates/login.html +0 -21
  157. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/templates/register.html +0 -21
  158. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/utils/__init__.py +0 -3
  159. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/utils/db.py +0 -34
  160. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/utils/schemas.py +0 -15
  161. imaging_server_kit-0.0.15/src/imaging_server_kit/auth/utils/users.py +0 -55
  162. imaging_server_kit-0.0.15/src/imaging_server_kit/cli.py +0 -39
  163. imaging_server_kit-0.0.15/src/imaging_server_kit/client/__init__.py +0 -5
  164. imaging_server_kit-0.0.15/src/imaging_server_kit/client/client.py +0 -162
  165. imaging_server_kit-0.0.15/src/imaging_server_kit/core/__init__.py +0 -97
  166. imaging_server_kit-0.0.15/src/imaging_server_kit/core/decorator.py +0 -172
  167. imaging_server_kit-0.0.15/src/imaging_server_kit/core/geometry.py +0 -260
  168. imaging_server_kit-0.0.15/src/imaging_server_kit/core/serialization.py +0 -165
  169. imaging_server_kit-0.0.15/src/imaging_server_kit/core/server.py +0 -278
  170. imaging_server_kit-0.0.15/src/imaging_server_kit/core/ui_library.py +0 -160
  171. imaging_server_kit-0.0.15/src/imaging_server_kit/demo/__init__.py +0 -1
  172. imaging_server_kit-0.0.15/src/imaging_server_kit/demo/threshold.py +0 -37
  173. imaging_server_kit-0.0.15/src/imaging_server_kit/hub/__init__.py +0 -6
  174. imaging_server_kit-0.0.15/src/imaging_server_kit/hub/algorithm_hub.py +0 -95
  175. imaging_server_kit-0.0.15/src/imaging_server_kit/hub/multialgo_server.py +0 -238
  176. imaging_server_kit-0.0.15/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/docker-compose.yml +0 -6
  177. imaging_server_kit-0.0.15/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/main.py +0 -58
  178. imaging_server_kit-0.0.15/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/sample_images/blobs.tif +0 -0
  179. imaging_server_kit-0.0.15/src/imaging_server_kit.egg-info/SOURCES.txt +0 -138
  180. imaging_server_kit-0.0.15/start_algorithm_hub.py +0 -7
  181. imaging_server_kit-0.0.15/tests/test_error_paths.py +0 -75
  182. imaging_server_kit-0.0.15/tests/test_import.py +0 -41
  183. imaging_server_kit-0.0.15/tests/test_multialgo_server.py +0 -91
  184. imaging_server_kit-0.0.15/tests/test_parameter_schema.py +0 -99
  185. imaging_server_kit-0.0.15/tests/test_simple_server.py +0 -59
  186. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/.dockerignore +0 -0
  187. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/.gitattributes +0 -0
  188. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/.github/workflows/publish.yml +0 -0
  189. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/.gitignore +0 -0
  190. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/CITATION.cff +0 -0
  191. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/Dockerfile +0 -0
  192. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/Dockerfile-GPU +0 -0
  193. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/LICENSE +0 -0
  194. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/MANIFEST.in +0 -0
  195. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/build.sh +0 -0
  196. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/docs/logo.ico +0 -0
  197. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/setup.cfg +0 -0
  198. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/core/static/css/index.css +0 -0
  199. {imaging_server_kit-0.0.15/examples/basic → imaging_server_kit-0.1.0/src/imaging_server_kit/demo}/sample_images/blobs.tif +0 -0
  200. {imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log → imaging_server_kit-0.1.0/src/imaging_server_kit/demo}/sample_images/tracks.tif +0 -0
  201. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/.dockerignore +0 -0
  202. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/.gitignore +0 -0
  203. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/Dockerfile +0 -0
  204. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/requirements.txt +0 -0
  205. {imaging_server_kit-0.0.15/examples/servers/serverkit-skimage-log/sample_images → imaging_server_kit-0.1.0/src/imaging_server_kit/template/serverkit-{{ cookiecutter.project_slug }}/samples}/blobs.tif +0 -0
  206. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit.egg-info/dependency_links.txt +0 -0
  207. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit.egg-info/entry_points.txt +0 -0
  208. {imaging_server_kit-0.0.15 → imaging_server_kit-0.1.0}/src/imaging_server_kit.egg-info/top_level.txt +0 -0
  209. {imaging_server_kit-0.0.15/src/imaging_server_kit/demo → imaging_server_kit-0.1.0/tests}/sample_images/blobs.tif +0 -0
@@ -5,12 +5,13 @@ on:
5
5
  branches:
6
6
  - main
7
7
 
8
+ permissions:
9
+ pages: write
10
+ id-token: write
11
+
8
12
  jobs:
9
13
  deploy-book:
10
14
  runs-on: ubuntu-latest
11
- permissions:
12
- pages: write
13
- id-token: write
14
15
  steps:
15
16
  - uses: actions/checkout@v4
16
17
 
@@ -21,7 +22,7 @@ jobs:
21
22
  cache: pip # Implicitly uses requirements.txt for cache key
22
23
 
23
24
  - name: Install dependencies
24
- run: pip install jupyter-book
25
+ run: pip install "jupyter-book<2.0" jupytext
25
26
 
26
27
  - name: Build the book
27
28
  run: |
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imaging-server-kit
3
- Version: 0.0.15
4
- Summary: Deploy image processing algorithms in FastAPI servers.
3
+ Version: 0.1.0
4
+ Summary: Convert image processing functions to GUIs, FastAPI servers, and more.
5
5
  Author-email: Mallory Wittwer <mallory.wittwer@epfl.ch>
6
6
  License: Copyright (c) 2024, EPFL
7
7
  All rights reserved.
@@ -48,38 +48,50 @@ Classifier: Topic :: Scientific/Engineering :: Image Processing
48
48
  Requires-Python: >=3.9
49
49
  Description-Content-Type: text/markdown
50
50
  License-File: LICENSE
51
- Requires-Dist: fastapi
52
- Requires-Dist: uvicorn[standard]
53
- Requires-Dist: python-multipart
54
- Requires-Dist: httpx
55
- Requires-Dist: tifffile
56
51
  Requires-Dist: numpy
52
+ Requires-Dist: tifffile
53
+ Requires-Dist: tqdm
54
+ Requires-Dist: pydantic>=2.0
57
55
  Requires-Dist: scikit-image
58
- Requires-Dist: imantics
59
- Requires-Dist: geojson
60
56
  Requires-Dist: jinja2
61
57
  Requires-Dist: PyYAML
62
- Requires-Dist: pydantic>=2.0
63
58
  Requires-Dist: cookiecutter
64
- Requires-Dist: opencv-contrib-python-headless
59
+ Requires-Dist: imantics
60
+ Requires-Dist: geojson
61
+ Requires-Dist: fastapi
62
+ Requires-Dist: uvicorn[standard]
63
+ Requires-Dist: python-multipart
64
+ Requires-Dist: msgpack
65
+ Requires-Dist: httpx
65
66
  Provides-Extra: docs
66
- Requires-Dist: jupyter-book; extra == "docs"
67
+ Requires-Dist: jupyter-book<2.0; extra == "docs"
67
68
  Requires-Dist: jupytext; extra == "docs"
68
69
  Provides-Extra: test
69
70
  Requires-Dist: pytest; extra == "test"
70
- Provides-Extra: users
71
- Requires-Dist: fastapi-users[sqlalchemy]; extra == "users"
72
- Requires-Dist: aiosqlite; extra == "users"
73
71
  Provides-Extra: all
74
- Requires-Dist: imaging-server-kit[docs,test,users]; extra == "all"
72
+ Requires-Dist: imaging-server-kit[docs,test]; extra == "all"
75
73
  Dynamic: license-file
76
74
 
77
75
  ![EPFL Center for Imaging logo](https://imaging.epfl.ch/resources/logo-for-gitlab.svg)
78
76
  # 🪐 Imaging Server Kit
79
77
 
80
- Deploy image processing algorithms in FastAPI servers and easily run them from Napari, QuPath, and more.
78
+ Turn Python-based image processing workflows into **algorithms** that gain extra functionalities.
81
79
 
82
- [![DOI](https://zenodo.org/badge/912741131.svg)](https://doi.org/10.5281/zenodo.15673151)
80
+ - [**Turn your algorithms into web servers**](https://imaging-server-kit.github.io/imaging-server-kit/sections/07_server.html) and run computations from [QuPath](https://github.com/Imaging-Server-Kit/qupath-extension-serverkit), [Napari](https://github.com/Imaging-Server-Kit/napari-serverkit), or [Python](./sections/08_python) via HTTP requests.
81
+
82
+ https://github.com/user-attachments/assets/36bda69d-996e-4240-9a53-7e76d9ea3894
83
+
84
+ - [**Generate dock widgets**](https://imaging-server-kit.github.io/imaging-server-kit/sections/01_algorithm.html) to run your algorithms interactively in Napari.
85
+
86
+ https://github.com/user-attachments/assets/1ff572f7-f159-4f5a-afd4-7a157de3d9f8
87
+
88
+ - Run your algorithms [**tile-by-tile**](https://imaging-server-kit.github.io/imaging-server-kit/sections/06_tiled.html) on the input data.
89
+
90
+ https://github.com/user-attachments/assets/47c2f734-5683-49d9-8aea-388c3a2bc16d
91
+
92
+ - [**Stream results**](https://imaging-server-kit.github.io/imaging-server-kit/sections/05_streams.html) to inspect them in real-time.
93
+
94
+ https://github.com/user-attachments/assets/a3f69a9f-fb68-4580-a804-6c57d5807b9a
83
95
 
84
96
  ## Installation
85
97
 
@@ -112,3 +124,26 @@ This software is distributed under the terms of the [BSD-3](http://opensource.or
112
124
  ## Issues
113
125
 
114
126
  If you encounter any problems, please file an issue along with a detailed description.
127
+
128
+ ## Citing
129
+
130
+ [![DOI](https://zenodo.org/badge/912741131.svg)](https://doi.org/10.5281/zenodo.15673151)
131
+
132
+ If you use the Imaging Server Kit in the context of scientific publication, you can cite it as below.
133
+
134
+ BibTeX:
135
+
136
+ ```
137
+ @software{mallory_wittwer_2025_15673152,
138
+ author = {Mallory Wittwer and Edward Andò and Maud Barthélemy and Florian Aymanns},
139
+ title = {Imaging-Server-Kit/imaging-server-kit: v0.0.14},
140
+ url = {https://doi.org/10.5281/zenodo.15673152},
141
+ doi = {10.5281/zenodo.15673152},
142
+ version = {v0.0.14},
143
+ year = 2025,
144
+ }
145
+ ```
146
+
147
+ ## Acknowledgements
148
+
149
+ We thank the [Personalized Health and Related Technologies](https://www.sfa-phrt.ch/) for funding this project.
@@ -0,0 +1,75 @@
1
+ ![EPFL Center for Imaging logo](https://imaging.epfl.ch/resources/logo-for-gitlab.svg)
2
+ # 🪐 Imaging Server Kit
3
+
4
+ Turn Python-based image processing workflows into **algorithms** that gain extra functionalities.
5
+
6
+ - [**Turn your algorithms into web servers**](https://imaging-server-kit.github.io/imaging-server-kit/sections/07_server.html) and run computations from [QuPath](https://github.com/Imaging-Server-Kit/qupath-extension-serverkit), [Napari](https://github.com/Imaging-Server-Kit/napari-serverkit), or [Python](./sections/08_python) via HTTP requests.
7
+
8
+ https://github.com/user-attachments/assets/36bda69d-996e-4240-9a53-7e76d9ea3894
9
+
10
+ - [**Generate dock widgets**](https://imaging-server-kit.github.io/imaging-server-kit/sections/01_algorithm.html) to run your algorithms interactively in Napari.
11
+
12
+ https://github.com/user-attachments/assets/1ff572f7-f159-4f5a-afd4-7a157de3d9f8
13
+
14
+ - Run your algorithms [**tile-by-tile**](https://imaging-server-kit.github.io/imaging-server-kit/sections/06_tiled.html) on the input data.
15
+
16
+ https://github.com/user-attachments/assets/47c2f734-5683-49d9-8aea-388c3a2bc16d
17
+
18
+ - [**Stream results**](https://imaging-server-kit.github.io/imaging-server-kit/sections/05_streams.html) to inspect them in real-time.
19
+
20
+ https://github.com/user-attachments/assets/a3f69a9f-fb68-4580-a804-6c57d5807b9a
21
+
22
+ ## Installation
23
+
24
+ Install the `imaging-server-kit` package with `pip`:
25
+
26
+ ```
27
+ pip install imaging-server-kit
28
+ ```
29
+
30
+ or clone the project and install the development version:
31
+
32
+ ```
33
+ git clone https://github.com/Imaging-Server-Kit/imaging-server-kit.git
34
+ cd imaging-server-kit
35
+ pip install -e .
36
+ ```
37
+
38
+ ## Getting started
39
+
40
+ The documentation is available on [this page](https://imaging-server-kit.github.io/imaging-server-kit).
41
+
42
+ ## Contributing
43
+
44
+ Contributions are very welcome.
45
+
46
+ ## License
47
+
48
+ This software is distributed under the terms of the [BSD-3](http://opensource.org/licenses/BSD-3-Clause) license.
49
+
50
+ ## Issues
51
+
52
+ If you encounter any problems, please file an issue along with a detailed description.
53
+
54
+ ## Citing
55
+
56
+ [![DOI](https://zenodo.org/badge/912741131.svg)](https://doi.org/10.5281/zenodo.15673151)
57
+
58
+ If you use the Imaging Server Kit in the context of scientific publication, you can cite it as below.
59
+
60
+ BibTeX:
61
+
62
+ ```
63
+ @software{mallory_wittwer_2025_15673152,
64
+ author = {Mallory Wittwer and Edward Andò and Maud Barthélemy and Florian Aymanns},
65
+ title = {Imaging-Server-Kit/imaging-server-kit: v0.0.14},
66
+ url = {https://doi.org/10.5281/zenodo.15673152},
67
+ doi = {10.5281/zenodo.15673152},
68
+ version = {v0.0.14},
69
+ year = 2025,
70
+ }
71
+ ```
72
+
73
+ ## Acknowledgements
74
+
75
+ We thank the [Personalized Health and Related Technologies](https://www.sfa-phrt.ch/) for funding this project.
@@ -20,4 +20,7 @@ html:
20
20
  parse:
21
21
  myst_enable_extensions:
22
22
  - linkify
23
- - html_admonition
23
+ - html_admonition
24
+
25
+ execute:
26
+ execute_notebooks: "off"
@@ -0,0 +1,15 @@
1
+ format: jb-book
2
+ root: index
3
+ chapters:
4
+ - file: sections/00_getting_started
5
+ - file: sections/01_algorithm
6
+ - file: sections/02_samples
7
+ - file: sections/03_metadata
8
+ - file: sections/04_multialgo
9
+ - file: sections/05_streams
10
+ - file: sections/06_tiled
11
+ - file: sections/07_server
12
+ - file: sections/08_python
13
+ - file: sections/09_docker
14
+ - file: sections/10_types
15
+ - file: sections/11_examples
@@ -0,0 +1,99 @@
1
+ # Welcome to the Imaging Server Kit's documentation!
2
+
3
+ The **Imaging Server Kit** lets you turn Python-based image processing workflows into **algorithms** that gain extra functionalities.
4
+
5
+ ```python
6
+ @sk.algorithm # <- Turn your function into an algorithm
7
+ def my_algo(image, parameter):
8
+ (...)
9
+ ```
10
+
11
+ Server Kit algorithms are versatile objects that allow you run computations in a variety of ways.
12
+
13
+ For example, you can
14
+
15
+ - [**Turn your algorithm into a web server**](./sections/07_server.md), connect to it and run computations from [QuPath](https://github.com/Imaging-Server-Kit/qupath-extension-serverkit), [Napari](https://github.com/Imaging-Server-Kit/napari-serverkit), or [Python](./sections/08_python) via HTTP requests.
16
+
17
+ <video width=512 controls loop autoplay>
18
+ <source src="./_static/stardist_blobs.mp4" type="video/mp4">
19
+ </video>
20
+
21
+ - [**Generate a dock widget**](./sections/01_algorithm) to run your algorithm interactively in Napari.
22
+
23
+ <video width=512 controls loop autoplay>
24
+ <source src="./_static/oripy_threshold.mp4" type="video/mp4">
25
+ </video>
26
+
27
+ - Run your algorithm [**tile-by-tile**](./sections/06_tiled) on the input image.
28
+
29
+ <video width=512 controls loop autoplay>
30
+ <source src="./_static/tiles.mp4" type="video/mp4">
31
+ </video>
32
+
33
+ - [**Stream results**](./sections/05_streams) to inspect them in real-time.
34
+
35
+ <video width=512 controls loop autoplay>
36
+ <source src="./_static/yolo-stream.mp4" type="video/webm">
37
+ </video>
38
+
39
+ On top of that, you can [**validate data**](./sections/08_python) passed as algorithm parameters, provide [**samples**](./sections/02_samples), and generate [**documentation**](./sections/03_metadata) for your algorithm that you can share with users.
40
+
41
+ This documentation will give you a conceptual overview of the package, and walk you through the steps to learn [how to create an algorithm](./sections/01_algorithm), and give you some [suggestions of use cases](./sections/11_examples).
42
+
43
+ ## Contents
44
+
45
+ ```{tableofcontents}
46
+ ```
47
+
48
+ ## Installation
49
+
50
+ Install the `imaging-server-kit` package with `pip`:
51
+
52
+ ```
53
+ pip install imaging-server-kit
54
+ ```
55
+
56
+ or clone the project and install the development version:
57
+
58
+ ```
59
+ git clone https://github.com/Imaging-Server-Kit/imaging-server-kit.git
60
+ cd imaging-server-kit
61
+ pip install -e .
62
+ ```
63
+
64
+ **Napari plugin**
65
+
66
+ Install the [napari-serverkit](https://github.com/Imaging-Server-Kit/napari-serverkit) plugin with `pip` to enable all [Napari](https://napari.org/stable/)-related functionalities.
67
+
68
+ ```sh
69
+ pip install napari-serverkit
70
+ ```
71
+
72
+ **QuPath extention**
73
+
74
+ To use the Imaging Server Kit in [QuPath](https://qupath.github.io/), follow the installation instructions at [qupath-extension-serverkit](https://github.com/Imaging-Server-Kit/qupath-extension-serverkit).
75
+
76
+ ## License
77
+
78
+ This software is distributed under the terms of the [BSD-3](http://opensource.org/licenses/BSD-3-Clause) license.
79
+
80
+ ## Citing
81
+
82
+ If you use `imaging-server-kit` in the context of scientific publication, you can cite it as below.
83
+
84
+ BibTeX:
85
+
86
+ ```
87
+ @software{mallory_wittwer_2025_15673152,
88
+ author = {Mallory Wittwer and Edward Andò and Maud Barthélemy and Florian Aymanns},
89
+ title = {Imaging-Server-Kit/imaging-server-kit: v0.0.14},
90
+ url = {https://doi.org/10.5281/zenodo.15673152},
91
+ doi = {10.5281/zenodo.15673152},
92
+ version = {v0.0.14},
93
+ year = 2025,
94
+ }
95
+ ```
96
+
97
+ ## Acknowledgements
98
+
99
+ We thank the [Personalized Health and Related Technologies](https://www.sfa-phrt.ch/) for funding this project.
@@ -0,0 +1,77 @@
1
+ # Getting started
2
+
3
+ The following section will give you a first introduction to the Imaging Server Kit using a set of **interactive demos**.
4
+
5
+ ## Prerequisites
6
+
7
+ Make sure to have installed the required packages:
8
+
9
+ ```
10
+ pip install imaging-server-kit napari-serverkit
11
+ ```
12
+
13
+ ## Run the Napari demo
14
+
15
+ The Napari demo will give you a first idea of what the package can do. From a terminal, run:
16
+
17
+ ```
18
+ serverkit demo napari
19
+ ```
20
+
21
+ This command should open a **Napari viewer** with the *Server Kit* plugin already loaded. In the *Algorithm* dropdown, you will see a list of available algorithms.
22
+
23
+ ![Demo-Napari](../assets/demo_napari_screenshot.png)
24
+
25
+ When you select an **algorithm**, the *Parameters* panel will update to display a list of tunable **parameters** for the algorithm.
26
+
27
+ Most algorithms require an input image. You can **load a sample image** from the *Samples* dropdown. Once you have loaded an image, you can **run** the algorithm and visualize the results in the Napari viewer.
28
+
29
+ ![Napari-threshold](../assets/screenshot_napari_threshold.png)
30
+
31
+ Some algorithms automatically re-run when you change a parameters; for example, *Intensity threshold* updates the output directly when you adjust the threshold value.
32
+
33
+ ```{admonition} Algo docs
34
+ You can access a **documentation page** for an algorithm in a web browser by clickin the **🌐 Doc** button. The documentation page provides a description of the algorithm as well as detailed information about its parameters.
35
+ ```
36
+
37
+ ## Run the server demo
38
+
39
+ To explore how algorithms can be served over HTTP, start the local demo server:
40
+
41
+ ```
42
+ serverkit demo serve
43
+ ```
44
+
45
+ This launches a web server on your local machine at http://localhost:8000. If you open that page in your browser,you will see an overview of the algorithms available on the server.
46
+
47
+ ![Server-page](../assets/screenshot_server.png)
48
+
49
+ ### Connect from Napari
50
+
51
+ While your server is running, you can connect to it directly from Napari. Open another terminal and run:
52
+
53
+ ```
54
+ napari -w napari-serverkit
55
+ ```
56
+
57
+ This is equivalent to opening the plugin in Napari from `Plugins > Server Kit (Napari Server Kit)`.
58
+
59
+ In the plugin panel, enter the server address (http://localhost:8000) and press *Connect*. The *Algorithm* dropdown will populate with the available algorithms. You can use them just like in the local case.
60
+
61
+ <video width=640 controls loop autoplay>
62
+ <source src="../_static/server_napari.mp4" type="video/mp4">
63
+ </video>
64
+
65
+ ```{note}
66
+ In this demo, both client and server run on your local machine, but keep in mind that the server could also be hosted on another machine in your local network (workstation, cluster node, raspberry pi, etc.).
67
+ ```
68
+
69
+ ### Connect from QuPath
70
+
71
+ You can also use Server Kit algorithms direction from QuPath, for segmentation and object detection tasks. To try this out, follow the instructions in the [qupath-extension-serverkit](https://github.com/Imaging-Server-Kit/qupath-extension-serverkit) repository.
72
+
73
+ ![threshold-qupath](../assets/threshold_qupath.png)
74
+
75
+ ## Next steps
76
+
77
+ In the next section, you will learn to **create your own algorithm** in Python, so that it can be served, documented, and used in Napari just like the examples from the demo.