aignostics 0.2.73__tar.gz → 0.2.83__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.73 → aignostics-0.2.83}/PKG-INFO +1 -1
- {aignostics-0.2.73 → aignostics-0.2.83}/examples/notebook.py +1 -1
- {aignostics-0.2.73 → aignostics-0.2.83}/pyproject.toml +2 -2
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/__init__.py +9 -5
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_utils.py +7 -3
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/resources/runs.py +11 -5
- {aignostics-0.2.73 → aignostics-0.2.83}/.gitignore +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/LICENSE +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/README.md +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/.openapi-generator/FILES +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/api/public_api.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/api_client.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/api_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/configuration.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/exceptions.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/application_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/application_run_status.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/application_version_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/http_validation_error.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/input_artifact_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/item_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/item_status.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/output_artifact_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/payload_item.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_creation_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/transfer_urls.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/user_payload.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/validation_error.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/rest.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/docs/PublicApi.md +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/examples/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/examples/notebook.ipynb +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/examples/script.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_frame.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_page_application_describe.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_page_application_run_describe.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_page_builder.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_page_index.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/.gitignore +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/done.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/error.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/pending_alt.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/ruo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/dataset/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/dataset/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/dataset/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/dataset/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/_frame.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/_theme.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/notebook/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/notebook/_notebook.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/notebook/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/notebook/assets/python.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_authentication.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_client.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_messages.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_service.py +14 -14
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/resources/applications.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/assets/download.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/assets/microscope.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/assets/update.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/scripts/add.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/qupath/scripts/test.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/system/assets/system.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/third_party/bottle.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/third_party/idc_index.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_console.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_fs.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_log.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_logfire.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_notebook.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_process.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_sentry.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/utils/boot.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_openslide_handler.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_pydicom_handler.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/wsi/assets/fallback.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics.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.83
|
|
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/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "aignostics"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.83"
|
|
4
4
|
description = "🔬 Python SDK providing access to the Aignostics Platform. Includes Aignostics Launchpad (Desktop Application), Aignostics CLI (Command-Line Interface), example notebooks, and Aignostics Client Library."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -354,7 +354,7 @@ source = ["src/"]
|
|
|
354
354
|
|
|
355
355
|
|
|
356
356
|
[tool.bumpversion]
|
|
357
|
-
current_version = "0.2.
|
|
357
|
+
current_version = "0.2.83"
|
|
358
358
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
359
359
|
serialize = ["{major}.{minor}.{patch}"]
|
|
360
360
|
search = "{current_version}"
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""This module provides the low-level client interface for interacting with the API of the Aignostics Platform.
|
|
2
|
+
|
|
3
|
+
The primary class in this module is the `Client` class, serving as the entry point
|
|
4
|
+
for authenticated API operations. Login and token management are handled
|
|
5
|
+
automatically.
|
|
6
|
+
|
|
7
|
+
Further operations are encapsulated in the `Service` class, which provides methods
|
|
8
|
+
for manual login, logout and getting information about the authenticated user.
|
|
3
9
|
|
|
4
|
-
|
|
5
|
-
The primary class in this module is the `Client` class, which serves as the entry point
|
|
6
|
-
for all interactions with the Aignostics platform.
|
|
10
|
+
Higher level abstractions are provided in the application module.
|
|
7
11
|
"""
|
|
8
12
|
|
|
9
13
|
from aignx.codegen.exceptions import ApiException, NotFoundException
|
|
@@ -26,6 +26,7 @@ from aignx.codegen.models import OutputArtifactResultReadResponse as OutputArtif
|
|
|
26
26
|
from tqdm.auto import tqdm
|
|
27
27
|
|
|
28
28
|
EIGHT_MB = 8_388_608
|
|
29
|
+
SIGNED_DOWNLOAD_URL_EXPIRES_SECONDS_DEFAULT = 6 * 60 * 60 # 6 hours
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
def mime_type_to_file_ending(mime_type: str) -> str:
|
|
@@ -71,7 +72,6 @@ def get_mime_type_for_artifact(artifact: OutputArtifactData | InputArtifactData
|
|
|
71
72
|
return str(metadata.get("media_type", metadata.get("mime_type", "application/octet-stream")))
|
|
72
73
|
|
|
73
74
|
|
|
74
|
-
# TODO(Andreas,Helmut): discuss
|
|
75
75
|
def download_file(signed_url: str, file_path: str, verify_checksum: str) -> None:
|
|
76
76
|
"""Downloads a file from a signed URL and verifies its integrity.
|
|
77
77
|
|
|
@@ -102,11 +102,12 @@ def download_file(signed_url: str, file_path: str, verify_checksum: str) -> None
|
|
|
102
102
|
raise ValueError(msg)
|
|
103
103
|
|
|
104
104
|
|
|
105
|
-
def generate_signed_url(url: str) -> str:
|
|
105
|
+
def generate_signed_url(url: str, expires_seconds: int = SIGNED_DOWNLOAD_URL_EXPIRES_SECONDS_DEFAULT) -> str:
|
|
106
106
|
"""Generates a signed URL for a Google Cloud Storage object.
|
|
107
107
|
|
|
108
108
|
Args:
|
|
109
109
|
url (str): The fully qualified bucket URL (e.g. gs://bucket/path/to/object).
|
|
110
|
+
expires_seconds (int): The number of seconds the signed URL should be valid for.
|
|
110
111
|
|
|
111
112
|
Returns:
|
|
112
113
|
str: A signed URL that can be used to download the object.
|
|
@@ -131,7 +132,10 @@ def generate_signed_url(url: str) -> str:
|
|
|
131
132
|
msg = f"Blob does not exist: {url}"
|
|
132
133
|
raise ValueError(msg)
|
|
133
134
|
|
|
134
|
-
return t.cast(
|
|
135
|
+
return t.cast(
|
|
136
|
+
"str",
|
|
137
|
+
blob.generate_signed_url(expiration=datetime.timedelta(seconds=expires_seconds), method="GET", version="v4"),
|
|
138
|
+
)
|
|
135
139
|
|
|
136
140
|
|
|
137
141
|
def calculate_file_crc32c(file: Path) -> str:
|
|
@@ -128,13 +128,16 @@ class ApplicationRun:
|
|
|
128
128
|
application_run_id=self.application_run_id,
|
|
129
129
|
)
|
|
130
130
|
|
|
131
|
-
def download_to_folder(
|
|
131
|
+
def download_to_folder(
|
|
132
|
+
self, download_base: Path | str, checksum_attribute_key: str = "checksum_base64_crc32c"
|
|
133
|
+
) -> None:
|
|
132
134
|
"""Downloads all result artifacts to a folder.
|
|
133
135
|
|
|
134
136
|
Monitors run progress and downloads results as they become available.
|
|
135
137
|
|
|
136
138
|
Args:
|
|
137
139
|
download_base (Path | str): Base directory to download results to.
|
|
140
|
+
checksum_attribute_key (str): The key used to validate the checksum of the output artifacts.
|
|
138
141
|
|
|
139
142
|
Raises:
|
|
140
143
|
ValueError: If the provided path is not a directory.
|
|
@@ -152,7 +155,7 @@ class ApplicationRun:
|
|
|
152
155
|
while application_run_status == ApplicationRunStatus.RUNNING:
|
|
153
156
|
for item in self.results():
|
|
154
157
|
if item.status == ItemStatus.SUCCEEDED:
|
|
155
|
-
self.ensure_artifacts_downloaded(application_run_dir, item)
|
|
158
|
+
self.ensure_artifacts_downloaded(application_run_dir, item, checksum_attribute_key)
|
|
156
159
|
sleep(5)
|
|
157
160
|
application_run_status = self.details().status
|
|
158
161
|
print(self)
|
|
@@ -161,12 +164,14 @@ class ApplicationRun:
|
|
|
161
164
|
for item in self.results():
|
|
162
165
|
match item.status:
|
|
163
166
|
case ItemStatus.SUCCEEDED:
|
|
164
|
-
self.ensure_artifacts_downloaded(application_run_dir, item)
|
|
167
|
+
self.ensure_artifacts_downloaded(application_run_dir, item, checksum_attribute_key)
|
|
165
168
|
case ItemStatus.ERROR_SYSTEM | ItemStatus.ERROR_USER:
|
|
166
169
|
print(f"{item.reference} failed with {item.status.value}: {item.error}")
|
|
167
170
|
|
|
168
171
|
@staticmethod
|
|
169
|
-
def ensure_artifacts_downloaded(
|
|
172
|
+
def ensure_artifacts_downloaded(
|
|
173
|
+
base_folder: Path, item: ItemResultReadResponse, checksum_attribute_key: str = "checksum_base64_crc32c"
|
|
174
|
+
) -> None:
|
|
170
175
|
"""Ensures all artifacts for an item are downloaded.
|
|
171
176
|
|
|
172
177
|
Downloads missing or partially downloaded artifacts and verifies their integrity.
|
|
@@ -174,6 +179,7 @@ class ApplicationRun:
|
|
|
174
179
|
Args:
|
|
175
180
|
base_folder (Path): Base directory to download artifacts to.
|
|
176
181
|
item (ItemResultReadResponse): The item result containing the artifacts to download.
|
|
182
|
+
checksum_attribute_key (str): The key used to validate the checksum of the output artifacts.
|
|
177
183
|
|
|
178
184
|
Raises:
|
|
179
185
|
ValueError: If checksums don't match.
|
|
@@ -187,7 +193,7 @@ class ApplicationRun:
|
|
|
187
193
|
item_dir.mkdir(exist_ok=True, parents=True)
|
|
188
194
|
file_ending = mime_type_to_file_ending(get_mime_type_for_artifact(artifact))
|
|
189
195
|
file_path = item_dir / f"{artifact.name}{file_ending}"
|
|
190
|
-
checksum = artifact.metadata[
|
|
196
|
+
checksum = artifact.metadata[checksum_attribute_key]
|
|
191
197
|
|
|
192
198
|
if file_path.exists():
|
|
193
199
|
file_checksum = calculate_file_crc32c(file_path)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/application_run_status.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/http_validation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/item_creation_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/output_artifact_scope.py
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/payload_input_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/payload_output_artifact.py
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_creation_request.py
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_creation_response.py
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/run_read_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/codegen/out/aignx/codegen/models/validation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/canceled.lottie
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/error_alt.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-1.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-2.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-3.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-4.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/home-card-5.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/image-not-found.png
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/pending.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/application/_gui/assets/pending_alt.lottie
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.73 → aignostics-0.2.83}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -213,20 +213,6 @@ class Service(BaseService):
|
|
|
213
213
|
},
|
|
214
214
|
)
|
|
215
215
|
|
|
216
|
-
@staticmethod
|
|
217
|
-
def logout() -> bool:
|
|
218
|
-
"""Logout if authenticated.
|
|
219
|
-
|
|
220
|
-
Deletes the cached authentication token if existing.
|
|
221
|
-
|
|
222
|
-
Returns:
|
|
223
|
-
bool: True if successfully logged out, False if not logged in.
|
|
224
|
-
"""
|
|
225
|
-
logger.debug("Logging out...")
|
|
226
|
-
rtn = remove_cached_token()
|
|
227
|
-
logger.debug("Logout successful: %s", rtn)
|
|
228
|
-
return rtn
|
|
229
|
-
|
|
230
216
|
@staticmethod
|
|
231
217
|
def login(relogin: bool = False) -> bool:
|
|
232
218
|
"""Login.
|
|
@@ -247,6 +233,20 @@ class Service(BaseService):
|
|
|
247
233
|
logger.exception(message)
|
|
248
234
|
return False
|
|
249
235
|
|
|
236
|
+
@staticmethod
|
|
237
|
+
def logout() -> bool:
|
|
238
|
+
"""Logout if authenticated.
|
|
239
|
+
|
|
240
|
+
Deletes the cached authentication token if existing.
|
|
241
|
+
|
|
242
|
+
Returns:
|
|
243
|
+
bool: True if successfully logged out, False if not logged in.
|
|
244
|
+
"""
|
|
245
|
+
logger.debug("Logging out...")
|
|
246
|
+
rtn = remove_cached_token()
|
|
247
|
+
logger.debug("Logout successful: %s", rtn)
|
|
248
|
+
return rtn
|
|
249
|
+
|
|
250
250
|
@staticmethod
|
|
251
251
|
def get_user_info(relogin: bool = False) -> UserInfo | None:
|
|
252
252
|
"""Get user information from authentication token.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|