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.
- {aignostics-0.2.142 → aignostics-0.2.199}/.gitignore +1 -1
- {aignostics-0.2.142 → aignostics-0.2.199}/PKG-INFO +100 -94
- {aignostics-0.2.142 → aignostics-0.2.199}/README.md +37 -35
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/.openapi-generator/FILES +17 -10
- aignostics-0.2.199/codegen/out/aignx/codegen/api/public_api.py +3909 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_client.py +3 -3
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/configuration.py +4 -4
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/exceptions.py +3 -3
- aignostics-0.2.199/codegen/out/aignx/codegen/models/__init__.py +34 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/application_read_response.py +20 -8
- aignostics-0.2.199/codegen/out/aignx/codegen/models/application_read_short_response.py +104 -0
- 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
- aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_output.py +39 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_state.py +38 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/artifact_termination_reason.py +39 -0
- 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
- aignostics-0.2.199/codegen/out/aignx/codegen/models/auth0_user.py +142 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/custom_metadata_update_request.py +99 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/http_validation_error.py +5 -3
- 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
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +7 -5
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/item_creation_request.py +20 -10
- aignostics-0.2.199/codegen/out/aignx/codegen/models/item_output.py +37 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/item_result_read_response.py +149 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/item_state.py +38 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/item_termination_reason.py +39 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/me_read_response.py +6 -4
- aignostics-0.2.199/codegen/out/aignx/codegen/models/organization_read_response.py +113 -0
- 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
- aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +132 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_scope.py +37 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact_visibility.py +37 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_creation_request.py +112 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/run_creation_response.py +8 -6
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_item_statistics.py +99 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_output.py +38 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_read_response.py +151 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_state.py +38 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/run_termination_reason.py +38 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/user_read_response.py +8 -6
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error.py +5 -3
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +5 -3
- 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
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/rest.py +3 -3
- aignostics-0.2.199/codegen/out/docs/PublicApi.md +1062 -0
- aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
- aignostics-0.2.199/examples/notebook.ipynb +447 -0
- aignostics-0.2.199/examples/notebook.py +242 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/examples/script.py +8 -8
- {aignostics-0.2.142 → aignostics-0.2.199}/pyproject.toml +160 -135
- aignostics-0.2.199/src/aignostics/CLAUDE.md +328 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/__init__.py +13 -2
- aignostics-0.2.199/src/aignostics/application/CLAUDE.md +784 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/__init__.py +3 -4
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_cli.py +532 -123
- aignostics-0.2.199/src/aignostics/application/_download.py +329 -0
- aignostics-0.2.199/src/aignostics/application/_gui/_frame.py +282 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_application_describe.py +256 -52
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_application_run_describe.py +334 -122
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_builder.py +6 -6
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/_page_index.py +23 -3
- aignostics-0.2.199/src/aignostics/application/_gui/_utils.py +110 -0
- aignostics-0.2.199/src/aignostics/application/_models.py +131 -0
- aignostics-0.2.199/src/aignostics/application/_service.py +1509 -0
- aignostics-0.2.199/src/aignostics/application/_utils.py +406 -0
- aignostics-0.2.199/src/aignostics/bucket/CLAUDE.md +487 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/__init__.py +2 -4
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_cli.py +1 -1
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_gui.py +6 -5
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_service.py +3 -3
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/constants.py +4 -0
- aignostics-0.2.199/src/aignostics/dataset/CLAUDE.md +546 -0
- aignostics-0.2.199/src/aignostics/dataset/_cli.py +244 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/_gui.py +6 -5
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/_service.py +148 -4
- aignostics-0.2.199/src/aignostics/gui/CLAUDE.md +46 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_error.py +3 -2
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_frame.py +20 -15
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/_theme.py +18 -6
- aignostics-0.2.199/src/aignostics/notebook/CLAUDE.md +359 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_gui.py +10 -8
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_notebook.py +2 -2
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/_service.py +3 -1
- aignostics-0.2.199/src/aignostics/platform/CLAUDE.md +1570 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/__init__.py +27 -13
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_authentication.py +205 -51
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_cli.py +55 -4
- aignostics-0.2.199/src/aignostics/platform/_client.py +297 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_constants.py +9 -11
- aignostics-0.2.199/src/aignostics/platform/_messages.py +10 -0
- aignostics-0.2.199/src/aignostics/platform/_operation_cache.py +153 -0
- aignostics-0.2.199/src/aignostics/platform/_sdk_metadata.py +382 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_service.py +32 -9
- aignostics-0.2.199/src/aignostics/platform/_settings.py +651 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/_utils.py +37 -3
- aignostics-0.2.199/src/aignostics/platform/resources/applications.py +302 -0
- aignostics-0.2.199/src/aignostics/platform/resources/runs.py +683 -0
- aignostics-0.2.199/src/aignostics/qupath/CLAUDE.md +577 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/__init__.py +3 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_cli.py +2 -3
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_gui.py +2 -1
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_service.py +16 -37
- aignostics-0.2.199/src/aignostics/system/CLAUDE.md +466 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_cli.py +31 -4
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_gui.py +12 -15
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_service.py +83 -26
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/third_party/idc_index.py +7 -3
- aignostics-0.2.199/src/aignostics/third_party/showinfm/__init__.py +13 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/argumentsparse.py +72 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/constants.py +25 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/py.typed +0 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/showinfm.py +534 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/system/__init__.py +27 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/system/linux.py +787 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/system/tools.py +114 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/system/urivalidate.py +517 -0
- aignostics-0.2.199/src/aignostics/third_party/showinfm/system/windows.py +100 -0
- aignostics-0.2.199/src/aignostics/utils/CLAUDE.md +276 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/__init__.py +8 -1
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_constants.py +3 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_fs.py +8 -8
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_gui.py +6 -3
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_log.py +5 -5
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_process.py +3 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_settings.py +1 -1
- aignostics-0.2.199/src/aignostics/utils/_user_agent.py +37 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/boot.py +23 -18
- aignostics-0.2.199/src/aignostics/wsi/CLAUDE.md +478 -0
- aignostics-0.2.199/src/aignostics/wsi/_cli.py +153 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_openslide_handler.py +25 -10
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_utils.py +0 -20
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics.py +22 -11
- aignostics-0.2.142/codegen/out/aignx/codegen/api/public_api.py +0 -2767
- aignostics-0.2.142/codegen/out/aignx/codegen/models/__init__.py +0 -25
- aignostics-0.2.142/codegen/out/aignx/codegen/models/application_run_status.py +0 -41
- aignostics-0.2.142/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -109
- aignostics-0.2.142/codegen/out/aignx/codegen/models/item_status.py +0 -39
- aignostics-0.2.142/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -97
- aignostics-0.2.142/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -35
- aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -90
- aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_item.py +0 -115
- aignostics-0.2.142/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -96
- aignostics-0.2.142/codegen/out/aignx/codegen/models/run_read_response.py +0 -108
- aignostics-0.2.142/codegen/out/aignx/codegen/models/transfer_urls.py +0 -88
- aignostics-0.2.142/codegen/out/aignx/codegen/models/user_payload.py +0 -117
- aignostics-0.2.142/codegen/out/docs/PublicApi.md +0 -735
- aignostics-0.2.142/examples/notebook.ipynb +0 -270
- aignostics-0.2.142/examples/notebook.py +0 -242
- aignostics-0.2.142/src/aignostics/application/_gui/_frame.py +0 -165
- aignostics-0.2.142/src/aignostics/application/_gui/_utils.py +0 -99
- aignostics-0.2.142/src/aignostics/application/_service.py +0 -1237
- aignostics-0.2.142/src/aignostics/application/_utils.py +0 -315
- aignostics-0.2.142/src/aignostics/dataset/_cli.py +0 -266
- aignostics-0.2.142/src/aignostics/platform/_client.py +0 -118
- aignostics-0.2.142/src/aignostics/platform/_messages.py +0 -6
- aignostics-0.2.142/src/aignostics/platform/_settings.py +0 -286
- aignostics-0.2.142/src/aignostics/platform/resources/applications.py +0 -164
- aignostics-0.2.142/src/aignostics/platform/resources/runs.py +0 -388
- aignostics-0.2.142/src/aignostics/wsi/_cli.py +0 -132
- {aignostics-0.2.142 → aignostics-0.2.199}/LICENSE +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_response.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {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
- {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
- {aignostics-0.2.142 → aignostics-0.2.199}/examples/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/.gitignore +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/done.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/error.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- /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
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/ruo.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/_settings.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/cli.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/cat.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/notebook/assets/python.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/download.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/microscope.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/assets/update.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/add.groovy +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/qupath/scripts/test.groovy +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/system/assets/system.lottie +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/third_party/bottle.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_cli.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_console.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_logfire.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_notebook.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_sentry.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/utils/_service.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_gui.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_pydicom_handler.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/src/aignostics/wsi/_service.py +0 -0
- {aignostics-0.2.142 → aignostics-0.2.199}/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.
|
|
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: <
|
|
51
|
-
Requires-Dist:
|
|
52
|
-
Requires-Dist: boto3
|
|
53
|
-
Requires-Dist: certifi
|
|
54
|
-
Requires-Dist:
|
|
55
|
-
Requires-Dist:
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
Requires-Dist:
|
|
58
|
-
Requires-Dist:
|
|
59
|
-
Requires-Dist:
|
|
60
|
-
Requires-Dist: google-
|
|
61
|
-
Requires-Dist:
|
|
62
|
-
Requires-Dist:
|
|
63
|
-
Requires-Dist:
|
|
64
|
-
Requires-Dist:
|
|
65
|
-
Requires-Dist:
|
|
66
|
-
Requires-Dist:
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Requires-Dist:
|
|
69
|
-
Requires-Dist:
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
Requires-Dist:
|
|
72
|
-
Requires-Dist:
|
|
73
|
-
Requires-Dist:
|
|
74
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
75
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
76
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
77
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
78
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
79
|
-
Requires-Dist: opentelemetry-instrumentation-
|
|
80
|
-
Requires-Dist:
|
|
81
|
-
Requires-Dist:
|
|
82
|
-
Requires-Dist:
|
|
83
|
-
Requires-Dist:
|
|
84
|
-
Requires-Dist:
|
|
85
|
-
Requires-Dist:
|
|
86
|
-
Requires-Dist:
|
|
87
|
-
Requires-Dist:
|
|
88
|
-
Requires-Dist:
|
|
89
|
-
Requires-Dist:
|
|
90
|
-
Requires-Dist:
|
|
91
|
-
Requires-Dist:
|
|
92
|
-
Requires-Dist:
|
|
93
|
-
Requires-Dist:
|
|
94
|
-
Requires-Dist:
|
|
95
|
-
Requires-Dist:
|
|
96
|
-
Requires-Dist:
|
|
97
|
-
Requires-Dist:
|
|
98
|
-
Requires-Dist:
|
|
99
|
-
Requires-Dist:
|
|
100
|
-
Requires-Dist:
|
|
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
|
|
106
|
+
Requires-Dist: jupyter<2,>=1.1.1; extra == 'jupyter'
|
|
103
107
|
Provides-Extra: marimo
|
|
104
|
-
Requires-Dist: cloudpathlib
|
|
105
|
-
Requires-Dist: ipython
|
|
106
|
-
Requires-Dist: marimo
|
|
107
|
-
Requires-Dist: matplotlib
|
|
108
|
-
Requires-Dist: shapely
|
|
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
|
|
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 --
|
|
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
|
|
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
|
|
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
|
-
#
|
|
331
|
-
application_run = client.runs.
|
|
332
|
-
|
|
335
|
+
# submit an application run
|
|
336
|
+
application_run = client.runs.submit(
|
|
337
|
+
application_id="test-app",
|
|
333
338
|
items=[
|
|
334
339
|
platform.InputItem(
|
|
335
|
-
|
|
340
|
+
external_id="slide-1",
|
|
336
341
|
input_artifacts=[
|
|
337
342
|
platform.InputArtifact(
|
|
338
|
-
name="
|
|
343
|
+
name="whole_slide_image",
|
|
339
344
|
download_url="<a signed url to download the data>",
|
|
340
345
|
metadata={
|
|
341
|
-
"
|
|
342
|
-
"
|
|
343
|
-
"
|
|
344
|
-
"
|
|
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
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
|
|
374
|
+
external_id="1",
|
|
369
375
|
input_artifacts=[
|
|
370
376
|
platform.InputArtifact(
|
|
371
|
-
name="
|
|
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
|
|
374
|
-
"
|
|
375
|
-
"
|
|
376
|
-
"
|
|
377
|
-
"
|
|
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 `
|
|
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 --
|
|
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
|
|
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
|
|
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
|
-
#
|
|
218
|
-
application_run = client.runs.
|
|
219
|
-
|
|
218
|
+
# submit an application run
|
|
219
|
+
application_run = client.runs.submit(
|
|
220
|
+
application_id="test-app",
|
|
220
221
|
items=[
|
|
221
222
|
platform.InputItem(
|
|
222
|
-
|
|
223
|
+
external_id="slide-1",
|
|
223
224
|
input_artifacts=[
|
|
224
225
|
platform.InputArtifact(
|
|
225
|
-
name="
|
|
226
|
+
name="whole_slide_image",
|
|
226
227
|
download_url="<a signed url to download the data>",
|
|
227
228
|
metadata={
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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
|
-
|
|
257
|
+
external_id="1",
|
|
256
258
|
input_artifacts=[
|
|
257
259
|
platform.InputArtifact(
|
|
258
|
-
name="
|
|
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
|
|
261
|
-
"
|
|
262
|
-
"
|
|
263
|
-
"
|
|
264
|
-
"
|
|
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 `
|
|
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/
|
|
8
|
-
aignx/codegen/models/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
27
|
-
aignx/codegen/models/
|
|
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
|