aignostics 0.2.138__tar.gz → 0.2.142__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 (167) hide show
  1. {aignostics-0.2.138 → aignostics-0.2.142}/PKG-INFO +4 -3
  2. {aignostics-0.2.138 → aignostics-0.2.142}/examples/notebook.py +1 -1
  3. {aignostics-0.2.138 → aignostics-0.2.142}/pyproject.toml +7 -6
  4. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/notebook/_service.py +41 -19
  5. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/boot.py +6 -0
  6. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics.py +29 -8
  7. {aignostics-0.2.138 → aignostics-0.2.142}/.gitignore +0 -0
  8. {aignostics-0.2.138 → aignostics-0.2.142}/LICENSE +0 -0
  9. {aignostics-0.2.138 → aignostics-0.2.142}/README.md +0 -0
  10. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/.openapi-generator/FILES +0 -0
  11. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/.openapi-generator/VERSION +0 -0
  12. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/api/public_api.py +0 -0
  13. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/api_client.py +0 -0
  14. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/api_response.py +0 -0
  15. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/configuration.py +0 -0
  16. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/exceptions.py +0 -0
  17. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/__init__.py +0 -0
  18. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/application_read_response.py +0 -0
  19. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/application_run_status.py +0 -0
  20. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/application_version_read_response.py +0 -0
  21. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/http_validation_error.py +0 -0
  22. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +0 -0
  23. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/input_artifact_read_response.py +0 -0
  24. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/item_creation_request.py +0 -0
  25. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -0
  26. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/item_status.py +0 -0
  27. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/me_read_response.py +0 -0
  28. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/organization_read_response.py +0 -0
  29. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/output_artifact_read_response.py +0 -0
  30. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -0
  31. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -0
  32. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -0
  33. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/payload_item.py +0 -0
  34. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -0
  35. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/run_creation_request.py +0 -0
  36. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/run_creation_response.py +0 -0
  37. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/run_read_response.py +0 -0
  38. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/transfer_urls.py +0 -0
  39. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/user_payload.py +0 -0
  40. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/user_read_response.py +0 -0
  41. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/validation_error.py +0 -0
  42. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +0 -0
  43. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/aignx/codegen/rest.py +0 -0
  44. {aignostics-0.2.138 → aignostics-0.2.142}/codegen/out/docs/PublicApi.md +0 -0
  45. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
  46. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
  47. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
  48. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
  49. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  50. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  51. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  52. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  53. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
  54. {aignostics-0.2.138 → aignostics-0.2.142}/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
  55. {aignostics-0.2.138 → aignostics-0.2.142}/examples/__init__.py +0 -0
  56. {aignostics-0.2.138 → aignostics-0.2.142}/examples/notebook.ipynb +0 -0
  57. {aignostics-0.2.138 → aignostics-0.2.142}/examples/script.py +0 -0
  58. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/__init__.py +0 -0
  59. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/__init__.py +0 -0
  60. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_cli.py +0 -0
  61. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_frame.py +0 -0
  62. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_page_application_describe.py +0 -0
  63. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_page_application_run_describe.py +0 -0
  64. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_page_builder.py +0 -0
  65. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_page_index.py +0 -0
  66. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/_utils.py +0 -0
  67. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/.gitignore +0 -0
  68. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
  69. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/done.lottie +0 -0
  70. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
  71. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/error.lottie +0 -0
  72. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
  73. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
  74. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
  75. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
  76. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
  77. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
  78. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
  79. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
  80. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/pending_alt.lottie +0 -0
  81. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/ruo.png +0 -0
  82. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
  83. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_service.py +0 -0
  84. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_settings.py +0 -0
  85. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/application/_utils.py +0 -0
  86. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/__init__.py +0 -0
  87. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/_cli.py +0 -0
  88. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/_gui.py +0 -0
  89. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/_service.py +0 -0
  90. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/_settings.py +0 -0
  91. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
  92. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
  93. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/cli.py +0 -0
  94. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/constants.py +0 -0
  95. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/dataset/__init__.py +0 -0
  96. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/dataset/_cli.py +0 -0
  97. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/dataset/_gui.py +0 -0
  98. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/dataset/_service.py +0 -0
  99. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
  100. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/__init__.py +0 -0
  101. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/_error.py +0 -0
  102. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/_frame.py +0 -0
  103. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/_theme.py +0 -0
  104. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
  105. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/assets/cat.lottie +0 -0
  106. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/gui/assets/logo.png +0 -0
  107. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/notebook/__init__.py +0 -0
  108. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/notebook/_gui.py +0 -0
  109. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/notebook/_notebook.py +0 -0
  110. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/notebook/assets/python.lottie +0 -0
  111. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/__init__.py +0 -0
  112. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_authentication.py +0 -0
  113. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_cli.py +0 -0
  114. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_client.py +0 -0
  115. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_constants.py +0 -0
  116. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_messages.py +0 -0
  117. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_service.py +0 -0
  118. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_settings.py +0 -0
  119. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/_utils.py +0 -0
  120. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/resources/__init__.py +0 -0
  121. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/resources/applications.py +0 -0
  122. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/resources/runs.py +0 -0
  123. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/platform/resources/utils.py +0 -0
  124. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/__init__.py +0 -0
  125. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/_cli.py +0 -0
  126. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/_gui.py +0 -0
  127. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/_service.py +0 -0
  128. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/_settings.py +0 -0
  129. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/assets/download.lottie +0 -0
  130. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/assets/microscope.lottie +0 -0
  131. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/assets/update.lottie +0 -0
  132. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/scripts/add.groovy +0 -0
  133. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
  134. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
  135. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/qupath/scripts/test.groovy +0 -0
  136. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/__init__.py +0 -0
  137. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/_cli.py +0 -0
  138. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/_exceptions.py +0 -0
  139. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/_gui.py +0 -0
  140. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/_service.py +0 -0
  141. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/_settings.py +0 -0
  142. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/system/assets/system.lottie +0 -0
  143. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/third_party/bottle.py +0 -0
  144. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/third_party/idc_index.py +0 -0
  145. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/__init__.py +0 -0
  146. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_cli.py +0 -0
  147. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_console.py +0 -0
  148. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_constants.py +0 -0
  149. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_di.py +0 -0
  150. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_fs.py +0 -0
  151. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_gui.py +0 -0
  152. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_health.py +0 -0
  153. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_log.py +0 -0
  154. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_logfire.py +0 -0
  155. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_notebook.py +0 -0
  156. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_process.py +0 -0
  157. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_sentry.py +0 -0
  158. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_service.py +0 -0
  159. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/utils/_settings.py +0 -0
  160. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/__init__.py +0 -0
  161. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_cli.py +0 -0
  162. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_gui.py +0 -0
  163. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_openslide_handler.py +0 -0
  164. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_pydicom_handler.py +0 -0
  165. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_service.py +0 -0
  166. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/_utils.py +0 -0
  167. {aignostics-0.2.138 → aignostics-0.2.142}/src/aignostics/wsi/assets/fallback.png +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aignostics
