aignostics 0.2.16__tar.gz → 0.2.199__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 (257) hide show
  1. {aignostics-0.2.16 → aignostics-0.2.199}/.gitignore +3 -1
  2. {aignostics-0.2.16 → aignostics-0.2.199}/PKG-INFO +107 -98
  3. {aignostics-0.2.16 → aignostics-0.2.199}/README.md +43 -35
  4. aignostics-0.2.199/codegen/out/.openapi-generator/FILES +39 -0
  5. aignostics-0.2.199/codegen/out/aignx/codegen/api/public_api.py +3909 -0
  6. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_client.py +4 -3
  7. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/configuration.py +5 -4
  8. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/exceptions.py +4 -3
  9. aignostics-0.2.199/codegen/out/aignx/codegen/models/__init__.py +34 -0
  10. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/application_read_response.py +21 -8
  11. aignostics-0.2.199/codegen/out/aignx/codegen/models/application_read_short_response.py +104 -0
  12. aignostics-0.2.16/codegen/out/aignx/codegen/models/run_creation_request.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/application_version.py +16 -20
  13. aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_output.py +39 -0
  14. aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_state.py +38 -0
  15. aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_termination_reason.py +39 -0
  16. aignostics-0.2.199/codegen/out/aignx/codegen/models/auth0_organization.py +111 -0
  17. aignostics-0.2.199/codegen/out/aignx/codegen/models/auth0_user.py +142 -0
  18. aignostics-0.2.199/codegen/out/aignx/codegen/models/custom_metadata_update_request.py +99 -0
  19. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/http_validation_error.py +6 -3
  20. aignostics-0.2.16/codegen/out/aignx/codegen/models/input_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/input_artifact.py +10 -7
  21. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +8 -5
  22. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/item_creation_request.py +21 -10
  23. aignostics-0.2.199/codegen/out/aignx/codegen/models/item_output.py +37 -0
  24. aignostics-0.2.199/codegen/out/aignx/codegen/models/item_result_read_response.py +149 -0
  25. aignostics-0.2.199/codegen/out/aignx/codegen/models/item_state.py +38 -0
  26. aignostics-0.2.199/codegen/out/aignx/codegen/models/item_termination_reason.py +39 -0
  27. aignostics-0.2.199/codegen/out/aignx/codegen/models/me_read_response.py +97 -0
  28. aignostics-0.2.199/codegen/out/aignx/codegen/models/organization_read_response.py +113 -0
  29. aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact.py +15 -9
  30. aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +132 -0
  31. aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_scope.py +37 -0
  32. aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_visibility.py +37 -0
  33. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_creation_request.py +112 -0
  34. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/run_creation_response.py +9 -6
  35. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_item_statistics.py +99 -0
  36. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_output.py +38 -0
  37. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_read_response.py +151 -0
  38. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_state.py +38 -0
  39. aignostics-0.2.199/codegen/out/aignx/codegen/models/run_termination_reason.py +38 -0
  40. aignostics-0.2.199/codegen/out/aignx/codegen/models/user_read_response.py +144 -0
  41. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error.py +6 -3
  42. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +6 -3
  43. aignostics-0.2.16/codegen/out/aignx/codegen/models/application_version_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/version_read_response.py +23 -28
  44. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/rest.py +4 -3
  45. aignostics-0.2.199/codegen/out/docs/PublicApi.md +1062 -0
  46. aignostics-0.2.199/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +35 -0
  47. aignostics-0.2.199/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +185 -0
  48. aignostics-0.2.199/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +35 -0
  49. aignostics-0.2.199/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +185 -0
  50. aignostics-0.2.199/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
  51. aignostics-0.2.199/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
  52. aignostics-0.2.199/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
  53. aignostics-0.2.199/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
  54. aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
  55. aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
  56. aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
  57. aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
  58. aignostics-0.2.199/examples/notebook.ipynb +447 -0
  59. aignostics-0.2.199/examples/notebook.py +242 -0
  60. {aignostics-0.2.16 → aignostics-0.2.199}/examples/script.py +8 -8
  61. {aignostics-0.2.16 → aignostics-0.2.199}/pyproject.toml +171 -136
  62. aignostics-0.2.199/src/aignostics/CLAUDE.md +328 -0
  63. aignostics-0.2.199/src/aignostics/__init__.py +27 -0
  64. aignostics-0.2.199/src/aignostics/application/CLAUDE.md +784 -0
  65. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/application/__init__.py +4 -5
  66. aignostics-0.2.199/src/aignostics/application/_cli.py +1236 -0
  67. aignostics-0.2.199/src/aignostics/application/_download.py +329 -0
  68. aignostics-0.2.199/src/aignostics/application/_gui/_frame.py +282 -0
  69. aignostics-0.2.199/src/aignostics/application/_gui/_page_application_describe.py +835 -0
  70. aignostics-0.2.199/src/aignostics/application/_gui/_page_application_run_describe.py +803 -0
  71. aignostics-0.2.199/src/aignostics/application/_gui/_page_builder.py +42 -0
  72. aignostics-0.2.199/src/aignostics/application/_gui/_page_index.py +95 -0
  73. aignostics-0.2.199/src/aignostics/application/_gui/_utils.py +110 -0
  74. aignostics-0.2.199/src/aignostics/application/_gui/assets/.gitignore +1 -0
  75. aignostics-0.2.199/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
  76. aignostics-0.2.199/src/aignostics/application/_gui/assets/done.lottie +0 -0
  77. aignostics-0.2.199/src/aignostics/application/_gui/assets/empty.lottie +0 -0
  78. aignostics-0.2.199/src/aignostics/application/_gui/assets/error.lottie +0 -0
  79. aignostics-0.2.199/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
  80. aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
  81. aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
  82. aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
  83. aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
  84. aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
  85. aignostics-0.2.199/src/aignostics/application/_gui/assets/pending.lottie +0 -0
  86. aignostics-0.2.199/src/aignostics/application/_gui/assets/processing.lottie +0 -0
  87. aignostics-0.2.199/src/aignostics/application/_models.py +131 -0
  88. aignostics-0.2.199/src/aignostics/application/_service.py +1509 -0
  89. aignostics-0.2.199/src/aignostics/application/_utils.py +406 -0
  90. aignostics-0.2.199/src/aignostics/bucket/CLAUDE.md +487 -0
  91. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/bucket/__init__.py +2 -4
  92. aignostics-0.2.199/src/aignostics/bucket/_cli.py +361 -0
  93. aignostics-0.2.199/src/aignostics/bucket/_gui.py +413 -0
  94. aignostics-0.2.199/src/aignostics/bucket/_service.py +658 -0
  95. aignostics-0.2.199/src/aignostics/bucket/_settings.py +69 -0
  96. aignostics-0.2.199/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
  97. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/cli.py +33 -15
  98. aignostics-0.2.199/src/aignostics/constants.py +18 -0
  99. aignostics-0.2.199/src/aignostics/dataset/CLAUDE.md +546 -0
  100. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/__init__.py +2 -1
  101. aignostics-0.2.199/src/aignostics/dataset/_cli.py +244 -0
  102. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/_gui.py +54 -37
  103. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/_service.py +178 -18
  104. aignostics-0.2.199/src/aignostics/gui/CLAUDE.md +46 -0
  105. aignostics-0.2.199/src/aignostics/gui/__init__.py +13 -0
  106. aignostics-0.2.199/src/aignostics/gui/_error.py +45 -0
  107. aignostics-0.2.199/src/aignostics/gui/_frame.py +321 -0
  108. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/_theme.py +30 -13
  109. aignostics-0.2.199/src/aignostics/gui/assets/cat.lottie +0 -0
  110. aignostics-0.2.199/src/aignostics/notebook/CLAUDE.md +359 -0
  111. aignostics-0.2.199/src/aignostics/notebook/_gui.py +109 -0
  112. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/_notebook.py +9 -32
  113. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/_service.py +84 -48
  114. aignostics-0.2.199/src/aignostics/notebook/assets/python.lottie +0 -0
  115. aignostics-0.2.199/src/aignostics/platform/CLAUDE.md +1570 -0
  116. aignostics-0.2.199/src/aignostics/platform/__init__.py +143 -0
  117. aignostics-0.2.199/src/aignostics/platform/_authentication.py +593 -0
  118. aignostics-0.2.199/src/aignostics/platform/_cli.py +138 -0
  119. aignostics-0.2.199/src/aignostics/platform/_client.py +297 -0
  120. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/_constants.py +10 -9
  121. aignostics-0.2.199/src/aignostics/platform/_messages.py +10 -0
  122. aignostics-0.2.199/src/aignostics/platform/_operation_cache.py +153 -0
  123. aignostics-0.2.199/src/aignostics/platform/_sdk_metadata.py +382 -0
  124. aignostics-0.2.199/src/aignostics/platform/_service.py +303 -0
  125. aignostics-0.2.199/src/aignostics/platform/_settings.py +651 -0
  126. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/_utils.py +62 -4
  127. aignostics-0.2.199/src/aignostics/platform/resources/applications.py +302 -0
  128. aignostics-0.2.199/src/aignostics/platform/resources/runs.py +683 -0
  129. aignostics-0.2.199/src/aignostics/qupath/CLAUDE.md +577 -0
  130. aignostics-0.2.199/src/aignostics/qupath/__init__.py +24 -0
  131. aignostics-0.2.199/src/aignostics/qupath/_cli.py +492 -0
  132. aignostics-0.2.199/src/aignostics/qupath/_gui.py +219 -0
  133. aignostics-0.2.199/src/aignostics/qupath/_service.py +1271 -0
  134. aignostics-0.2.199/src/aignostics/qupath/assets/download.lottie +0 -0
  135. aignostics-0.2.199/src/aignostics/qupath/assets/microscope.lottie +0 -0
  136. aignostics-0.2.199/src/aignostics/qupath/assets/update.lottie +0 -0
  137. aignostics-0.2.199/src/aignostics/qupath/scripts/add.groovy +250 -0
  138. aignostics-0.2.199/src/aignostics/qupath/scripts/annotate.groovy +118 -0
  139. aignostics-0.2.199/src/aignostics/qupath/scripts/inspect.groovy +193 -0
  140. aignostics-0.2.199/src/aignostics/qupath/scripts/test.groovy +7 -0
  141. aignostics-0.2.199/src/aignostics/system/CLAUDE.md +466 -0
  142. aignostics-0.2.199/src/aignostics/system/_cli.py +260 -0
  143. aignostics-0.2.199/src/aignostics/system/_gui.py +126 -0
  144. aignostics-0.2.199/src/aignostics/system/_service.py +607 -0
  145. aignostics-0.2.199/src/aignostics/system/assets/system.lottie +0 -0
  146. aignostics-0.2.16/src/aignostics/dataset/_idc_index.py → aignostics-0.2.199/src/aignostics/third_party/idc_index.py +25 -5
  147. aignostics-0.2.199/src/aignostics/third_party/showinfm/__init__.py +13 -0
  148. aignostics-0.2.199/src/aignostics/third_party/showinfm/argumentsparse.py +72 -0
  149. aignostics-0.2.199/src/aignostics/third_party/showinfm/constants.py +25 -0
  150. aignostics-0.2.199/src/aignostics/third_party/showinfm/py.typed +0 -0
  151. aignostics-0.2.199/src/aignostics/third_party/showinfm/showinfm.py +534 -0
  152. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/__init__.py +27 -0
  153. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/linux.py +787 -0
  154. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/tools.py +114 -0
  155. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/urivalidate.py +517 -0
  156. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/windows.py +100 -0
  157. aignostics-0.2.199/src/aignostics/utils/CLAUDE.md +276 -0
  158. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/__init__.py +23 -6
  159. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_cli.py +21 -2
  160. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_console.py +1 -0
  161. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_constants.py +3 -0
  162. aignostics-0.2.199/src/aignostics/utils/_fs.py +127 -0
  163. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_gui.py +9 -3
  164. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_log.py +54 -24
  165. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_logfire.py +15 -2
  166. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_notebook.py +16 -11
  167. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_process.py +3 -0
  168. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_sentry.py +16 -6
  169. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_service.py +14 -3
  170. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_settings.py +8 -2
  171. aignostics-0.2.199/src/aignostics/utils/_user_agent.py +37 -0
  172. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/boot.py +37 -20
  173. aignostics-0.2.199/src/aignostics/wsi/CLAUDE.md +478 -0
  174. aignostics-0.2.199/src/aignostics/wsi/_cli.py +153 -0
  175. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_gui.py +24 -20
  176. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_openslide_handler.py +41 -11
  177. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_service.py +54 -67
  178. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_utils.py +0 -20
  179. aignostics-0.2.199/src/aignostics/wsi/assets/fallback.png +0 -0
  180. aignostics-0.2.199/src/aignostics.py +83 -0
  181. aignostics-0.2.16/codegen/out/.openapi-generator/FILES +0 -29
  182. aignostics-0.2.16/codegen/out/aignx/codegen/api/public_api.py +0 -2522
  183. aignostics-0.2.16/codegen/out/aignx/codegen/models/__init__.py +0 -22
  184. aignostics-0.2.16/codegen/out/aignx/codegen/models/application_run_status.py +0 -40
  185. aignostics-0.2.16/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -108
  186. aignostics-0.2.16/codegen/out/aignx/codegen/models/item_status.py +0 -38
  187. aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -105
  188. aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -34
  189. aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -89
  190. aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_item.py +0 -114
  191. aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -95
  192. aignostics-0.2.16/codegen/out/aignx/codegen/models/run_read_response.py +0 -107
  193. aignostics-0.2.16/codegen/out/aignx/codegen/models/transfer_urls.py +0 -87
  194. aignostics-0.2.16/codegen/out/aignx/codegen/models/user_payload.py +0 -116
  195. aignostics-0.2.16/codegen/out/docs/PublicApi.md +0 -665
  196. aignostics-0.2.16/examples/e2e.py +0 -165
  197. aignostics-0.2.16/examples/notebook.ipynb +0 -270
  198. aignostics-0.2.16/examples/notebook.py +0 -242
  199. aignostics-0.2.16/src/aignostics/__init__.py +0 -6
  200. aignostics-0.2.16/src/aignostics/application/_cli.py +0 -707
  201. aignostics-0.2.16/src/aignostics/application/_gui.py +0 -1194
  202. aignostics-0.2.16/src/aignostics/application/_service.py +0 -969
  203. aignostics-0.2.16/src/aignostics/application/_utils.py +0 -265
  204. aignostics-0.2.16/src/aignostics/bucket/_cli.py +0 -158
  205. aignostics-0.2.16/src/aignostics/bucket/_gui.py +0 -142
  206. aignostics-0.2.16/src/aignostics/bucket/_service.py +0 -359
  207. aignostics-0.2.16/src/aignostics/bucket/_settings.py +0 -53
  208. aignostics-0.2.16/src/aignostics/constants.py +0 -11
  209. aignostics-0.2.16/src/aignostics/dataset/_cli.py +0 -243
  210. aignostics-0.2.16/src/aignostics/gui/__init__.py +0 -12
  211. aignostics-0.2.16/src/aignostics/gui/_frame.py +0 -205
  212. aignostics-0.2.16/src/aignostics/gui/assets/home-card-1.png +0 -0
  213. aignostics-0.2.16/src/aignostics/gui/assets/home-card-2.png +0 -0
  214. aignostics-0.2.16/src/aignostics/gui/assets/home-card-3.png +0 -0
  215. aignostics-0.2.16/src/aignostics/gui/assets/home-card-4.png +0 -0
  216. aignostics-0.2.16/src/aignostics/gui/assets/home-card-5.png +0 -0
  217. aignostics-0.2.16/src/aignostics/notebook/_gui.py +0 -33
  218. aignostics-0.2.16/src/aignostics/platform/__init__.py +0 -98
  219. aignostics-0.2.16/src/aignostics/platform/_authentication.py +0 -356
  220. aignostics-0.2.16/src/aignostics/platform/_client.py +0 -106
  221. aignostics-0.2.16/src/aignostics/platform/_messages.py +0 -6
  222. aignostics-0.2.16/src/aignostics/platform/_service.py +0 -98
  223. aignostics-0.2.16/src/aignostics/platform/_settings.py +0 -200
  224. aignostics-0.2.16/src/aignostics/platform/resources/applications.py +0 -166
  225. aignostics-0.2.16/src/aignostics/platform/resources/runs.py +0 -375
  226. aignostics-0.2.16/src/aignostics/qupath/__init__.py +0 -17
  227. aignostics-0.2.16/src/aignostics/qupath/_cli.py +0 -106
  228. aignostics-0.2.16/src/aignostics/qupath/_gui.py +0 -80
  229. aignostics-0.2.16/src/aignostics/qupath/_service.py +0 -552
  230. aignostics-0.2.16/src/aignostics/system/_cli.py +0 -147
  231. aignostics-0.2.16/src/aignostics/system/_gui.py +0 -60
  232. aignostics-0.2.16/src/aignostics/system/_service.py +0 -335
  233. aignostics-0.2.16/src/aignostics/wsi/_cli.py +0 -132
  234. {aignostics-0.2.16 → aignostics-0.2.199}/LICENSE +0 -0
  235. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/.openapi-generator/VERSION +0 -0
  236. {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_response.py +0 -0
  237. {aignostics-0.2.16 → aignostics-0.2.199}/examples/__init__.py +0 -0
  238. {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/image-not-found.png +0 -0
  239. {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/ruo.png +0 -0
  240. {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/ruo.svg +0 -0
  241. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/application/_settings.py +0 -0
  242. {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/bucket}/assets/Google-Cloud-logo.svg +0 -0
  243. {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/dataset}/assets/NIH-IDC-logo.svg +0 -0
  244. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
  245. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/assets/logo.png +0 -0
  246. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/__init__.py +0 -0
  247. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/resources/__init__.py +0 -0
  248. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/resources/utils.py +0 -0
  249. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/qupath/_settings.py +0 -0
  250. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/__init__.py +0 -0
  251. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/_exceptions.py +0 -0
  252. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/_settings.py +0 -0
  253. {aignostics-0.2.16/src/aignostics/utils/.vendored → aignostics-0.2.199/src/aignostics/third_party}/bottle.py +0 -0
  254. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_di.py +0 -0
  255. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_health.py +0 -0
  256. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/__init__.py +0 -0
  257. {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_pydicom_handler.py +0 -0
@@ -76,6 +76,7 @@ node_modules/
76
76
 
77
77
  # AI workflow
78
78
  .fixme
79
+ CLAUDE.local.md
79
80
 
80
81
  # Copier
81
82
  *.rej
@@ -94,5 +95,6 @@ data/**
94
95
  dist_vercel
95
96
  setup.sh.secret
96
97
  __marimo__
98
+ dist_native/**
99
+ !dist_native/.keep
97
100
  notes.md
98
- CLAUDE.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aignostics
3
- Version: 0.2.16
3
+ Version: 0.2.199
4
4
  Summary: 🔬 Python SDK providing access to the Aignostics Platform. Includes Aignostics Launchpad (Desktop Application), Aignostics CLI (Command-Line Interface), example notebooks, and Aignostics Client Library.
5
5
  Project-URL: Homepage, https://aignostics.readthedocs.io/en/latest/
6
6
  Project-URL: Documentation, https://aignostics.readthedocs.io/en/latest/
@@ -47,71 +47,72 @@ Classifier: Programming Language :: Python :: 3.11
47
47
  Classifier: Programming Language :: Python :: 3.12
48
48
  Classifier: Programming Language :: Python :: 3.13
49
49
  Classifier: Typing :: Typed
50
- Requires-Python: <4.0,>=3.11
51
- Requires-Dist: appdirs>=1.4.4
52
- Requires-Dist: boto3>=1.38.22
53
- Requires-Dist: click
54
- Requires-Dist: dicom-validator>=0.6.2
55
- Requires-Dist: dicomweb-client[gcp]>=0.59.3
56
- Requires-Dist: duckdb<=1.2.1,>=0.10.0
57
- Requires-Dist: fastapi[all,standard]>=0.115.12
58
- Requires-Dist: google-cloud-storage>=3.1.0
59
- Requires-Dist: google-crc32c>=1.7.1
60
- Requires-Dist: highdicom>=0.25.1
61
- Requires-Dist: httpx>=0.28.1
62
- Requires-Dist: humanize>=4.12.3
63
- Requires-Dist: idc-index-data==21.0.0
64
- Requires-Dist: jsf>=0.11.2
65
- Requires-Dist: jsonschema>=4.23.0
66
- Requires-Dist: logfire[system-metrics]>=3.16.0
67
- Requires-Dist: nicegui[native]>=2.17.0
68
- Requires-Dist: openslide-bin>=4.0.0.8
69
- Requires-Dist: openslide-python>=1.4.2
70
- Requires-Dist: opentelemetry-instrumentation-fastapi>=0.53b0
71
- Requires-Dist: opentelemetry-instrumentation-httpx>=0.53b0
72
- Requires-Dist: opentelemetry-instrumentation-jinja2>=0.53b0
73
- Requires-Dist: opentelemetry-instrumentation-requests>=0.53b0
74
- Requires-Dist: opentelemetry-instrumentation-sqlite3>=0.53b0
75
- Requires-Dist: opentelemetry-instrumentation-tornado>=0.53b0
76
- Requires-Dist: opentelemetry-instrumentation-urllib3>=0.53b0
77
- Requires-Dist: opentelemetry-instrumentation-urllib>=0.53b0
78
- Requires-Dist: packaging
79
- Requires-Dist: pandas<=2.2.4
80
- Requires-Dist: platformdirs
81
- Requires-Dist: psutil
82
- Requires-Dist: psutil>=7.0.0
83
- Requires-Dist: pyarrow
84
- Requires-Dist: pydantic-settings>=2.9.1
85
- Requires-Dist: pyjwt[crypto]>=2.10.1
86
- Requires-Dist: python-dateutil>=2.9.0.post0
87
- Requires-Dist: pywin32>=310; sys_platform == 'win32'
88
- Requires-Dist: pyyaml>=6.0
89
- Requires-Dist: requests
90
- Requires-Dist: requests-oauthlib>=2.0.0
91
- Requires-Dist: requests>=2.32.3
92
- Requires-Dist: s5cmd
93
- Requires-Dist: s5cmd>=0.2.0
94
- Requires-Dist: sentry-sdk>=2.29.1
95
- Requires-Dist: shapely>=2.1.1
96
- Requires-Dist: show-in-file-manager>=1.1.5
97
- Requires-Dist: sphinx-click
98
- Requires-Dist: tqdm
99
- Requires-Dist: tqdm>=4.67.1
100
- Requires-Dist: typer>=0.15.4
101
- Requires-Dist: uptime>=3.0.1
102
- Requires-Dist: urllib3>=2.2.3
103
- Requires-Dist: wsidicom>=0.27.1
50
+ Requires-Python: <3.14,>=3.11
51
+ Requires-Dist: aiopath<1,>=0.6.11
52
+ Requires-Dist: boto3<2,>=1.40.64
53
+ Requires-Dist: certifi<2026,>=2025.10.5
54
+ Requires-Dist: defusedxml>=0.7.1
55
+ Requires-Dist: dicom-validator<1,>=0.7.3
56
+ Requires-Dist: dicomweb-client[gcp]<1,>=0.59.3
57
+ Requires-Dist: duckdb<=1.4.1,>=0.10.0
58
+ Requires-Dist: fastapi[all,standard]<1,>=0.120.4
59
+ Requires-Dist: fastparquet<2025,>=2024.11.0
60
+ Requires-Dist: google-cloud-storage<4,>=3.4.1
61
+ Requires-Dist: google-crc32c<2,>=1.7.1
62
+ Requires-Dist: highdicom<1,>=0.26.1
63
+ Requires-Dist: html-sanitizer<3,>=2.6.0
64
+ Requires-Dist: httpx<1,>=0.28.1
65
+ Requires-Dist: humanize<5,>=4.14.0
66
+ Requires-Dist: idc-index-data==22.0.2
67
+ Requires-Dist: ijson<4,>=3.4.0.post0
68
+ Requires-Dist: jsf<1,>=0.11.2
69
+ Requires-Dist: jsonschema[format-nongpl]<5,>=4.25.1
70
+ Requires-Dist: logfire[system-metrics]<5,>=4.14.2
71
+ Requires-Dist: nicegui[native]<3.2.0,>=3.1.0
72
+ Requires-Dist: openslide-bin<5,>=4.0.0.8
73
+ Requires-Dist: openslide-python<2,>=1.4.2
74
+ Requires-Dist: opentelemetry-instrumentation-fastapi<1,>=0.53b0
75
+ Requires-Dist: opentelemetry-instrumentation-httpx<1,>=0.53b0
76
+ Requires-Dist: opentelemetry-instrumentation-jinja2<1,>=0.53b0
77
+ Requires-Dist: opentelemetry-instrumentation-requests<1,>=0.53b0
78
+ Requires-Dist: opentelemetry-instrumentation-sqlite3<1,>=0.53b0
79
+ Requires-Dist: opentelemetry-instrumentation-tornado<1,>=0.53b0
80
+ Requires-Dist: opentelemetry-instrumentation-urllib3<1,>=0.53b0
81
+ Requires-Dist: opentelemetry-instrumentation-urllib<1,>=0.53b0
82
+ Requires-Dist: packaging<26,>=25.0
83
+ Requires-Dist: pandas<3,>=2.3.3
84
+ Requires-Dist: platformdirs<5,>=4.3.8
85
+ Requires-Dist: platformdirs<5,>=4.5.0
86
+ Requires-Dist: psutil<8,>=7.1.2
87
+ Requires-Dist: pydantic-settings<3,>=2.11.0
88
+ Requires-Dist: pyjwt[crypto]<3,>=2.10.1
89
+ Requires-Dist: python-dateutil<3,>=2.9.0.post0
90
+ Requires-Dist: pywin32<311,>=310; sys_platform == 'win32'
91
+ Requires-Dist: pyyaml<7,>=6.0.3
92
+ Requires-Dist: requests-oauthlib<3,>=2.0.0
93
+ Requires-Dist: requests<3,>=2.32.5
94
+ Requires-Dist: s5cmd<1,>=0.3.3
95
+ Requires-Dist: semver<4,>=3.0.4
96
+ Requires-Dist: sentry-sdk<3,>=2.43.0
97
+ Requires-Dist: shapely<3,>=2.1.2
98
+ Requires-Dist: tenacity<10,>=9.1.2
99
+ Requires-Dist: tqdm<5,>=4.67.1
100
+ Requires-Dist: truststore<1,>=0.10.4
101
+ Requires-Dist: typer<1,>=0.20.0
102
+ Requires-Dist: uptime<4,>=3.0.1
103
+ Requires-Dist: urllib3<3,>=2.5.0
104
+ Requires-Dist: wsidicom<1,>=0.28.1
104
105
  Provides-Extra: jupyter
105
- Requires-Dist: jupyter>=1.1.1; extra == 'jupyter'
106
+ Requires-Dist: jupyter<2,>=1.1.1; extra == 'jupyter'
106
107
  Provides-Extra: marimo
107
- Requires-Dist: cloudpathlib>=0.21.1; extra == 'marimo'
108
- Requires-Dist: marimo>=0.13.11; extra == 'marimo'
109
- Requires-Dist: matplotlib>=3.10.3; extra == 'marimo'
110
- Requires-Dist: shapely>=2.1.0; extra == 'marimo'
108
+ Requires-Dist: cloudpathlib<1,>=0.23.0; extra == 'marimo'
109
+ Requires-Dist: ipython<10,>=9.6.0; extra == 'marimo'
110
+ Requires-Dist: marimo<1,>=0.17.2; extra == 'marimo'
111
+ Requires-Dist: matplotlib<4,>=3.10.7; extra == 'marimo'
112
+ Requires-Dist: shapely<3,>=2.1.0; extra == 'marimo'
113
+ Provides-Extra: pyinstaller
114
+ Requires-Dist: pyinstaller<7,>=6.14.0; extra == 'pyinstaller'
111
115
  Provides-Extra: qupath
112
- Requires-Dist: geopandas>=1.0.1; extra == 'qupath'
113
- Requires-Dist: ijson>=3.3.0; extra == 'qupath'
114
- Requires-Dist: paquo>=0.8.1; extra == 'qupath'
115
116
  Description-Content-Type: text/markdown
116
117
 
117
118
 
@@ -141,7 +142,7 @@ Description-Content-Type: text/markdown
141
142
  The **Aignostics Python SDK** includes multiple pathways to interact with the
142
143
  **Aignostics Platform**:
143
144
 
144
- 1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
145
+ 1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
145
146
  [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) directly from your desktop.
146
147
  View your results by launching popular tools such as [QuPath](https://qupath.github.io/) and Python Notebooks with one click.
147
148
  The app runs on Mac OS X, Windows, and Linux.
@@ -176,28 +177,34 @@ more about how we achieve
176
177
  ## Quick Start
177
178
 
178
179
  > [!Note]
179
- > See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
180
- > If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
181
- > The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
180
+ > See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
181
+ > If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
182
+ > The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
182
183
  > If you are not familiar with terminology please check the glossary at the end of this document.
183
184
 
184
185
  ### Launchpad: Run your first computational pathology analysis in 10 minutes from your desktop
185
186
 
186
187
  The **Aignostics Launchpad** is a graphical desktop application that allows you to run
187
- applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
188
+ applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
188
189
 
189
190
  The Launchpad is available for Mac OS X, Windows, and Linux, and can be installed easily:
190
191
 
191
- 1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
192
+ 1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
192
193
  page in the Aignostics Console.
193
194
  2. Copy the installation script and paste it into your terminal - compatible with MacOS, Windows, and Linux.
194
195
  3. Launch the application by running `uvx aignostics launchpad`.
195
- 4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
196
+ 4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
196
197
  with [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) and other computational pathology applications.
197
198
 
199
+ > [!Note]
200
+ > The Launchpad features a growing ecosystem of extensions that seamlessly integrate with standard digital pathology tools. To use the Launchpad with all available extensions, run `uvx --from "aignostics[qupath,marimo]" aignostics launchpad`. Currently available extensions are:
201
+ >
202
+ > 1. **QuPath extension**: View your application results in [QuPath](https://qupath.github.io/) with a single click. The Launchpad creates QuPath projects on-the-fly.
203
+ > 2. **Marimo extension**: Analyze your application results using [Marimo](https://marimo.io/) notebooks embedded in the Launchpad. You don't have to leave the Launchpad to do real data science.
204
+
198
205
  ### CLI: Manage datasets and application runs from your terminal
199
206
 
200
- The Python SDK includes the **Aignostics CLI**, a Command-Line Interface that allows you to
207
+ The Python SDK includes the **Aignostics CLI**, a Command-Line Interface (CLI) that allows you to
201
208
  interact with the Aignostics Platform directly from your terminal or shell script.
202
209
 
203
210
  See as follows for a simple example where we download a sample dataset for the [Atlas
@@ -218,7 +225,7 @@ nano tcga_luad/metadata.csv
218
225
  uvx aignostics application run upload he-tme data/tcga_luad/run.csv
219
226
  # Submit the application run and print tha run id
220
227
  uvx aignostics application run submit he-tme data/tcga_luad/run.csv
221
- # Check the status of the application run you triggered
228
+ # Check the status of the application run you submitted
222
229
  uvx aignostics application run list
223
230
  # Incrementally download results when they become available
224
231
  # Fill in the id from the output in the previous step
@@ -255,10 +262,10 @@ to learn about all commands and options available.
255
262
  > [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
256
263
  > and follow the steps outlined in the `Use in Python Notebooks` section.
257
264
 
258
- The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
265
+ The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
259
266
  with the Aignostics Platform in your notebook environment.
260
267
 
261
- The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
268
+ The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
262
269
  please follow the steps outlined in the snippet below to clone this repository and start either the
263
270
  [Jupyter](https://docs.jupyter.org/en/latest/index.html)
264
271
  ([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
@@ -292,12 +299,12 @@ uv run marimo edit examples/notebook.py
292
299
  Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
293
300
  *Aignostics Client Library* for integration with your Python Codebase.
294
301
 
295
- The following sections outline how to install the Python SDK for this purpose and
302
+ The following sections outline how to install the Python SDK for this purpose and
296
303
  interact with the Client.
297
304
 
298
305
  ### Installation
299
306
 
300
- The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
307
+ The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
301
308
  is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
302
309
 
303
310
  **Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
@@ -317,7 +324,7 @@ pip install aignostics
317
324
 
318
325
  #### Usage
319
326
 
320
- The following snippet shows how to use the Client to trigger an application
327
+ The following snippet shows how to use the Client to submit an application
321
328
  run:
322
329
 
323
330
  ```python
@@ -325,21 +332,21 @@ from aignostics import platform
325
332
 
326
333
  # initialize the client
327
334
  client = platform.Client()
328
- # trigger an application run
329
- application_run = client.runs.create(
330
- application_version="two-task-dummy:v0.35.0",
335
+ # submit an application run
336
+ application_run = client.runs.submit(
337
+ application_id="test-app",
331
338
  items=[
332
339
  platform.InputItem(
333
- reference="slide-1",
340
+ external_id="slide-1",
334
341
  input_artifacts=[
335
342
  platform.InputArtifact(
336
- name="user_slide",
343
+ name="whole_slide_image",
337
344
  download_url="<a signed url to download the data>",
338
345
  metadata={
339
- "checksum_crc32c": "AAAAAA==",
340
- "base_mpp": 0.25,
341
- "width": 1000,
342
- "height": 1000,
346
+ "checksum_base64_crc32c": "AAAAAA==",
347
+ "resolution_mpp": 0.25,
348
+ "width_px": 1000,
349
+ "height_px": 1000,
343
350
  },
344
351
  )
345
352
  ],
@@ -357,22 +364,23 @@ to learn about all classes and methods.
357
364
 
358
365
  ##### Defining the input for an application run
359
366
 
360
- Next to the `application_version` of the application you want to run, you have
361
- to define the input items you want to process in the run. The input items are
362
- defined as follows:
367
+ When creating an application run, you need to specify the `application_id` and optionally the
368
+ `application_version` (version number) of the application you want to run. If you omit the version,
369
+ the latest version will be used automatically. Additionally, you need to define the input items you
370
+ want to process in the run. The input items are defined as follows:
363
371
 
364
372
  ```python
365
373
  platform.InputItem(
366
- reference="1",
374
+ external_id="1",
367
375
  input_artifacts=[
368
376
  platform.InputArtifact(
369
- name="user_slide", # defined by the application version input_artifact schema
377
+ name="whole_slide_image", # defined by the application version's input artifact schema
370
378
  download_url="<a signed url to download the data>",
371
- metadata={ # defined by the application version input_artifact schema
372
- "checksum_crc32c": "N+LWCg==",
373
- "base_mpp": 0.46499982,
374
- "width": 3728,
375
- "height": 3640,
379
+ metadata={ # defined by the application version's input artifact schema
380
+ "checksum_base64_crc32c": "N+LWCg==",
381
+ "resolution_mpp": 0.46499982,
382
+ "width_px": 3728,
383
+ "height_px": 3640,
376
384
  },
377
385
  )
378
386
  ],
@@ -385,7 +393,7 @@ string. This is used to identify the item in the results later on. The
385
393
  data & metadata you need to provide for each item. The required artifacts depend
386
394
  on the application version you want to run - in the case of test application,
387
395
  there is only one artifact required, which is the image to process on. The
388
- artifact name is defined as `user_slide`.
396
+ artifact name is defined as `whole_slide_image` for this application.
389
397
 
390
398
  The `download_url` is a signed URL that allows the Aignostics Platform to
391
399
  download the image data later during processing.
@@ -526,7 +534,8 @@ Every WSI processed by the Platform generates a cost. Usage of the "Test Applica
526
534
  with detailed documentation of public classes and functions.
527
535
  4. Check out the
528
536
  [API reference](https://aignostics.readthedocs.io/en/latest/api_reference_v1.html)
529
- with detailed documentation of all API operations and parameters.
537
+ with detailed documentation of all API operations and parameters. See as well
538
+ the OpenAPI Specification in [JSON](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.json) and [YAML](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.yaml), and the [API Explorer](https://aignostics.readthedocs.io/en/latest/api_explorer_v1.html).
530
539
  5. Our
531
540
  [release notes](https://aignostics.readthedocs.io/en/latest/release-notes.html)
532
541
  provide a complete log of recent improvements and changes.
@@ -25,7 +25,7 @@
25
25
  The **Aignostics Python SDK** includes multiple pathways to interact with the
26
26
  **Aignostics Platform**:
27
27
 
28
- 1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
28
+ 1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
29
29
  [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) directly from your desktop.
30
30
  View your results by launching popular tools such as [QuPath](https://qupath.github.io/) and Python Notebooks with one click.
31
31
  The app runs on Mac OS X, Windows, and Linux.
@@ -60,28 +60,34 @@ more about how we achieve
60
60
  ## Quick Start
61
61
 
62
62
  > [!Note]
63
- > See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
64
- > If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
65
- > The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
63
+ > See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
64
+ > If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
65
+ > The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
66
66
  > If you are not familiar with terminology please check the glossary at the end of this document.
67
67
 
68
68
  ### Launchpad: Run your first computational pathology analysis in 10 minutes from your desktop
69
69
 
70
70
  The **Aignostics Launchpad** is a graphical desktop application that allows you to run
71
- applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
71
+ applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
72
72
 
73
73
  The Launchpad is available for Mac OS X, Windows, and Linux, and can be installed easily:
74
74
 
75
- 1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
75
+ 1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
76
76
  page in the Aignostics Console.
77
77
  2. Copy the installation script and paste it into your terminal - compatible with MacOS, Windows, and Linux.
78
78
  3. Launch the application by running `uvx aignostics launchpad`.
79
- 4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
79
+ 4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
80
80
  with [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) and other computational pathology applications.
81
81
 
82
+ > [!Note]
83
+ > The Launchpad features a growing ecosystem of extensions that seamlessly integrate with standard digital pathology tools. To use the Launchpad with all available extensions, run `uvx --from "aignostics[qupath,marimo]" aignostics launchpad`. Currently available extensions are:
84
+ >
85
+ > 1. **QuPath extension**: View your application results in [QuPath](https://qupath.github.io/) with a single click. The Launchpad creates QuPath projects on-the-fly.
86
+ > 2. **Marimo extension**: Analyze your application results using [Marimo](https://marimo.io/) notebooks embedded in the Launchpad. You don't have to leave the Launchpad to do real data science.
87
+
82
88
  ### CLI: Manage datasets and application runs from your terminal
83
89
 
84
- The Python SDK includes the **Aignostics CLI**, a Command-Line Interface that allows you to
90
+ The Python SDK includes the **Aignostics CLI**, a Command-Line Interface (CLI) that allows you to
85
91
  interact with the Aignostics Platform directly from your terminal or shell script.
86
92
 
87
93
  See as follows for a simple example where we download a sample dataset for the [Atlas
@@ -102,7 +108,7 @@ nano tcga_luad/metadata.csv
102
108
  uvx aignostics application run upload he-tme data/tcga_luad/run.csv
103
109
  # Submit the application run and print tha run id
104
110
  uvx aignostics application run submit he-tme data/tcga_luad/run.csv
105
- # Check the status of the application run you triggered
111
+ # Check the status of the application run you submitted
106
112
  uvx aignostics application run list
107
113
  # Incrementally download results when they become available
108
114
  # Fill in the id from the output in the previous step
@@ -139,10 +145,10 @@ to learn about all commands and options available.
139
145
  > [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
140
146
  > and follow the steps outlined in the `Use in Python Notebooks` section.
141
147
 
142
- The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
148
+ The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
143
149
  with the Aignostics Platform in your notebook environment.
144
150
 
145
- The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
151
+ The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
146
152
  please follow the steps outlined in the snippet below to clone this repository and start either the
147
153
  [Jupyter](https://docs.jupyter.org/en/latest/index.html)
148
154
  ([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
@@ -176,12 +182,12 @@ uv run marimo edit examples/notebook.py
176
182
  Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
177
183
  *Aignostics Client Library* for integration with your Python Codebase.
178
184
 
179
- The following sections outline how to install the Python SDK for this purpose and
185
+ The following sections outline how to install the Python SDK for this purpose and
180
186
  interact with the Client.
181
187
 
182
188
  ### Installation
183
189
 
184
- The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
190
+ The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
185
191
  is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
186
192
 
187
193
  **Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
@@ -201,7 +207,7 @@ pip install aignostics
201
207
 
202
208
  #### Usage
203
209
 
204
- The following snippet shows how to use the Client to trigger an application
210
+ The following snippet shows how to use the Client to submit an application
205
211
  run:
206
212
 
207
213
  ```python
@@ -209,21 +215,21 @@ from aignostics import platform
209
215
 
210
216
  # initialize the client
211
217
  client = platform.Client()
212
- # trigger an application run
213
- application_run = client.runs.create(
214
- application_version="two-task-dummy:v0.35.0",
218
+ # submit an application run
219
+ application_run = client.runs.submit(
220
+ application_id="test-app",
215
221
  items=[
216
222
  platform.InputItem(
217
- reference="slide-1",
223
+ external_id="slide-1",
218
224
  input_artifacts=[
219
225
  platform.InputArtifact(
220
- name="user_slide",
226
+ name="whole_slide_image",
221
227
  download_url="<a signed url to download the data>",
222
228
  metadata={
223
- "checksum_crc32c": "AAAAAA==",
224
- "base_mpp": 0.25,
225
- "width": 1000,
226
- "height": 1000,
229
+ "checksum_base64_crc32c": "AAAAAA==",
230
+ "resolution_mpp": 0.25,
231
+ "width_px": 1000,
232
+ "height_px": 1000,
227
233
  },
228
234
  )
229
235
  ],
@@ -241,22 +247,23 @@ to learn about all classes and methods.
241
247
 
242
248
  ##### Defining the input for an application run
243
249
 
244
- Next to the `application_version` of the application you want to run, you have
245
- to define the input items you want to process in the run. The input items are
246
- defined as follows:
250
+ When creating an application run, you need to specify the `application_id` and optionally the
251
+ `application_version` (version number) of the application you want to run. If you omit the version,
252
+ the latest version will be used automatically. Additionally, you need to define the input items you
253
+ want to process in the run. The input items are defined as follows:
247
254
 
248
255
  ```python
249
256
  platform.InputItem(
250
- reference="1",
257
+ external_id="1",
251
258
  input_artifacts=[
252
259
  platform.InputArtifact(
253
- name="user_slide", # defined by the application version input_artifact schema
260
+ name="whole_slide_image", # defined by the application version's input artifact schema
254
261
  download_url="<a signed url to download the data>",
255
- metadata={ # defined by the application version input_artifact schema
256
- "checksum_crc32c": "N+LWCg==",
257
- "base_mpp": 0.46499982,
258
- "width": 3728,
259
- "height": 3640,
262
+ metadata={ # defined by the application version's input artifact schema
263
+ "checksum_base64_crc32c": "N+LWCg==",
264
+ "resolution_mpp": 0.46499982,
265
+ "width_px": 3728,
266
+ "height_px": 3640,
260
267
  },
261
268
  )
262
269
  ],
@@ -269,7 +276,7 @@ string. This is used to identify the item in the results later on. The
269
276
  data & metadata you need to provide for each item. The required artifacts depend
270
277
  on the application version you want to run - in the case of test application,
271
278
  there is only one artifact required, which is the image to process on. The
272
- artifact name is defined as `user_slide`.
279
+ artifact name is defined as `whole_slide_image` for this application.
273
280
 
274
281
  The `download_url` is a signed URL that allows the Aignostics Platform to
275
282
  download the image data later during processing.
@@ -410,7 +417,8 @@ Every WSI processed by the Platform generates a cost. Usage of the "Test Applica
410
417
  with detailed documentation of public classes and functions.
411
418
  4. Check out the
412
419
  [API reference](https://aignostics.readthedocs.io/en/latest/api_reference_v1.html)
413
- with detailed documentation of all API operations and parameters.
420
+ with detailed documentation of all API operations and parameters. See as well
421
+ the OpenAPI Specification in [JSON](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.json) and [YAML](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.yaml), and the [API Explorer](https://aignostics.readthedocs.io/en/latest/api_explorer_v1.html).
414
422
  5. Our
415
423
  [release notes](https://aignostics.readthedocs.io/en/latest/release-notes.html)
416
424
  provide a complete log of recent improvements and changes.
@@ -0,0 +1,39 @@
1
+ aignx/codegen/api/public_api.py
2
+ aignx/codegen/api_client.py
3
+ aignx/codegen/api_response.py
4
+ aignx/codegen/configuration.py
5
+ aignx/codegen/exceptions.py
6
+ aignx/codegen/models/application_read_response.py
7
+ aignx/codegen/models/application_read_short_response.py
8
+ aignx/codegen/models/application_version.py
9
+ aignx/codegen/models/artifact_output.py
10
+ aignx/codegen/models/artifact_state.py
11
+ aignx/codegen/models/artifact_termination_reason.py
12
+ aignx/codegen/models/custom_metadata_update_request.py
13
+ aignx/codegen/models/http_validation_error.py
14
+ aignx/codegen/models/input_artifact.py
15
+ aignx/codegen/models/input_artifact_creation_request.py
16
+ aignx/codegen/models/item_creation_request.py
17
+ aignx/codegen/models/item_output.py
18
+ aignx/codegen/models/item_result_read_response.py
19
+ aignx/codegen/models/item_state.py
20
+ aignx/codegen/models/item_termination_reason.py
21
+ aignx/codegen/models/me_read_response.py
22
+ aignx/codegen/models/organization_read_response.py
23
+ aignx/codegen/models/output_artifact.py
24
+ aignx/codegen/models/output_artifact_result_read_response.py
25
+ aignx/codegen/models/output_artifact_scope.py
26
+ aignx/codegen/models/output_artifact_visibility.py
27
+ aignx/codegen/models/run_creation_request.py
28
+ aignx/codegen/models/run_creation_response.py
29
+ aignx/codegen/models/run_item_statistics.py
30
+ aignx/codegen/models/run_output.py
31
+ aignx/codegen/models/run_read_response.py
32
+ aignx/codegen/models/run_state.py
33
+ aignx/codegen/models/run_termination_reason.py
34
+ aignx/codegen/models/user_read_response.py
35
+ aignx/codegen/models/validation_error.py
36
+ aignx/codegen/models/validation_error_loc_inner.py
37
+ aignx/codegen/models/version_read_response.py
38
+ aignx/codegen/rest.py
39
+ docs/PublicApi.md