aignostics 0.2.16__tar.gz → 0.2.199__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aignostics-0.2.16 → aignostics-0.2.199}/.gitignore +3 -1
- {aignostics-0.2.16 → aignostics-0.2.199}/PKG-INFO +107 -98
- {aignostics-0.2.16 → aignostics-0.2.199}/README.md +43 -35
- aignostics-0.2.199/codegen/out/.openapi-generator/FILES +39 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/api/public_api.py +3909 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_client.py +4 -3
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/configuration.py +5 -4
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/exceptions.py +4 -3
- aignostics-0.2.199/codegen/out/aignx/codegen/models/__init__.py +34 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/application_read_response.py +21 -8
- aignostics-0.2.199/codegen/out/aignx/codegen/models/application_read_short_response.py +104 -0
- aignostics-0.2.16/codegen/out/aignx/codegen/models/run_creation_request.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/application_version.py +16 -20
- 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.199/codegen/out/aignx/codegen/models/auth0_organization.py +111 -0
- 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.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/http_validation_error.py +6 -3
- aignostics-0.2.16/codegen/out/aignx/codegen/models/input_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/input_artifact.py +10 -7
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +8 -5
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/item_creation_request.py +21 -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.199/codegen/out/aignx/codegen/models/me_read_response.py +97 -0
- aignostics-0.2.199/codegen/out/aignx/codegen/models/organization_read_response.py +113 -0
- aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/output_artifact.py +15 -9
- 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.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/run_creation_response.py +9 -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.199/codegen/out/aignx/codegen/models/user_read_response.py +144 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error.py +6 -3
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +6 -3
- aignostics-0.2.16/codegen/out/aignx/codegen/models/application_version_read_response.py → aignostics-0.2.199/codegen/out/aignx/codegen/models/version_read_response.py +23 -28
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/rest.py +4 -3
- aignostics-0.2.199/codegen/out/docs/PublicApi.md +1062 -0
- aignostics-0.2.199/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +185 -0
- aignostics-0.2.199/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +185 -0
- aignostics-0.2.199/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
- aignostics-0.2.199/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -0
- aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +35 -0
- aignostics-0.2.199/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +185 -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.16 → aignostics-0.2.199}/examples/script.py +8 -8
- {aignostics-0.2.16 → aignostics-0.2.199}/pyproject.toml +171 -136
- aignostics-0.2.199/src/aignostics/CLAUDE.md +328 -0
- aignostics-0.2.199/src/aignostics/__init__.py +27 -0
- aignostics-0.2.199/src/aignostics/application/CLAUDE.md +784 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/application/__init__.py +4 -5
- aignostics-0.2.199/src/aignostics/application/_cli.py +1236 -0
- 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.199/src/aignostics/application/_gui/_page_application_describe.py +835 -0
- aignostics-0.2.199/src/aignostics/application/_gui/_page_application_run_describe.py +803 -0
- aignostics-0.2.199/src/aignostics/application/_gui/_page_builder.py +42 -0
- aignostics-0.2.199/src/aignostics/application/_gui/_page_index.py +95 -0
- aignostics-0.2.199/src/aignostics/application/_gui/_utils.py +110 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/.gitignore +1 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/done.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/error.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- aignostics-0.2.199/src/aignostics/application/_gui/assets/processing.lottie +0 -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.16 → aignostics-0.2.199}/src/aignostics/bucket/__init__.py +2 -4
- aignostics-0.2.199/src/aignostics/bucket/_cli.py +361 -0
- aignostics-0.2.199/src/aignostics/bucket/_gui.py +413 -0
- aignostics-0.2.199/src/aignostics/bucket/_service.py +658 -0
- aignostics-0.2.199/src/aignostics/bucket/_settings.py +69 -0
- aignostics-0.2.199/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/cli.py +33 -15
- aignostics-0.2.199/src/aignostics/constants.py +18 -0
- aignostics-0.2.199/src/aignostics/dataset/CLAUDE.md +546 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/__init__.py +2 -1
- aignostics-0.2.199/src/aignostics/dataset/_cli.py +244 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/_gui.py +54 -37
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/dataset/_service.py +178 -18
- aignostics-0.2.199/src/aignostics/gui/CLAUDE.md +46 -0
- aignostics-0.2.199/src/aignostics/gui/__init__.py +13 -0
- aignostics-0.2.199/src/aignostics/gui/_error.py +45 -0
- aignostics-0.2.199/src/aignostics/gui/_frame.py +321 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/_theme.py +30 -13
- aignostics-0.2.199/src/aignostics/gui/assets/cat.lottie +0 -0
- aignostics-0.2.199/src/aignostics/notebook/CLAUDE.md +359 -0
- aignostics-0.2.199/src/aignostics/notebook/_gui.py +109 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/_notebook.py +9 -32
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/_service.py +84 -48
- aignostics-0.2.199/src/aignostics/notebook/assets/python.lottie +0 -0
- aignostics-0.2.199/src/aignostics/platform/CLAUDE.md +1570 -0
- aignostics-0.2.199/src/aignostics/platform/__init__.py +143 -0
- aignostics-0.2.199/src/aignostics/platform/_authentication.py +593 -0
- aignostics-0.2.199/src/aignostics/platform/_cli.py +138 -0
- aignostics-0.2.199/src/aignostics/platform/_client.py +297 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/_constants.py +10 -9
- 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.199/src/aignostics/platform/_service.py +303 -0
- aignostics-0.2.199/src/aignostics/platform/_settings.py +651 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/_utils.py +62 -4
- 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.199/src/aignostics/qupath/__init__.py +24 -0
- aignostics-0.2.199/src/aignostics/qupath/_cli.py +492 -0
- aignostics-0.2.199/src/aignostics/qupath/_gui.py +219 -0
- aignostics-0.2.199/src/aignostics/qupath/_service.py +1271 -0
- aignostics-0.2.199/src/aignostics/qupath/assets/download.lottie +0 -0
- aignostics-0.2.199/src/aignostics/qupath/assets/microscope.lottie +0 -0
- aignostics-0.2.199/src/aignostics/qupath/assets/update.lottie +0 -0
- aignostics-0.2.199/src/aignostics/qupath/scripts/add.groovy +250 -0
- aignostics-0.2.199/src/aignostics/qupath/scripts/annotate.groovy +118 -0
- aignostics-0.2.199/src/aignostics/qupath/scripts/inspect.groovy +193 -0
- aignostics-0.2.199/src/aignostics/qupath/scripts/test.groovy +7 -0
- aignostics-0.2.199/src/aignostics/system/CLAUDE.md +466 -0
- aignostics-0.2.199/src/aignostics/system/_cli.py +260 -0
- aignostics-0.2.199/src/aignostics/system/_gui.py +126 -0
- aignostics-0.2.199/src/aignostics/system/_service.py +607 -0
- aignostics-0.2.199/src/aignostics/system/assets/system.lottie +0 -0
- aignostics-0.2.16/src/aignostics/dataset/_idc_index.py → aignostics-0.2.199/src/aignostics/third_party/idc_index.py +25 -5
- 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.16 → aignostics-0.2.199}/src/aignostics/utils/__init__.py +23 -6
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_cli.py +21 -2
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_console.py +1 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_constants.py +3 -0
- aignostics-0.2.199/src/aignostics/utils/_fs.py +127 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_gui.py +9 -3
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_log.py +54 -24
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_logfire.py +15 -2
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_notebook.py +16 -11
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_process.py +3 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_sentry.py +16 -6
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_service.py +14 -3
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_settings.py +8 -2
- aignostics-0.2.199/src/aignostics/utils/_user_agent.py +37 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/boot.py +37 -20
- 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.16 → aignostics-0.2.199}/src/aignostics/wsi/_gui.py +24 -20
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_openslide_handler.py +41 -11
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_service.py +54 -67
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_utils.py +0 -20
- aignostics-0.2.199/src/aignostics/wsi/assets/fallback.png +0 -0
- aignostics-0.2.199/src/aignostics.py +83 -0
- aignostics-0.2.16/codegen/out/.openapi-generator/FILES +0 -29
- aignostics-0.2.16/codegen/out/aignx/codegen/api/public_api.py +0 -2522
- aignostics-0.2.16/codegen/out/aignx/codegen/models/__init__.py +0 -22
- aignostics-0.2.16/codegen/out/aignx/codegen/models/application_run_status.py +0 -40
- aignostics-0.2.16/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -108
- aignostics-0.2.16/codegen/out/aignx/codegen/models/item_status.py +0 -38
- aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -105
- aignostics-0.2.16/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -34
- aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -89
- aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_item.py +0 -114
- aignostics-0.2.16/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -95
- aignostics-0.2.16/codegen/out/aignx/codegen/models/run_read_response.py +0 -107
- aignostics-0.2.16/codegen/out/aignx/codegen/models/transfer_urls.py +0 -87
- aignostics-0.2.16/codegen/out/aignx/codegen/models/user_payload.py +0 -116
- aignostics-0.2.16/codegen/out/docs/PublicApi.md +0 -665
- aignostics-0.2.16/examples/e2e.py +0 -165
- aignostics-0.2.16/examples/notebook.ipynb +0 -270
- aignostics-0.2.16/examples/notebook.py +0 -242
- aignostics-0.2.16/src/aignostics/__init__.py +0 -6
- aignostics-0.2.16/src/aignostics/application/_cli.py +0 -707
- aignostics-0.2.16/src/aignostics/application/_gui.py +0 -1194
- aignostics-0.2.16/src/aignostics/application/_service.py +0 -969
- aignostics-0.2.16/src/aignostics/application/_utils.py +0 -265
- aignostics-0.2.16/src/aignostics/bucket/_cli.py +0 -158
- aignostics-0.2.16/src/aignostics/bucket/_gui.py +0 -142
- aignostics-0.2.16/src/aignostics/bucket/_service.py +0 -359
- aignostics-0.2.16/src/aignostics/bucket/_settings.py +0 -53
- aignostics-0.2.16/src/aignostics/constants.py +0 -11
- aignostics-0.2.16/src/aignostics/dataset/_cli.py +0 -243
- aignostics-0.2.16/src/aignostics/gui/__init__.py +0 -12
- aignostics-0.2.16/src/aignostics/gui/_frame.py +0 -205
- aignostics-0.2.16/src/aignostics/gui/assets/home-card-1.png +0 -0
- aignostics-0.2.16/src/aignostics/gui/assets/home-card-2.png +0 -0
- aignostics-0.2.16/src/aignostics/gui/assets/home-card-3.png +0 -0
- aignostics-0.2.16/src/aignostics/gui/assets/home-card-4.png +0 -0
- aignostics-0.2.16/src/aignostics/gui/assets/home-card-5.png +0 -0
- aignostics-0.2.16/src/aignostics/notebook/_gui.py +0 -33
- aignostics-0.2.16/src/aignostics/platform/__init__.py +0 -98
- aignostics-0.2.16/src/aignostics/platform/_authentication.py +0 -356
- aignostics-0.2.16/src/aignostics/platform/_client.py +0 -106
- aignostics-0.2.16/src/aignostics/platform/_messages.py +0 -6
- aignostics-0.2.16/src/aignostics/platform/_service.py +0 -98
- aignostics-0.2.16/src/aignostics/platform/_settings.py +0 -200
- aignostics-0.2.16/src/aignostics/platform/resources/applications.py +0 -166
- aignostics-0.2.16/src/aignostics/platform/resources/runs.py +0 -375
- aignostics-0.2.16/src/aignostics/qupath/__init__.py +0 -17
- aignostics-0.2.16/src/aignostics/qupath/_cli.py +0 -106
- aignostics-0.2.16/src/aignostics/qupath/_gui.py +0 -80
- aignostics-0.2.16/src/aignostics/qupath/_service.py +0 -552
- aignostics-0.2.16/src/aignostics/system/_cli.py +0 -147
- aignostics-0.2.16/src/aignostics/system/_gui.py +0 -60
- aignostics-0.2.16/src/aignostics/system/_service.py +0 -335
- aignostics-0.2.16/src/aignostics/wsi/_cli.py +0 -132
- {aignostics-0.2.16 → aignostics-0.2.199}/LICENSE +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/codegen/out/aignx/codegen/api_response.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/examples/__init__.py +0 -0
- {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/image-not-found.png +0 -0
- {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/ruo.png +0 -0
- {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/application/_gui}/assets/ruo.svg +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/bucket}/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.16/src/aignostics/gui → aignostics-0.2.199/src/aignostics/dataset}/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.16/src/aignostics/utils/.vendored → aignostics-0.2.199/src/aignostics/third_party}/bottle.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.16 → aignostics-0.2.199}/src/aignostics/wsi/_pydicom_handler.py +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,71 +47,72 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
47
47
|
Classifier: Programming Language :: Python :: 3.12
|
|
48
48
|
Classifier: Programming Language :: Python :: 3.13
|
|
49
49
|
Classifier: Typing :: Typed
|
|
50
|
-
Requires-Python: <
|
|
51
|
-
Requires-Dist:
|
|
52
|
-
Requires-Dist: boto3
|
|
53
|
-
Requires-Dist:
|
|
54
|
-
Requires-Dist:
|
|
55
|
-
Requires-Dist:
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
Requires-Dist:
|
|
58
|
-
Requires-Dist:
|
|
59
|
-
Requires-Dist:
|
|
60
|
-
Requires-Dist:
|
|
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:
|
|
79
|
-
Requires-Dist:
|
|
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: tqdm
|
|
100
|
-
Requires-Dist:
|
|
101
|
-
Requires-Dist:
|
|
102
|
-
Requires-Dist:
|
|
103
|
-
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
|
|
104
105
|
Provides-Extra: jupyter
|
|
105
|
-
Requires-Dist: jupyter
|
|
106
|
+
Requires-Dist: jupyter<2,>=1.1.1; extra == 'jupyter'
|
|
106
107
|
Provides-Extra: marimo
|
|
107
|
-
Requires-Dist: cloudpathlib
|
|
108
|
-
Requires-Dist:
|
|
109
|
-
Requires-Dist:
|
|
110
|
-
Requires-Dist:
|
|
108
|
+
Requires-Dist: cloudpathlib<1,>=0.23.0; extra == 'marimo'
|
|
109
|
+
Requires-Dist: ipython<10,>=9.6.0; extra == 'marimo'
|
|
110
|
+
Requires-Dist: marimo<1,>=0.17.2; extra == 'marimo'
|
|
111
|
+
Requires-Dist: matplotlib<4,>=3.10.7; extra == 'marimo'
|
|
112
|
+
Requires-Dist: shapely<3,>=2.1.0; extra == 'marimo'
|
|
113
|
+
Provides-Extra: pyinstaller
|
|
114
|
+
Requires-Dist: pyinstaller<7,>=6.14.0; extra == 'pyinstaller'
|
|
111
115
|
Provides-Extra: qupath
|
|
112
|
-
Requires-Dist: geopandas>=1.0.1; extra == 'qupath'
|
|
113
|
-
Requires-Dist: ijson>=3.3.0; extra == 'qupath'
|
|
114
|
-
Requires-Dist: paquo>=0.8.1; extra == 'qupath'
|
|
115
116
|
Description-Content-Type: text/markdown
|
|
116
117
|
|
|
117
118
|
|
|
@@ -141,7 +142,7 @@ Description-Content-Type: text/markdown
|
|
|
141
142
|
The **Aignostics Python SDK** includes multiple pathways to interact with the
|
|
142
143
|
**Aignostics Platform**:
|
|
143
144
|
|
|
144
|
-
1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
|
|
145
|
+
1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
|
|
145
146
|
[Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) directly from your desktop.
|
|
146
147
|
View your results by launching popular tools such as [QuPath](https://qupath.github.io/) and Python Notebooks with one click.
|
|
147
148
|
The app runs on Mac OS X, Windows, and Linux.
|
|
@@ -176,28 +177,34 @@ more about how we achieve
|
|
|
176
177
|
## Quick Start
|
|
177
178
|
|
|
178
179
|
> [!Note]
|
|
179
|
-
> See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
|
|
180
|
-
> If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
|
|
181
|
-
> The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
|
|
180
|
+
> See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
|
|
181
|
+
> If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
|
|
182
|
+
> The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
|
|
182
183
|
> If you are not familiar with terminology please check the glossary at the end of this document.
|
|
183
184
|
|
|
184
185
|
### Launchpad: Run your first computational pathology analysis in 10 minutes from your desktop
|
|
185
186
|
|
|
186
187
|
The **Aignostics Launchpad** is a graphical desktop application that allows you to run
|
|
187
|
-
applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
|
|
188
|
+
applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
|
|
188
189
|
|
|
189
190
|
The Launchpad is available for Mac OS X, Windows, and Linux, and can be installed easily:
|
|
190
191
|
|
|
191
|
-
1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
|
|
192
|
+
1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
|
|
192
193
|
page in the Aignostics Console.
|
|
193
194
|
2. Copy the installation script and paste it into your terminal - compatible with MacOS, Windows, and Linux.
|
|
194
195
|
3. Launch the application by running `uvx aignostics launchpad`.
|
|
195
|
-
4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
|
|
196
|
+
4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
|
|
196
197
|
with [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) and other computational pathology applications.
|
|
197
198
|
|
|
199
|
+
> [!Note]
|
|
200
|
+
> The Launchpad features a growing ecosystem of extensions that seamlessly integrate with standard digital pathology tools. To use the Launchpad with all available extensions, run `uvx --from "aignostics[qupath,marimo]" aignostics launchpad`. Currently available extensions are:
|
|
201
|
+
>
|
|
202
|
+
> 1. **QuPath extension**: View your application results in [QuPath](https://qupath.github.io/) with a single click. The Launchpad creates QuPath projects on-the-fly.
|
|
203
|
+
> 2. **Marimo extension**: Analyze your application results using [Marimo](https://marimo.io/) notebooks embedded in the Launchpad. You don't have to leave the Launchpad to do real data science.
|
|
204
|
+
|
|
198
205
|
### CLI: Manage datasets and application runs from your terminal
|
|
199
206
|
|
|
200
|
-
The Python SDK includes the **Aignostics CLI**, a Command-Line Interface that allows you to
|
|
207
|
+
The Python SDK includes the **Aignostics CLI**, a Command-Line Interface (CLI) that allows you to
|
|
201
208
|
interact with the Aignostics Platform directly from your terminal or shell script.
|
|
202
209
|
|
|
203
210
|
See as follows for a simple example where we download a sample dataset for the [Atlas
|
|
@@ -218,7 +225,7 @@ nano tcga_luad/metadata.csv
|
|
|
218
225
|
uvx aignostics application run upload he-tme data/tcga_luad/run.csv
|
|
219
226
|
# Submit the application run and print tha run id
|
|
220
227
|
uvx aignostics application run submit he-tme data/tcga_luad/run.csv
|
|
221
|
-
# Check the status of the application run you
|
|
228
|
+
# Check the status of the application run you submitted
|
|
222
229
|
uvx aignostics application run list
|
|
223
230
|
# Incrementally download results when they become available
|
|
224
231
|
# Fill in the id from the output in the previous step
|
|
@@ -255,10 +262,10 @@ to learn about all commands and options available.
|
|
|
255
262
|
> [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
|
|
256
263
|
> and follow the steps outlined in the `Use in Python Notebooks` section.
|
|
257
264
|
|
|
258
|
-
The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
|
|
265
|
+
The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
|
|
259
266
|
with the Aignostics Platform in your notebook environment.
|
|
260
267
|
|
|
261
|
-
The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
|
|
268
|
+
The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
|
|
262
269
|
please follow the steps outlined in the snippet below to clone this repository and start either the
|
|
263
270
|
[Jupyter](https://docs.jupyter.org/en/latest/index.html)
|
|
264
271
|
([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
|
|
@@ -292,12 +299,12 @@ uv run marimo edit examples/notebook.py
|
|
|
292
299
|
Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
|
|
293
300
|
*Aignostics Client Library* for integration with your Python Codebase.
|
|
294
301
|
|
|
295
|
-
The following sections outline how to install the Python SDK for this purpose and
|
|
302
|
+
The following sections outline how to install the Python SDK for this purpose and
|
|
296
303
|
interact with the Client.
|
|
297
304
|
|
|
298
305
|
### Installation
|
|
299
306
|
|
|
300
|
-
The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
|
|
307
|
+
The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
|
|
301
308
|
is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
|
|
302
309
|
|
|
303
310
|
**Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
|
|
@@ -317,7 +324,7 @@ pip install aignostics
|
|
|
317
324
|
|
|
318
325
|
#### Usage
|
|
319
326
|
|
|
320
|
-
The following snippet shows how to use the Client to
|
|
327
|
+
The following snippet shows how to use the Client to submit an application
|
|
321
328
|
run:
|
|
322
329
|
|
|
323
330
|
```python
|
|
@@ -325,21 +332,21 @@ from aignostics import platform
|
|
|
325
332
|
|
|
326
333
|
# initialize the client
|
|
327
334
|
client = platform.Client()
|
|
328
|
-
#
|
|
329
|
-
application_run = client.runs.
|
|
330
|
-
|
|
335
|
+
# submit an application run
|
|
336
|
+
application_run = client.runs.submit(
|
|
337
|
+
application_id="test-app",
|
|
331
338
|
items=[
|
|
332
339
|
platform.InputItem(
|
|
333
|
-
|
|
340
|
+
external_id="slide-1",
|
|
334
341
|
input_artifacts=[
|
|
335
342
|
platform.InputArtifact(
|
|
336
|
-
name="
|
|
343
|
+
name="whole_slide_image",
|
|
337
344
|
download_url="<a signed url to download the data>",
|
|
338
345
|
metadata={
|
|
339
|
-
"
|
|
340
|
-
"
|
|
341
|
-
"
|
|
342
|
-
"
|
|
346
|
+
"checksum_base64_crc32c": "AAAAAA==",
|
|
347
|
+
"resolution_mpp": 0.25,
|
|
348
|
+
"width_px": 1000,
|
|
349
|
+
"height_px": 1000,
|
|
343
350
|
},
|
|
344
351
|
)
|
|
345
352
|
],
|
|
@@ -357,22 +364,23 @@ to learn about all classes and methods.
|
|
|
357
364
|
|
|
358
365
|
##### Defining the input for an application run
|
|
359
366
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
367
|
+
When creating an application run, you need to specify the `application_id` and optionally the
|
|
368
|
+
`application_version` (version number) of the application you want to run. If you omit the version,
|
|
369
|
+
the latest version will be used automatically. Additionally, you need to define the input items you
|
|
370
|
+
want to process in the run. The input items are defined as follows:
|
|
363
371
|
|
|
364
372
|
```python
|
|
365
373
|
platform.InputItem(
|
|
366
|
-
|
|
374
|
+
external_id="1",
|
|
367
375
|
input_artifacts=[
|
|
368
376
|
platform.InputArtifact(
|
|
369
|
-
name="
|
|
377
|
+
name="whole_slide_image", # defined by the application version's input artifact schema
|
|
370
378
|
download_url="<a signed url to download the data>",
|
|
371
|
-
metadata={ # defined by the application version
|
|
372
|
-
"
|
|
373
|
-
"
|
|
374
|
-
"
|
|
375
|
-
"
|
|
379
|
+
metadata={ # defined by the application version's input artifact schema
|
|
380
|
+
"checksum_base64_crc32c": "N+LWCg==",
|
|
381
|
+
"resolution_mpp": 0.46499982,
|
|
382
|
+
"width_px": 3728,
|
|
383
|
+
"height_px": 3640,
|
|
376
384
|
},
|
|
377
385
|
)
|
|
378
386
|
],
|
|
@@ -385,7 +393,7 @@ string. This is used to identify the item in the results later on. The
|
|
|
385
393
|
data & metadata you need to provide for each item. The required artifacts depend
|
|
386
394
|
on the application version you want to run - in the case of test application,
|
|
387
395
|
there is only one artifact required, which is the image to process on. The
|
|
388
|
-
artifact name is defined as `
|
|
396
|
+
artifact name is defined as `whole_slide_image` for this application.
|
|
389
397
|
|
|
390
398
|
The `download_url` is a signed URL that allows the Aignostics Platform to
|
|
391
399
|
download the image data later during processing.
|
|
@@ -526,7 +534,8 @@ Every WSI processed by the Platform generates a cost. Usage of the "Test Applica
|
|
|
526
534
|
with detailed documentation of public classes and functions.
|
|
527
535
|
4. Check out the
|
|
528
536
|
[API reference](https://aignostics.readthedocs.io/en/latest/api_reference_v1.html)
|
|
529
|
-
with detailed documentation of all API operations and parameters.
|
|
537
|
+
with detailed documentation of all API operations and parameters. See as well
|
|
538
|
+
the OpenAPI Specification in [JSON](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.json) and [YAML](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.yaml), and the [API Explorer](https://aignostics.readthedocs.io/en/latest/api_explorer_v1.html).
|
|
530
539
|
5. Our
|
|
531
540
|
[release notes](https://aignostics.readthedocs.io/en/latest/release-notes.html)
|
|
532
541
|
provide a complete log of recent improvements and changes.
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
The **Aignostics Python SDK** includes multiple pathways to interact with the
|
|
26
26
|
**Aignostics Platform**:
|
|
27
27
|
|
|
28
|
-
1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
|
|
28
|
+
1. Use the **Aignostics Launchpad** to analyze whole slide images with advanced computational pathology applications like
|
|
29
29
|
[Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) directly from your desktop.
|
|
30
30
|
View your results by launching popular tools such as [QuPath](https://qupath.github.io/) and Python Notebooks with one click.
|
|
31
31
|
The app runs on Mac OS X, Windows, and Linux.
|
|
@@ -60,28 +60,34 @@ more about how we achieve
|
|
|
60
60
|
## Quick Start
|
|
61
61
|
|
|
62
62
|
> [!Note]
|
|
63
|
-
> See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
|
|
64
|
-
> If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
|
|
65
|
-
> The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
|
|
63
|
+
> See as follows for a quick start guide to get you up and running with the Aignostics Python SDK as quickly as possible.
|
|
64
|
+
> If you first want to learn bout the basic concepts and components of the Aignostics Platform skip to that section below.
|
|
65
|
+
> The further reading section points you to reference documentation listing all available CLI commands, methods and classes provided by the client library, operations of the API, how we achieve operational excellence, security, and more.
|
|
66
66
|
> If you are not familiar with terminology please check the glossary at the end of this document.
|
|
67
67
|
|
|
68
68
|
### Launchpad: Run your first computational pathology analysis in 10 minutes from your desktop
|
|
69
69
|
|
|
70
70
|
The **Aignostics Launchpad** is a graphical desktop application that allows you to run
|
|
71
|
-
applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
|
|
71
|
+
applications on whole slide images (WSIs) from your computer, and inspect results with QuPath and Python Notebooks with one click. It is designed to be user-friendly and intuitive, for use by Research Pathologists and Data Scientists.
|
|
72
72
|
|
|
73
73
|
The Launchpad is available for Mac OS X, Windows, and Linux, and can be installed easily:
|
|
74
74
|
|
|
75
|
-
1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
|
|
75
|
+
1. Visit the [Quick Start](https://platform.aignostics.com/getting-started/quick-start)
|
|
76
76
|
page in the Aignostics Console.
|
|
77
77
|
2. Copy the installation script and paste it into your terminal - compatible with MacOS, Windows, and Linux.
|
|
78
78
|
3. Launch the application by running `uvx aignostics launchpad`.
|
|
79
|
-
4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
|
|
79
|
+
4. Follow the intuitive graphical interface to analyze public datasets or your own whole slide images
|
|
80
80
|
with [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) and other computational pathology applications.
|
|
81
81
|
|
|
82
|
+
> [!Note]
|
|
83
|
+
> The Launchpad features a growing ecosystem of extensions that seamlessly integrate with standard digital pathology tools. To use the Launchpad with all available extensions, run `uvx --from "aignostics[qupath,marimo]" aignostics launchpad`. Currently available extensions are:
|
|
84
|
+
>
|
|
85
|
+
> 1. **QuPath extension**: View your application results in [QuPath](https://qupath.github.io/) with a single click. The Launchpad creates QuPath projects on-the-fly.
|
|
86
|
+
> 2. **Marimo extension**: Analyze your application results using [Marimo](https://marimo.io/) notebooks embedded in the Launchpad. You don't have to leave the Launchpad to do real data science.
|
|
87
|
+
|
|
82
88
|
### CLI: Manage datasets and application runs from your terminal
|
|
83
89
|
|
|
84
|
-
The Python SDK includes the **Aignostics CLI**, a Command-Line Interface that allows you to
|
|
90
|
+
The Python SDK includes the **Aignostics CLI**, a Command-Line Interface (CLI) that allows you to
|
|
85
91
|
interact with the Aignostics Platform directly from your terminal or shell script.
|
|
86
92
|
|
|
87
93
|
See as follows for a simple example where we download a sample dataset for the [Atlas
|
|
@@ -102,7 +108,7 @@ nano tcga_luad/metadata.csv
|
|
|
102
108
|
uvx aignostics application run upload he-tme data/tcga_luad/run.csv
|
|
103
109
|
# Submit the application run and print tha run id
|
|
104
110
|
uvx aignostics application run submit he-tme data/tcga_luad/run.csv
|
|
105
|
-
# Check the status of the application run you
|
|
111
|
+
# Check the status of the application run you submitted
|
|
106
112
|
uvx aignostics application run list
|
|
107
113
|
# Incrementally download results when they become available
|
|
108
114
|
# Fill in the id from the output in the previous step
|
|
@@ -139,10 +145,10 @@ to learn about all commands and options available.
|
|
|
139
145
|
> [your personal dashboard on the Aignostics Platform website](https://platform.aignostics.com/getting-started/quick-start)
|
|
140
146
|
> and follow the steps outlined in the `Use in Python Notebooks` section.
|
|
141
147
|
|
|
142
|
-
The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
|
|
148
|
+
The Python SDK includes Jupyter and Marimo notebooks to help you get started interacting
|
|
143
149
|
with the Aignostics Platform in your notebook environment.
|
|
144
150
|
|
|
145
|
-
The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
|
|
151
|
+
The notebooks showcase the interaction with the Aignostics Platform using our "Test Application". To run one them,
|
|
146
152
|
please follow the steps outlined in the snippet below to clone this repository and start either the
|
|
147
153
|
[Jupyter](https://docs.jupyter.org/en/latest/index.html)
|
|
148
154
|
([examples/notebook.ipynb](https://github.com/aignostics/python-sdk/blob/main/examples/notebook.ipynb))
|
|
@@ -176,12 +182,12 @@ uv run marimo edit examples/notebook.py
|
|
|
176
182
|
Next to using the Launchpad, CLI and example notebooks, the Python SDK includes the
|
|
177
183
|
*Aignostics Client Library* for integration with your Python Codebase.
|
|
178
184
|
|
|
179
|
-
The following sections outline how to install the Python SDK for this purpose and
|
|
185
|
+
The following sections outline how to install the Python SDK for this purpose and
|
|
180
186
|
interact with the Client.
|
|
181
187
|
|
|
182
188
|
### Installation
|
|
183
189
|
|
|
184
|
-
The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
|
|
190
|
+
The Aignostics Python SDK is published on the [Python Package Index (PyPI)](https://pypi.org/project/aignostics/),
|
|
185
191
|
is compatible with Python 3.11 and above, and can be installed via via `uv` or `pip`:
|
|
186
192
|
|
|
187
193
|
**Install with [uv](https://docs.astral.sh/uv/):** If you don't have uv
|
|
@@ -201,7 +207,7 @@ pip install aignostics
|
|
|
201
207
|
|
|
202
208
|
#### Usage
|
|
203
209
|
|
|
204
|
-
The following snippet shows how to use the Client to
|
|
210
|
+
The following snippet shows how to use the Client to submit an application
|
|
205
211
|
run:
|
|
206
212
|
|
|
207
213
|
```python
|
|
@@ -209,21 +215,21 @@ from aignostics import platform
|
|
|
209
215
|
|
|
210
216
|
# initialize the client
|
|
211
217
|
client = platform.Client()
|
|
212
|
-
#
|
|
213
|
-
application_run = client.runs.
|
|
214
|
-
|
|
218
|
+
# submit an application run
|
|
219
|
+
application_run = client.runs.submit(
|
|
220
|
+
application_id="test-app",
|
|
215
221
|
items=[
|
|
216
222
|
platform.InputItem(
|
|
217
|
-
|
|
223
|
+
external_id="slide-1",
|
|
218
224
|
input_artifacts=[
|
|
219
225
|
platform.InputArtifact(
|
|
220
|
-
name="
|
|
226
|
+
name="whole_slide_image",
|
|
221
227
|
download_url="<a signed url to download the data>",
|
|
222
228
|
metadata={
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
229
|
+
"checksum_base64_crc32c": "AAAAAA==",
|
|
230
|
+
"resolution_mpp": 0.25,
|
|
231
|
+
"width_px": 1000,
|
|
232
|
+
"height_px": 1000,
|
|
227
233
|
},
|
|
228
234
|
)
|
|
229
235
|
],
|
|
@@ -241,22 +247,23 @@ to learn about all classes and methods.
|
|
|
241
247
|
|
|
242
248
|
##### Defining the input for an application run
|
|
243
249
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
250
|
+
When creating an application run, you need to specify the `application_id` and optionally the
|
|
251
|
+
`application_version` (version number) of the application you want to run. If you omit the version,
|
|
252
|
+
the latest version will be used automatically. Additionally, you need to define the input items you
|
|
253
|
+
want to process in the run. The input items are defined as follows:
|
|
247
254
|
|
|
248
255
|
```python
|
|
249
256
|
platform.InputItem(
|
|
250
|
-
|
|
257
|
+
external_id="1",
|
|
251
258
|
input_artifacts=[
|
|
252
259
|
platform.InputArtifact(
|
|
253
|
-
name="
|
|
260
|
+
name="whole_slide_image", # defined by the application version's input artifact schema
|
|
254
261
|
download_url="<a signed url to download the data>",
|
|
255
|
-
metadata={ # defined by the application version
|
|
256
|
-
"
|
|
257
|
-
"
|
|
258
|
-
"
|
|
259
|
-
"
|
|
262
|
+
metadata={ # defined by the application version's input artifact schema
|
|
263
|
+
"checksum_base64_crc32c": "N+LWCg==",
|
|
264
|
+
"resolution_mpp": 0.46499982,
|
|
265
|
+
"width_px": 3728,
|
|
266
|
+
"height_px": 3640,
|
|
260
267
|
},
|
|
261
268
|
)
|
|
262
269
|
],
|
|
@@ -269,7 +276,7 @@ string. This is used to identify the item in the results later on. The
|
|
|
269
276
|
data & metadata you need to provide for each item. The required artifacts depend
|
|
270
277
|
on the application version you want to run - in the case of test application,
|
|
271
278
|
there is only one artifact required, which is the image to process on. The
|
|
272
|
-
artifact name is defined as `
|
|
279
|
+
artifact name is defined as `whole_slide_image` for this application.
|
|
273
280
|
|
|
274
281
|
The `download_url` is a signed URL that allows the Aignostics Platform to
|
|
275
282
|
download the image data later during processing.
|
|
@@ -410,7 +417,8 @@ Every WSI processed by the Platform generates a cost. Usage of the "Test Applica
|
|
|
410
417
|
with detailed documentation of public classes and functions.
|
|
411
418
|
4. Check out the
|
|
412
419
|
[API reference](https://aignostics.readthedocs.io/en/latest/api_reference_v1.html)
|
|
413
|
-
with detailed documentation of all API operations and parameters.
|
|
420
|
+
with detailed documentation of all API operations and parameters. See as well
|
|
421
|
+
the OpenAPI Specification in [JSON](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.json) and [YAML](https://github.com/aignostics/python-sdk/blob/main/docs/source/_static/openapi_v1.yaml), and the [API Explorer](https://aignostics.readthedocs.io/en/latest/api_explorer_v1.html).
|
|
414
422
|
5. Our
|
|
415
423
|
[release notes](https://aignostics.readthedocs.io/en/latest/release-notes.html)
|
|
416
424
|
provide a complete log of recent improvements and changes.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
aignx/codegen/api/public_api.py
|
|
2
|
+
aignx/codegen/api_client.py
|
|
3
|
+
aignx/codegen/api_response.py
|
|
4
|
+
aignx/codegen/configuration.py
|
|
5
|
+
aignx/codegen/exceptions.py
|
|
6
|
+
aignx/codegen/models/application_read_response.py
|
|
7
|
+
aignx/codegen/models/application_read_short_response.py
|
|
8
|
+
aignx/codegen/models/application_version.py
|
|
9
|
+
aignx/codegen/models/artifact_output.py
|
|
10
|
+
aignx/codegen/models/artifact_state.py
|
|
11
|
+
aignx/codegen/models/artifact_termination_reason.py
|
|
12
|
+
aignx/codegen/models/custom_metadata_update_request.py
|
|
13
|
+
aignx/codegen/models/http_validation_error.py
|
|
14
|
+
aignx/codegen/models/input_artifact.py
|
|
15
|
+
aignx/codegen/models/input_artifact_creation_request.py
|
|
16
|
+
aignx/codegen/models/item_creation_request.py
|
|
17
|
+
aignx/codegen/models/item_output.py
|
|
18
|
+
aignx/codegen/models/item_result_read_response.py
|
|
19
|
+
aignx/codegen/models/item_state.py
|
|
20
|
+
aignx/codegen/models/item_termination_reason.py
|
|
21
|
+
aignx/codegen/models/me_read_response.py
|
|
22
|
+
aignx/codegen/models/organization_read_response.py
|
|
23
|
+
aignx/codegen/models/output_artifact.py
|
|
24
|
+
aignx/codegen/models/output_artifact_result_read_response.py
|
|
25
|
+
aignx/codegen/models/output_artifact_scope.py
|
|
26
|
+
aignx/codegen/models/output_artifact_visibility.py
|
|
27
|
+
aignx/codegen/models/run_creation_request.py
|
|
28
|
+
aignx/codegen/models/run_creation_response.py
|
|
29
|
+
aignx/codegen/models/run_item_statistics.py
|
|
30
|
+
aignx/codegen/models/run_output.py
|
|
31
|
+
aignx/codegen/models/run_read_response.py
|
|
32
|
+
aignx/codegen/models/run_state.py
|
|
33
|
+
aignx/codegen/models/run_termination_reason.py
|
|
34
|
+
aignx/codegen/models/user_read_response.py
|
|
35
|
+
aignx/codegen/models/validation_error.py
|
|
36
|
+
aignx/codegen/models/validation_error_loc_inner.py
|
|
37
|
+
aignx/codegen/models/version_read_response.py
|
|
38
|
+
aignx/codegen/rest.py
|
|
39
|
+
docs/PublicApi.md
|