aignostics 0.2.142__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 (231) hide show
  1. {aignostics-0.2.142 → aignostics-0.2.199}/.gitignore +1 -1
  2. {aignostics-0.2.142 → aignostics-0.2.199}/PKG-INFO +100 -94
  3. {aignostics-0.2.142 → aignostics-0.2.199}/README.md +37 -35
  4. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/.openapi-generator/FILES +17 -10
  5. aignostics-0.2.199/codegen/out/aignx/codegen/api/public_api.py +3909 -0
  6. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_client.py +3 -3
  7. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/configuration.py +4 -4
  8. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/exceptions.py +3 -3
  9. aignostics-0.2.199/codegen/out/aignx/codegen/models/__init__.py +34 -0
  10. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/application_read_response.py +20 -8
  11. aignostics-0.2.199/codegen/out/aignx/codegen/models/application_read_short_response.py +104 -0
  12. aignostics-0.2.142/codegen/out/aignx/codegen/models/run_creation_request.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/application_version.py +15 -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.142/codegen/out/aignx/codegen/models/organization_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/auth0_organization.py +15 -15
  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.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/http_validation_error.py +5 -3
  20. aignostics-0.2.142/codegen/out/aignx/codegen/models/input_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/input_artifact.py +9 -7
  21. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +7 -5
  22. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/item_creation_request.py +20 -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.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/me_read_response.py +6 -4
  28. aignostics-0.2.199/codegen/out/aignx/codegen/models/organization_read_response.py +113 -0
  29. aignostics-0.2.142/codegen/out/aignx/codegen/models/output_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact.py +14 -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.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/run_creation_response.py +8 -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.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/user_read_response.py +8 -6
  41. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error.py +5 -3
  42. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +5 -3
  43. aignostics-0.2.142/codegen/out/aignx/codegen/models/application_version_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/version_read_response.py +21 -30
  44. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/rest.py +3 -3
  45. aignostics-0.2.199/codegen/out/docs/PublicApi.md +1062 -0
  46. aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
  47. aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
  48. aignostics-0.2.199/examples/notebook.ipynb +447 -0
  49. aignostics-0.2.199/examples/notebook.py +242 -0
  50. {aignostics-0.2.142 → aignostics-0.2.199}/examples/script.py +8 -8
  51. {aignostics-0.2.142 → aignostics-0.2.199}/pyproject.toml +160 -135
  52. aignostics-0.2.199/src/aignostics/CLAUDE.md +328 -0
  53. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/__init__.py +13 -2
  54. aignostics-0.2.199/src/aignostics/application/CLAUDE.md +784 -0
  55. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/__init__.py +3 -4
  56. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_cli.py +532 -123
  57. aignostics-0.2.199/src/aignostics/application/_download.py +329 -0
  58. aignostics-0.2.199/src/aignostics/application/_gui/_frame.py +282 -0
  59. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_application_describe.py +256 -52
  60. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_application_run_describe.py +334 -122
  61. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_builder.py +6 -6
  62. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_index.py +23 -3
  63. aignostics-0.2.199/src/aignostics/application/_gui/_utils.py +110 -0
  64. aignostics-0.2.199/src/aignostics/application/_models.py +131 -0
  65. aignostics-0.2.199/src/aignostics/application/_service.py +1509 -0
  66. aignostics-0.2.199/src/aignostics/application/_utils.py +406 -0
  67. aignostics-0.2.199/src/aignostics/bucket/CLAUDE.md +487 -0
  68. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/__init__.py +2 -4
  69. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_cli.py +1 -1
  70. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_gui.py +6 -5
  71. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_service.py +3 -3
  72. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/constants.py +4 -0
  73. aignostics-0.2.199/src/aignostics/dataset/CLAUDE.md +546 -0
  74. aignostics-0.2.199/src/aignostics/dataset/_cli.py +244 -0
  75. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/_gui.py +6 -5
  76. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/_service.py +148 -4
  77. aignostics-0.2.199/src/aignostics/gui/CLAUDE.md +46 -0
  78. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_error.py +3 -2
  79. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_frame.py +20 -15
  80. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_theme.py +18 -6
  81. aignostics-0.2.199/src/aignostics/notebook/CLAUDE.md +359 -0
  82. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_gui.py +10 -8
  83. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_notebook.py +2 -2
  84. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_service.py +3 -1
  85. aignostics-0.2.199/src/aignostics/platform/CLAUDE.md +1570 -0
  86. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/__init__.py +27 -13
  87. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_authentication.py +205 -51
  88. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_cli.py +55 -4
  89. aignostics-0.2.199/src/aignostics/platform/_client.py +297 -0
  90. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_constants.py +9 -11
  91. aignostics-0.2.199/src/aignostics/platform/_messages.py +10 -0
  92. aignostics-0.2.199/src/aignostics/platform/_operation_cache.py +153 -0
  93. aignostics-0.2.199/src/aignostics/platform/_sdk_metadata.py +382 -0
  94. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_service.py +32 -9
  95. aignostics-0.2.199/src/aignostics/platform/_settings.py +651 -0
  96. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_utils.py +37 -3
  97. aignostics-0.2.199/src/aignostics/platform/resources/applications.py +302 -0
  98. aignostics-0.2.199/src/aignostics/platform/resources/runs.py +683 -0
  99. aignostics-0.2.199/src/aignostics/qupath/CLAUDE.md +577 -0
  100. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/__init__.py +3 -0
  101. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_cli.py +2 -3
  102. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_gui.py +2 -1
  103. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_service.py +16 -37
  104. aignostics-0.2.199/src/aignostics/system/CLAUDE.md +466 -0
  105. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_cli.py +31 -4
  106. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_gui.py +12 -15
  107. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_service.py +83 -26
  108. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/third_party/idc_index.py +7 -3
  109. aignostics-0.2.199/src/aignostics/third_party/showinfm/__init__.py +13 -0
  110. aignostics-0.2.199/src/aignostics/third_party/showinfm/argumentsparse.py +72 -0
  111. aignostics-0.2.199/src/aignostics/third_party/showinfm/constants.py +25 -0
  112. aignostics-0.2.199/src/aignostics/third_party/showinfm/py.typed +0 -0
  113. aignostics-0.2.199/src/aignostics/third_party/showinfm/showinfm.py +534 -0
  114. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/__init__.py +27 -0
  115. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/linux.py +787 -0
  116. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/tools.py +114 -0
  117. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/urivalidate.py +517 -0
  118. aignostics-0.2.199/src/aignostics/third_party/showinfm/system/windows.py +100 -0
  119. aignostics-0.2.199/src/aignostics/utils/CLAUDE.md +276 -0
  120. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/__init__.py +8 -1
  121. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_constants.py +3 -0
  122. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_fs.py +8 -8
  123. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_gui.py +6 -3
  124. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_log.py +5 -5
  125. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_process.py +3 -0
  126. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_settings.py +1 -1
  127. aignostics-0.2.199/src/aignostics/utils/_user_agent.py +37 -0
  128. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/boot.py +23 -18
  129. aignostics-0.2.199/src/aignostics/wsi/CLAUDE.md +478 -0
  130. aignostics-0.2.199/src/aignostics/wsi/_cli.py +153 -0
  131. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_openslide_handler.py +25 -10
  132. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_utils.py +0 -20
  133. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics.py +22 -11
  134. aignostics-0.2.142/codegen/out/aignx/codegen/api/public_api.py +0 -2767
  135. aignostics-0.2.142/codegen/out/aignx/codegen/models/__init__.py +0 -25
  136. aignostics-0.2.142/codegen/out/aignx/codegen/models/application_run_status.py +0 -41
  137. aignostics-0.2.142/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -109
  138. aignostics-0.2.142/codegen/out/aignx/codegen/models/item_status.py +0 -39
  139. aignostics-0.2.142/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -97
  140. aignostics-0.2.142/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -35
  141. aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -90
  142. aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_item.py +0 -115
  143. aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -96
  144. aignostics-0.2.142/codegen/out/aignx/codegen/models/run_read_response.py +0 -108
  145. aignostics-0.2.142/codegen/out/aignx/codegen/models/transfer_urls.py +0 -88
  146. aignostics-0.2.142/codegen/out/aignx/codegen/models/user_payload.py +0 -117
  147. aignostics-0.2.142/codegen/out/docs/PublicApi.md +0 -735
  148. aignostics-0.2.142/examples/notebook.ipynb +0 -270
  149. aignostics-0.2.142/examples/notebook.py +0 -242
  150. aignostics-0.2.142/src/aignostics/application/_gui/_frame.py +0 -165
  151. aignostics-0.2.142/src/aignostics/application/_gui/_utils.py +0 -99
  152. aignostics-0.2.142/src/aignostics/application/_service.py +0 -1237
  153. aignostics-0.2.142/src/aignostics/application/_utils.py +0 -315
  154. aignostics-0.2.142/src/aignostics/dataset/_cli.py +0 -266
  155. aignostics-0.2.142/src/aignostics/platform/_client.py +0 -118
  156. aignostics-0.2.142/src/aignostics/platform/_messages.py +0 -6
  157. aignostics-0.2.142/src/aignostics/platform/_settings.py +0 -286
  158. aignostics-0.2.142/src/aignostics/platform/resources/applications.py +0 -164
  159. aignostics-0.2.142/src/aignostics/platform/resources/runs.py +0 -388
  160. aignostics-0.2.142/src/aignostics/wsi/_cli.py +0 -132
  161. {aignostics-0.2.142 → aignostics-0.2.199}/LICENSE +0 -0
  162. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/.openapi-generator/VERSION +0 -0
  163. {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_response.py +0 -0
  164. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
  165. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
  166. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
  167. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
  168. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  169. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  170. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  171. {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  172. {aignostics-0.2.142/dist_native_all/dist_native-windows-latest → aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm}/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  173. {aignostics-0.2.142/dist_native_all/dist_native-windows-latest → aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm}/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  174. {aignostics-0.2.142 → aignostics-0.2.199}/examples/__init__.py +0 -0
  175. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/.gitignore +0 -0
  176. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
  177. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/done.lottie +0 -0
  178. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
  179. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/error.lottie +0 -0
  180. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
  181. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
  182. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
  183. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
  184. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
  185. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
  186. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
  187. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
  188. /aignostics-0.2.142/src/aignostics/application/_gui/assets/pending_alt.lottie → /aignostics-0.2.199/src/aignostics/application/_gui/assets/processing.lottie +0 -0
  189. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/ruo.png +0 -0
  190. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
  191. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_settings.py +0 -0
  192. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_settings.py +0 -0
  193. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
  194. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
  195. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/cli.py +0 -0
  196. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/__init__.py +0 -0
  197. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
  198. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/__init__.py +0 -0
  199. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
  200. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/cat.lottie +0 -0
  201. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/logo.png +0 -0
  202. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/__init__.py +0 -0
  203. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/assets/python.lottie +0 -0
  204. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/resources/__init__.py +0 -0
  205. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/resources/utils.py +0 -0
  206. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_settings.py +0 -0
  207. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/download.lottie +0 -0
  208. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/microscope.lottie +0 -0
  209. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/update.lottie +0 -0
  210. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/add.groovy +0 -0
  211. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
  212. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
  213. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/test.groovy +0 -0
  214. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/__init__.py +0 -0
  215. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_exceptions.py +0 -0
  216. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_settings.py +0 -0
  217. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/assets/system.lottie +0 -0
  218. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/third_party/bottle.py +0 -0
  219. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_cli.py +0 -0
  220. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_console.py +0 -0
  221. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_di.py +0 -0
  222. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_health.py +0 -0
  223. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_logfire.py +0 -0
  224. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_notebook.py +0 -0
  225. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_sentry.py +0 -0
  226. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_service.py +0 -0
  227. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/__init__.py +0 -0
  228. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_gui.py +0 -0
  229. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_pydicom_handler.py +0 -0
  230. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_service.py +0 -0
  231. {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/assets/fallback.png +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
@@ -97,4 +98,3 @@ __marimo__
97
98
  dist_native/**
98
99
  !dist_native/.keep
99
100
  notes.md
100
- CLAUDE.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aignostics
3
- Version: 0.2.142
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,67 +47,71 @@ 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.40.10
53
- Requires-Dist: certifi>=2025.8.3
54
- Requires-Dist: dicom-validator>=0.7.1
55
- Requires-Dist: dicomweb-client[gcp]>=0.59.2
56
- Requires-Dist: duckdb<=1.4.0,>=0.10.0
57
- Requires-Dist: fastapi[all,standard]>=0.116.1
58
- Requires-Dist: fastparquet>=2024.11.0
59
- Requires-Dist: google-cloud-storage>=3.3.0
60
- Requires-Dist: google-crc32c>=1.7.1
61
- Requires-Dist: highdicom>=0.26.1
62
- Requires-Dist: httpx>=0.28.1
63
- Requires-Dist: humanize>=4.12.3
64
- Requires-Dist: idc-index-data==21.0.0
65
- Requires-Dist: ijson>=3.4.0
66
- Requires-Dist: jsf>=0.11.2
67
- Requires-Dist: jsonschema>=4.24.1
68
- Requires-Dist: logfire[system-metrics]>=4.3.3
69
- Requires-Dist: nicegui[native]>=2.22.2
70
- Requires-Dist: openslide-bin>=4.0.0.8
71
- Requires-Dist: openslide-python>=1.4.2
72
- Requires-Dist: opentelemetry-instrumentation-fastapi>=0.53b0
73
- Requires-Dist: opentelemetry-instrumentation-httpx>=0.53b0
74
- Requires-Dist: opentelemetry-instrumentation-jinja2>=0.53b0
75
- Requires-Dist: opentelemetry-instrumentation-requests>=0.53b0
76
- Requires-Dist: opentelemetry-instrumentation-sqlite3>=0.53b0
77
- Requires-Dist: opentelemetry-instrumentation-tornado>=0.53b0
78
- Requires-Dist: opentelemetry-instrumentation-urllib3>=0.53b0
79
- Requires-Dist: opentelemetry-instrumentation-urllib>=0.53b0
80
- Requires-Dist: packaging>=25.0
81
- Requires-Dist: pandas<=2.3.1
82
- Requires-Dist: platformdirs>=4.3.8
83
- Requires-Dist: psutil>=7.0.0
84
- Requires-Dist: pydantic-settings>=2.10.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-oauthlib>=2.0.0
90
- Requires-Dist: requests>=2.32.3
91
- Requires-Dist: s5cmd>=0.2.0
92
- Requires-Dist: semver>=3.0.4
93
- Requires-Dist: sentry-sdk>=2.35.0
94
- Requires-Dist: shapely>=2.1.1
95
- Requires-Dist: show-in-file-manager>=1.1.5
96
- Requires-Dist: tqdm>=4.67.1
97
- Requires-Dist: typer>=0.16.0
98
- Requires-Dist: uptime>=3.0.1
99
- Requires-Dist: urllib3>=2.5.0
100
- 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
101
105
  Provides-Extra: jupyter
102
- Requires-Dist: jupyter>=1.1.1; extra == 'jupyter'
106
+ Requires-Dist: jupyter<2,>=1.1.1; extra == 'jupyter'
103
107
  Provides-Extra: marimo
104
- Requires-Dist: cloudpathlib>=0.21.1; extra == 'marimo'
105
- Requires-Dist: ipython>=9.4.0; extra == 'marimo'
106
- Requires-Dist: marimo>=0.14.17; extra == 'marimo'
107
- Requires-Dist: matplotlib>=3.10.3; extra == 'marimo'
108
- 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'
109
113
  Provides-Extra: pyinstaller
110
- Requires-Dist: pyinstaller>=6.14.0; extra == 'pyinstaller'
114
+ Requires-Dist: pyinstaller<7,>=6.14.0; extra == 'pyinstaller'
111
115
  Provides-Extra: qupath
112
116
  Description-Content-Type: text/markdown
113
117
 
@@ -138,7 +142,7 @@ Description-Content-Type: text/markdown
138
142
  The **Aignostics Python SDK** includes multiple pathways to interact with the
139
143
  **Aignostics Platform**:
140
144
 
141
- 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
142
146
  [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) directly from your desktop.
143
147
  View your results by launching popular tools such as [QuPath](https://qupath.github.io/) and Python Notebooks with one click.
144
148
  The app runs on Mac OS X, Windows, and Linux.
@@ -173,33 +177,34 @@ more about how we achieve
173
177
  ## Quick Start
174
178
 
175
179
  > [!Note]
176
- > See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
177
- > If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
178
- > 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.
179
183
  > If you are not familiar with terminology please check the glossary at the end of this document.
180
184
 
181
185
  ### Launchpad: Run your first computational pathology analysis in 10 minutes from your desktop
182
186
 
183
187
  The **Aignostics Launchpad** is a graphical desktop application that allows you to run
184
- 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.
185
189
 
186
190
  The Launchpad is available for Mac OS X, Windows, and Linux, and can be installed easily:
187
191
 
188
- 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)
189
193
  page in the Aignostics Console.
190
194
  2. Copy the installation script and paste it into your terminal - compatible with MacOS, Windows, and Linux.
191
195
  3. Launch the application by running `uvx aignostics launchpad`.
192
- 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
193
197
  with [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) and other computational pathology applications.
194
198
 
195
199
  > [!Note]
196
- > 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 --with aignostics[qupath,marimo] aignostics launchpad`. Currently available extensions are:
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
+ >
197
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.
198
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.
199
204
 
200
205
  ### CLI: Manage datasets and application runs from your terminal
201
206
 
202
- 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
203
208
  interact with the Aignostics Platform directly from your terminal or shell script.
204
209
 
205
210
  See as follows for a simple example where we download a sample dataset for the [Atlas
@@ -220,7 +225,7 @@ nano tcga_luad/metadata.csv
220
225
  uvx aignostics application run upload he-tme data/tcga_luad/run.csv
221
226
  # Submit the application run and print tha run id
222
227
  uvx aignostics application run submit he-tme data/tcga_luad/run.csv
223
- # Check the status of the application run you triggered
228
+ # Check the status of the application run you submitted
224
229
  uvx aignostics application run list
225
230
  # Incrementally download results when they become available
226
231
  # Fill in the id from the output in the previous step
@@ -257,10 +262,10 @@ to learn about all commands and options available.
257
262
  > [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
258
263
  > and follow the steps outlined in the `Use in Python Notebooks` section.
259
264
 
260
- 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
261
266
  with the Aignostics Platform in your notebook environment.
262
267
 
263
- 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,
264
269
  please follow the steps outlined in the snippet below to clone this repository and start either the
265
270
  [Jupyter](https://docs.jupyter.org/en/latest/index.html)
266
271
  ([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
@@ -294,12 +299,12 @@ uv run marimo edit examples/notebook.py
294
299
  Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
295
300
  *Aignostics Client Library* for integration with your Python Codebase.
296
301
 
297
- 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
298
303
  interact with the Client.
299
304
 
300
305
  ### Installation
301
306
 
302
- 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/),
303
308
  is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
304
309
 
305
310
  **Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
@@ -319,7 +324,7 @@ pip install aignostics
319
324
 
320
325
  #### Usage
321
326
 
322
- 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
323
328
  run:
324
329
 
325
330
  ```python
@@ -327,21 +332,21 @@ from aignostics import platform
327
332
 
328
333
  # initialize the client
329
334
  client = platform.Client()
330
- # trigger an application run
331
- application_run = client.runs.create(
332
- application_version="two-task-dummy:v0.35.0",
335
+ # submit an application run
336
+ application_run = client.runs.submit(
337
+ application_id="test-app",
333
338
  items=[
334
339
  platform.InputItem(
335
- reference="slide-1",
340
+ external_id="slide-1",
336
341
  input_artifacts=[
337
342
  platform.InputArtifact(
338
- name="user_slide",
343
+ name="whole_slide_image",
339
344
  download_url="<a signed url to download the data>",
340
345
  metadata={
341
- "checksum_crc32c": "AAAAAA==",
342
- "base_mpp": 0.25,
343
- "width": 1000,
344
- "height": 1000,
346
+ "checksum_base64_crc32c": "AAAAAA==",
347
+ "resolution_mpp": 0.25,
348
+ "width_px": 1000,
349
+ "height_px": 1000,
345
350
  },
346
351
  )
347
352
  ],
@@ -359,22 +364,23 @@ to learn about all classes and methods.
359
364
 
360
365
  ##### Defining the input for an application run
361
366
 
362
- Next to the `application_version` of the application you want to run, you have
363
- to define the input items you want to process in the run. The input items are
364
- 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:
365
371
 
366
372
  ```python
367
373
  platform.InputItem(
368
- reference="1",
374
+ external_id="1",
369
375
  input_artifacts=[
370
376
  platform.InputArtifact(
371
- 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
372
378
  download_url="<a signed url to download the data>",
373
- metadata={ # defined by the application version input_artifact schema
374
- "checksum_crc32c": "N+LWCg==",
375
- "base_mpp": 0.46499982,
376
- "width": 3728,
377
- "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,
378
384
  },
379
385
  )
380
386
  ],
@@ -387,7 +393,7 @@ string. This is used to identify the item in the results later on. The
387
393
  data & metadata you need to provide for each item. The required artifacts depend
388
394
  on the application version you want to run - in the case of test application,
389
395
  there is only one artifact required, which is the image to process on. The
390
- artifact name is defined as `user_slide`.
396
+ artifact name is defined as `whole_slide_image` for this application.
391
397
 
392
398
  The `download_url` is a signed URL that allows the Aignostics Platform to
393
399
  download the image data later during processing.
@@ -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,33 +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
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 --with aignostics[qupath,marimo] aignostics launchpad`. Currently available extensions are:
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
+ >
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.
85
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.
86
87
 
87
88
  ### CLI: Manage datasets and application runs from your terminal
88
89
 
89
- 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
90
91
  interact with the Aignostics Platform directly from your terminal or shell script.
91
92
 
92
93
  See as follows for a simple example where we download a sample dataset for the [Atlas
@@ -107,7 +108,7 @@ nano tcga_luad/metadata.csv
107
108
  uvx aignostics application run upload he-tme data/tcga_luad/run.csv
108
109
  # Submit the application run and print tha run id
109
110
  uvx aignostics application run submit he-tme data/tcga_luad/run.csv
110
- # Check the status of the application run you triggered
111
+ # Check the status of the application run you submitted
111
112
  uvx aignostics application run list
112
113
  # Incrementally download results when they become available
113
114
  # Fill in the id from the output in the previous step
@@ -144,10 +145,10 @@ to learn about all commands and options available.
144
145
  > [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
145
146
  > and follow the steps outlined in the `Use in Python Notebooks` section.
146
147
 
147
- 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
148
149
  with the Aignostics Platform in your notebook environment.
149
150
 
150
- 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,
151
152
  please follow the steps outlined in the snippet below to clone this repository and start either the
152
153
  [Jupyter](https://docs.jupyter.org/en/latest/index.html)
153
154
  ([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
@@ -181,12 +182,12 @@ uv run marimo edit examples/notebook.py
181
182
  Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
182
183
  *Aignostics Client Library* for integration with your Python Codebase.
183
184
 
184
- 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
185
186
  interact with the Client.
186
187
 
187
188
  ### Installation
188
189
 
189
- 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/),
190
191
  is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
191
192
 
192
193
  **Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
@@ -206,7 +207,7 @@ pip install aignostics
206
207
 
207
208
  #### Usage
208
209
 
209
- 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
210
211
  run:
211
212
 
212
213
  ```python
@@ -214,21 +215,21 @@ from aignostics import platform
214
215
 
215
216
  # initialize the client
216
217
  client = platform.Client()
217
- # trigger an application run
218
- application_run = client.runs.create(
219
- application_version="two-task-dummy:v0.35.0",
218
+ # submit an application run
219
+ application_run = client.runs.submit(
220
+ application_id="test-app",
220
221
  items=[
221
222
  platform.InputItem(
222
- reference="slide-1",
223
+ external_id="slide-1",
223
224
  input_artifacts=[
224
225
  platform.InputArtifact(
225
- name="user_slide",
226
+ name="whole_slide_image",
226
227
  download_url="<a signed url to download the data>",
227
228
  metadata={
228
- "checksum_crc32c": "AAAAAA==",
229
- "base_mpp": 0.25,
230
- "width": 1000,
231
- "height": 1000,
229
+ "checksum_base64_crc32c": "AAAAAA==",
230
+ "resolution_mpp": 0.25,
231
+ "width_px": 1000,
232
+ "height_px": 1000,
232
233
  },
233
234
  )
234
235
  ],
@@ -246,22 +247,23 @@ to learn about all classes and methods.
246
247
 
247
248
  ##### Defining the input for an application run
248
249
 
249
- Next to the `application_version` of the application you want to run, you have
250
- to define the input items you want to process in the run. The input items are
251
- 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:
252
254
 
253
255
  ```python
254
256
  platform.InputItem(
255
- reference="1",
257
+ external_id="1",
256
258
  input_artifacts=[
257
259
  platform.InputArtifact(
258
- 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
259
261
  download_url="<a signed url to download the data>",
260
- metadata={ # defined by the application version input_artifact schema
261
- "checksum_crc32c": "N+LWCg==",
262
- "base_mpp": 0.46499982,
263
- "width": 3728,
264
- "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,
265
267
  },
266
268
  )
267
269
  ],
@@ -274,7 +276,7 @@ string. This is used to identify the item in the results later on. The
274
276
  data & metadata you need to provide for each item. The required artifacts depend
275
277
  on the application version you want to run - in the case of test application,
276
278
  there is only one artifact required, which is the image to process on. The
277
- artifact name is defined as `user_slide`.
279
+ artifact name is defined as `whole_slide_image` for this application.
278
280
 
279
281
  The `download_url` is a signed URL that allows the Aignostics Platform to
280
282
  download the image data later during processing.
@@ -4,29 +4,36 @@ aignx/codegen/api_response.py
4
4
  aignx/codegen/configuration.py
5
5
  aignx/codegen/exceptions.py
6
6
  aignx/codegen/models/application_read_response.py
7
- aignx/codegen/models/application_run_status.py
8
- aignx/codegen/models/application_version_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
9
13
  aignx/codegen/models/http_validation_error.py
14
+ aignx/codegen/models/input_artifact.py
10
15
  aignx/codegen/models/input_artifact_creation_request.py
11
- aignx/codegen/models/input_artifact_read_response.py
12
16
  aignx/codegen/models/item_creation_request.py
17
+ aignx/codegen/models/item_output.py
13
18
  aignx/codegen/models/item_result_read_response.py
14
- aignx/codegen/models/item_status.py
19
+ aignx/codegen/models/item_state.py
20
+ aignx/codegen/models/item_termination_reason.py
15
21
  aignx/codegen/models/me_read_response.py
16
22
  aignx/codegen/models/organization_read_response.py
17
- aignx/codegen/models/output_artifact_read_response.py
23
+ aignx/codegen/models/output_artifact.py
18
24
  aignx/codegen/models/output_artifact_result_read_response.py
19
25
  aignx/codegen/models/output_artifact_scope.py
20
- aignx/codegen/models/payload_input_artifact.py
21
- aignx/codegen/models/payload_item.py
22
- aignx/codegen/models/payload_output_artifact.py
26
+ aignx/codegen/models/output_artifact_visibility.py
23
27
  aignx/codegen/models/run_creation_request.py
24
28
  aignx/codegen/models/run_creation_response.py
29
+ aignx/codegen/models/run_item_statistics.py
30
+ aignx/codegen/models/run_output.py
25
31
  aignx/codegen/models/run_read_response.py
26
- aignx/codegen/models/transfer_urls.py
27
- aignx/codegen/models/user_payload.py
32
+ aignx/codegen/models/run_state.py
33
+ aignx/codegen/models/run_termination_reason.py
28
34
  aignx/codegen/models/user_read_response.py
29
35
  aignx/codegen/models/validation_error.py
30
36
  aignx/codegen/models/validation_error_loc_inner.py
37
+ aignx/codegen/models/version_read_response.py
31
38
  aignx/codegen/rest.py
32
39
  docs/PublicApi.md