3
- Version: 0.2.138
3
+ Version: 0.2.142
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/
@@ -49,7 +49,7 @@ Classifier: Programming Language :: Python :: 3.13
49
49
  Classifier: Typing :: Typed
50
50
  Requires-Python: <4.0,>=3.11
51
51
  Requires-Dist: appdirs>=1.4.4
52
- Requires-Dist: boto3>=1.40.8
52
+ Requires-Dist: boto3>=1.40.10
53
53
  Requires-Dist: certifi>=2025.8.3
54
54
  Requires-Dist: dicom-validator>=0.7.1
55
55
  Requires-Dist: dicomweb-client[gcp]>=0.59.2
@@ -90,7 +90,7 @@ Requires-Dist: requests-oauthlib>=2.0.0
90
90
  Requires-Dist: requests>=2.32.3
91
91
  Requires-Dist: s5cmd>=0.2.0
92
92
  Requires-Dist: semver>=3.0.4
93
- Requires-Dist: sentry-sdk>=2.33.0
93
+ Requires-Dist: sentry-sdk>=2.35.0
94
94
  Requires-Dist: shapely>=2.1.1
95
95
  Requires-Dist: show-in-file-manager>=1.1.5
96
96
  Requires-Dist: tqdm>=4.67.1
@@ -102,6 +102,7 @@ Provides-Extra: jupyter
102
102
  Requires-Dist: jupyter>=1.1.1; extra == 'jupyter'
103
103
  Provides-Extra: marimo
104
104
  Requires-Dist: cloudpathlib>=0.21.1; extra == 'marimo'
105
+ Requires-Dist: ipython>=9.4.0; extra == 'marimo'
105
106
  Requires-Dist: marimo>=0.14.17; extra == 'marimo'
106
107
  Requires-Dist: matplotlib>=3.10.3; extra == 'marimo'
107
108
  Requires-Dist: shapely>=2.1.0; extra == 'marimo'
@@ -2,7 +2,7 @@
2
2
  # requires-python = ">=3.13"
3
3
  # dependencies = [
4
4
  # "marimo",
5
- # "aignostics==0.2.138",
5
+ # "aignostics==0.2.142",
6
6
  # ]
7
7
  # ///
8
8
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aignostics"
3
- version = "0.2.138"
3
+ version = "0.2.142"
4
4
  description = "🔬 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
  readme = "README.md"
6
6
  authors = [
@@ -92,12 +92,12 @@ dependencies = [
92
92
  "pydantic-settings>=2.10.1",
93
93
  "pywin32>=310 ; sys_platform == 'win32'",
94
94
  "pyyaml>=6.0",
95
- "sentry-sdk>=2.33.0",
95
+ "sentry-sdk>=2.35.0",
96
96
  "typer>=0.16.0",
97
97
  "uptime>=3.0.1",
98
98
  # Custom
99
99
  "appdirs>=1.4.4",
100
- "boto3>=1.40.8",
100
+ "boto3>=1.40.10",
101
101
  "certifi>=2025.8.3",
102
102
  "dicom-validator>=0.7.1",
103
103
  "dicomweb-client[gcp]>=0.59.2",
@@ -133,6 +133,7 @@ pyinstaller = ["pyinstaller>=6.14.0"]
133
133
  jupyter = ["jupyter>=1.1.1"]
134
134
  marimo = [
135
135
  "cloudpathlib>=0.21.1",
136
+ "ipython>=9.4.0",
136
137
  "marimo>=0.14.17",
137
138
  "matplotlib>=3.10.3",
138
139
  "shapely>=2.1.0",
@@ -159,14 +160,14 @@ dev = [
159
160
  "pytest-docker>=3.2.3",
160
161
  "pytest-env>=1.1.5",
161
162
  "pytest-md-report>=0.7.0",
162
- "pytest-regressions>=2.8.1",
163
+ "pytest-regressions>=2.8.2",
163
164
  "pytest-retry>=1.7.0",
164
165
  "pytest-selenium>=4.1.0",
165
166
  "pytest-subprocess>=1.5.3",
166
167
  "pytest-timeout>=2.4.0",
167
168
  "pytest-watcher>=0.4.3",
168
169
  "pytest-xdist[psutil]>=3.8.0",
169
- "ruff>=0.12.8",
170
+ "ruff>=0.12.9",
170
171
  "scalene>=1.5.53",
171
172
  "sphinx>=8.2.3",
172
173
  "sphinx-autobuild>=2024.10.3",
@@ -357,7 +358,7 @@ source = ["src/"]
357
358
 
358
359
 
359
360
  [tool.bumpversion]
360
- current_version = "0.2.138"
361
+ current_version = "0.2.142"
361
362
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
362
363
  serialize = ["{major}.{minor}.{patch}"]
363
364
  search = "{current_version}"
@@ -84,25 +84,47 @@ class _Runner:
84
84
  self._server_ready.clear()
85
85
 
86
86
  logger.debug("Starting Marimo server with notebook at '%s'...", notebook_path)
87
- self._marimo_server = Popen( # noqa: S603
88
- [
89
- sys.executable,
90
- "-m",
91
- "marimo",
92
- "edit",
93
- "--headless",
94
- "--skip-update-check",
95
- "--no-sandbox",
96
- "--no-token",
97
- str(notebook_path.resolve()),
98
- ],
99
- stdout=PIPE,
100
- stderr=STDOUT,
101
- text=True,
102
- encoding="utf-8",
103
- errors="replace",
104
- bufsize=1,
105
- )
87
+
88
+ if getattr(sys, "frozen", False):
89
+ self._marimo_server = Popen( # noqa: S603
90
+ [
91
+ sys.executable,
92
+ "--run-module",
93
+ "marimo",
94
+ "edit",
95
+ "--headless",
96
+ "--skip-update-check",
97
+ "--no-sandbox",
98
+ "--no-token",
99
+ str(notebook_path.resolve()),
100
+ ],
101
+ stdout=PIPE,
102
+ stderr=STDOUT,
103
+ text=True,
104
+ encoding="utf-8",
105
+ errors="replace",
106
+ bufsize=1,
107
+ )
108
+ else:
109
+ self._marimo_server = Popen( # noqa: S603
110
+ [
111
+ sys.executable,
112
+ "-m",
113
+ "marimo",
114
+ "edit",
115
+ "--headless",
116
+ "--skip-update-check",
117
+ "--no-sandbox",
118
+ "--no-token",
119
+ str(notebook_path.resolve()),
120
+ ],
121
+ stdout=PIPE,
122
+ stderr=STDOUT,
123
+ text=True,
124
+ encoding="utf-8",
125
+ errors="replace",
126
+ bufsize=1,
127
+ )
106
128
 
107
129
  # Start a thread to monitor the subprocess output
108
130
  self._monitor_thread = Thread(target=self._capture_output, args=(self._marimo_server,), daemon=True)
@@ -1,13 +1,19 @@
1
1
  """Boot sequence."""
2
2
 
3
3
  import os
4
+ import ssl
4
5
  import sys
5
6
  from pathlib import Path
6
7
 
8
+ import certifi
9
+
7
10
  from ._log import logging_initialize
8
11
 
9
12
  _boot_called = False
10
13
 
14
+ if ssl.get_default_verify_paths().cafile is None and os.environ.get("SSL_CERT_FILE") is None:
15
+ os.environ["SSL_CERT_FILE"] = certifi.where()
16
+
11
17
  # Import third party dependencies
12
18
  third_party_dir = Path(__file__).parent.absolute() / ".." / "third_party"
13
19
  if third_party_dir.is_dir() and str(third_party_dir) not in sys.path:
@@ -5,16 +5,8 @@ import ssl
5
5
  import sys
6
6
  from multiprocessing import freeze_support
7
7
 
8
- import certifi
9
-
10
8
  freeze_support()
11
9
 
12
- # Use bundled bundled certifi certificate bundle IF cafile could not be found by openssl.
13
- if ssl.get_default_verify_paths().cafile is None:
14
- os.environ["SSL_CERT_FILE"] = certifi.where()
15
-
16
- # See https://github.com/pyinstaller/pyinstaller/issues/7229
17
-
18
10
  os.environ["LOGFIRE_PYDANTIC_RECORD"] = "off"
19
11
 
20
12
  from aignostics.constants import MODULES_TO_INSTRUMENT # noqa: E402
@@ -26,6 +18,8 @@ logger = get_logger(__name__)
26
18
  # Constants for command line argument handling
27
19
  EXEC_SCRIPT_FLAG = "--exec-script"
28
20
  MIN_ARGS_FOR_SCRIPT = 3 # program name, flag, and script content
21
+ MODULE_FLAG = "--run-module"
22
+ MIN_ARGS_FOR_MODULE = 3 # program name, flag, and module name
29
23
 
30
24
  DEBUG_FLAG = "--debug"
31
25
 
@@ -42,6 +36,33 @@ if len(sys.argv) > 1 and sys.argv[1] == EXEC_SCRIPT_FLAG:
42
36
  else:
43
37
  logger.error("No script content provided")
44
38
  sys.exit(1)
39
+ elif len(sys.argv) > 1 and sys.argv[1] == MODULE_FLAG:
40
+ # Execute the module passed as the second argument
41
+ if len(sys.argv) >= MIN_ARGS_FOR_MODULE:
42
+ module_name = sys.argv[2]
43
+ # Build the command to run the module with remaining arguments
44
+ module_args = sys.argv[MIN_ARGS_FOR_MODULE:] if len(sys.argv) > MIN_ARGS_FOR_MODULE else []
45
+
46
+ # We're running as a packaged executable, run module directly
47
+ # Update sys.argv to what the module expects
48
+ sys.argv = [module_name, *module_args]
49
+ try:
50
+ if module_name == "marimo":
51
+ # Special handling for marimo - importing from private module as marimo's __main__.py does
52
+ from marimo._cli.cli import main # noqa: PLC2701
53
+
54
+ main(prog_name="marimo")
55
+ else:
56
+ # Generic module execution
57
+ import runpy
58
+
59
+ runpy.run_module(module_name, run_name="__main__")
60
+ except Exception:
61
+ logger.exception("Failed to execute module '%s'", module_name)
62
+ sys.exit(1)
63
+ else:
64
+ logger.error("No module name provided")
65
+ sys.exit(1)
45
66
  elif len(sys.argv) > 1 and sys.argv[1] == DEBUG_FLAG:
46
67
  import ssl
47
68
 
File without changes
File without changes
File without changes