aignostics 0.2.73__tar.gz → 0.2.87__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.87}/PKG-INFO +5 -3
- {aignostics-0.2.73 → aignostics-0.2.87}/examples/notebook.py +1 -1
- {aignostics-0.2.73 → aignostics-0.2.87}/pyproject.toml +6 -7
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/__init__.py +9 -5
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_utils.py +7 -3
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/resources/runs.py +11 -5
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_log.py +23 -3
- aignostics-0.2.73/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -20
- aignostics-0.2.73/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -28
- aignostics-0.2.73/dist_native_all/dist_native-macos-13/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -9
- aignostics-0.2.73/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 -20
- aignostics-0.2.73/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 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/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 -20
- aignostics-0.2.73/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 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -20
- aignostics-0.2.73/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -28
- aignostics-0.2.73/dist_native_all/dist_native-macos-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -9
- aignostics-0.2.73/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 -20
- aignostics-0.2.73/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 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/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 -20
- aignostics-0.2.73/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 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/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 -20
- aignostics-0.2.73/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 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -20
- aignostics-0.2.73/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -28
- aignostics-0.2.73/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -9
- aignostics-0.2.73/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -20
- aignostics-0.2.73/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -28
- aignostics-0.2.73/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 -9
- aignostics-0.2.73/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.jquery +0 -20
- aignostics-0.2.73/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon +0 -28
- aignostics-0.2.73/dist_native_all/dist_native-windows-latest/aignostics/_internal/openslide_python-1.4.2.dist-info/licenses/examples/deepzoom/licenses/LICENSE.openseadragon-scalebar +0 -9
- {aignostics-0.2.73 → aignostics-0.2.87}/.gitignore +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/LICENSE +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/README.md +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/.openapi-generator/FILES +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/api/public_api.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/api_client.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/api_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/configuration.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/exceptions.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/application_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/application_run_status.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/application_version_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/http_validation_error.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/input_artifact_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/item_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/item_status.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/output_artifact_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/payload_item.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/run_creation_request.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/run_creation_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/run_read_response.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/transfer_urls.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/user_payload.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/validation_error.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/aignx/codegen/rest.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/codegen/out/docs/PublicApi.md +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-13/aignostics.app/Contents/Resources/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-macos-latest/aignostics.app/Contents/Resources/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-ubuntu-24.04-arm/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-ubuntu-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-windows-11-arm/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-windows-latest/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/dist_native_all/dist_native-windows-latest/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/examples/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/examples/notebook.ipynb +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/examples/script.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_frame.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_page_application_describe.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_page_application_run_describe.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_page_builder.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_page_index.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/.gitignore +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/done.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/error.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/pending_alt.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/ruo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/application/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/dataset/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/dataset/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/dataset/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/dataset/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/gui/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/gui/_frame.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/gui/_theme.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/notebook/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/notebook/_notebook.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/notebook/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/notebook/assets/python.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_authentication.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_client.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_messages.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_service.py +14 -14
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/resources/applications.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/assets/download.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/assets/microscope.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/assets/update.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/scripts/add.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/qupath/scripts/test.groovy +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/system/assets/system.lottie +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/third_party/bottle.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/third_party/idc_index.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_console.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_constants.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_fs.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_logfire.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_notebook.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_process.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_sentry.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/_settings.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/utils/boot.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_cli.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_gui.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_openslide_handler.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_pydicom_handler.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_service.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/_utils.py +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/src/aignostics/wsi/assets/fallback.png +0 -0
- {aignostics-0.2.73 → aignostics-0.2.87}/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.87
|
|
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/
|
|
@@ -55,6 +55,7 @@ Requires-Dist: dicom-validator>=0.7.1
|
|
|
55
55
|
Requires-Dist: dicomweb-client[gcp]>=0.59.2
|
|
56
56
|
Requires-Dist: duckdb<=1.4.0,>=0.10.0
|
|
57
57
|
Requires-Dist: fastapi[all,standard]>=0.115.13
|
|
58
|
+
Requires-Dist: fastparquet>=2024.11.0
|
|
58
59
|
Requires-Dist: google-cloud-storage>=3.1.1
|
|
59
60
|
Requires-Dist: google-crc32c>=1.7.1
|
|
60
61
|
Requires-Dist: highdicom>=0.25.1
|
|
@@ -80,7 +81,6 @@ Requires-Dist: packaging>=25.0
|
|
|
80
81
|
Requires-Dist: pandas<=2.3.0
|
|
81
82
|
Requires-Dist: platformdirs>=4.3.8
|
|
82
83
|
Requires-Dist: psutil>=7.0.0
|
|
83
|
-
Requires-Dist: pyarrow>=20.0.0
|
|
84
84
|
Requires-Dist: pydantic-settings>=2.9.1
|
|
85
85
|
Requires-Dist: pyjwt[crypto]>=2.10.1
|
|
86
86
|
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
@@ -102,9 +102,11 @@ Provides-Extra: jupyter
|
|
|
102
102
|
Requires-Dist: jupyter>=1.1.1; extra == 'jupyter'
|
|
103
103
|
Provides-Extra: marimo
|
|
104
104
|
Requires-Dist: cloudpathlib>=0.21.1; extra == 'marimo'
|
|
105
|
-
Requires-Dist: marimo>=0.14.
|
|
105
|
+
Requires-Dist: marimo>=0.14.9; extra == 'marimo'
|
|
106
106
|
Requires-Dist: matplotlib>=3.10.3; extra == 'marimo'
|
|
107
107
|
Requires-Dist: shapely>=2.1.0; extra == 'marimo'
|
|
108
|
+
Provides-Extra: pyinstaller
|
|
109
|
+
Requires-Dist: pyinstaller>=6.14.0; extra == 'pyinstaller'
|
|
108
110
|
Provides-Extra: qupath
|
|
109
111
|
Description-Content-Type: text/markdown
|
|
110
112
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "aignostics"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.87"
|
|
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 = [
|
|
@@ -98,6 +98,7 @@ dependencies = [
|
|
|
98
98
|
"dicom-validator>=0.7.1",
|
|
99
99
|
"dicomweb-client[gcp]>=0.59.2",
|
|
100
100
|
"duckdb>=0.10.0,<=1.4.0",
|
|
101
|
+
"fastparquet>=2024.11.0",
|
|
101
102
|
"google-cloud-storage>=3.1.1",
|
|
102
103
|
"google-crc32c>=1.7.1",
|
|
103
104
|
"highdicom>=0.25.1",
|
|
@@ -113,7 +114,6 @@ dependencies = [
|
|
|
113
114
|
"pandas<=2.3.0",
|
|
114
115
|
"platformdirs>=4.3.8",
|
|
115
116
|
"psutil>=7.0.0",
|
|
116
|
-
"pyarrow>=20.0.0",
|
|
117
117
|
"pyjwt[crypto]>=2.10.1",
|
|
118
118
|
"python-dateutil>=2.9.0.post0",
|
|
119
119
|
# "pywebview[qt6]>=5.4; sys_platform == 'linux'",
|
|
@@ -130,10 +130,11 @@ dependencies = [
|
|
|
130
130
|
]
|
|
131
131
|
|
|
132
132
|
[project.optional-dependencies]
|
|
133
|
+
pyinstaller = ["pyinstaller>=6.14.0"]
|
|
133
134
|
jupyter = ["jupyter>=1.1.1"]
|
|
134
135
|
marimo = [
|
|
135
136
|
"cloudpathlib>=0.21.1",
|
|
136
|
-
"marimo>=0.14.
|
|
137
|
+
"marimo>=0.14.9",
|
|
137
138
|
"matplotlib>=3.10.3",
|
|
138
139
|
"shapely>=2.1.0",
|
|
139
140
|
]
|
|
@@ -147,13 +148,11 @@ dev = [
|
|
|
147
148
|
"enum-tools>=0.13.0",
|
|
148
149
|
"furo>=2024.8.6",
|
|
149
150
|
"git-cliff>=2.9.1",
|
|
150
|
-
"
|
|
151
|
-
"mypy>=1.16.0",
|
|
151
|
+
"mypy>=1.16.1",
|
|
152
152
|
"nox[uv]>=2025.5.1",
|
|
153
153
|
"pip-audit>=2.9.0",
|
|
154
154
|
"pip-licenses @ git+https://github.com/neXenio/pip-licenses.git@master", # https://github.com/raimon49/pip-licenses/pull/224
|
|
155
155
|
"pre-commit>=4.1.0",
|
|
156
|
-
"pyinstaller>=6.14.0",
|
|
157
156
|
"pyright>=1.1.402",
|
|
158
157
|
"pytest>=8.4.1",
|
|
159
158
|
"pytest-asyncio>=1.0.0",
|
|
@@ -354,7 +353,7 @@ source = ["src/"]
|
|
|
354
353
|
|
|
355
354
|
|
|
356
355
|
[tool.bumpversion]
|
|
357
|
-
current_version = "0.2.
|
|
356
|
+
current_version = "0.2.87"
|
|
358
357
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
359
358
|
serialize = ["{major}.{minor}.{patch}"]
|
|
360
359
|
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)
|
|
@@ -8,8 +8,9 @@ from logging import Handler
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Annotated, Literal
|
|
10
10
|
|
|
11
|
+
import appdirs
|
|
11
12
|
import click
|
|
12
|
-
from pydantic import
|
|
13
|
+
from pydantic import Field, ValidationInfo, field_validator
|
|
13
14
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
14
15
|
from rich.console import Console
|
|
15
16
|
from rich.logging import RichHandler
|
|
@@ -95,10 +96,11 @@ class LogSettings(BaseSettings):
|
|
|
95
96
|
]
|
|
96
97
|
file_name: Annotated[
|
|
97
98
|
str,
|
|
98
|
-
AfterValidator(_validate_file_name),
|
|
99
99
|
Field(
|
|
100
100
|
description="Name of the log file",
|
|
101
|
-
default="/dev/stdout"
|
|
101
|
+
default="/dev/stdout"
|
|
102
|
+
if __is_running_in_read_only_environment__
|
|
103
|
+
else appdirs.user_data_dir(__project_name__) + f"/{__project_name__}.log",
|
|
102
104
|
),
|
|
103
105
|
]
|
|
104
106
|
console_enabled: Annotated[
|
|
@@ -106,6 +108,24 @@ class LogSettings(BaseSettings):
|
|
|
106
108
|
Field(description="Enable logging to console", default=False),
|
|
107
109
|
]
|
|
108
110
|
|
|
111
|
+
@field_validator("file_name")
|
|
112
|
+
@classmethod
|
|
113
|
+
def validate_file_name_when_enabled(cls, file_name: str, info: ValidationInfo) -> str:
|
|
114
|
+
"""
|
|
115
|
+
Validate file_name only when file_enabled is True.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
file_name: The file name to validate.
|
|
119
|
+
info: Validation info containing other field values.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
str: The validated file name.
|
|
123
|
+
"""
|
|
124
|
+
# Check if file_enabled is True in the provided data
|
|
125
|
+
if info.data.get("file_enabled", False):
|
|
126
|
+
_validate_file_name(file_name)
|
|
127
|
+
return file_name
|
|
128
|
+
|
|
109
129
|
|
|
110
130
|
class CustomFilter(LogggingFilter):
|
|
111
131
|
"""Filter to exclude specific dependencies or their messages from logging."""
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This software was developed at the National Institute of Standards and
|
|
2
|
-
Technology by employees of the Federal Government in the course of
|
|
3
|
-
their official duties. Pursuant to title 17 Section 105 of the United
|
|
4
|
-
States Code this software is not subject to copyright protection and is
|
|
5
|
-
in the public domain. This software is an experimental system. NIST assumes
|
|
6
|
-
no responsibility whatsoever for its use by other parties, and makes no
|
|
7
|
-
guarantees, expressed or implied, about its quality, reliability, or
|
|
8
|
-
any other characteristic. We would appreciate acknowledgement if the
|
|
9
|
-
software is used.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This software was developed at the National Institute of Standards and
|
|
2
|
-
Technology by employees of the Federal Government in the course of
|
|
3
|
-
their official duties. Pursuant to title 17 Section 105 of the United
|
|
4
|
-
States Code this software is not subject to copyright protection and is
|
|
5
|
-
in the public domain. This software is an experimental system. NIST assumes
|
|
6
|
-
no responsibility whatsoever for its use by other parties, and makes no
|
|
7
|
-
guarantees, expressed or implied, about its quality, reliability, or
|
|
8
|
-
any other characteristic. We would appreciate acknowledgement if the
|
|
9
|
-
software is used.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This software was developed at the National Institute of Standards and
|
|
2
|
-
Technology by employees of the Federal Government in the course of
|
|
3
|
-
their official duties. Pursuant to title 17 Section 105 of the United
|
|
4
|
-
States Code this software is not subject to copyright protection and is
|
|
5
|
-
in the public domain. This software is an experimental system. NIST assumes
|
|
6
|
-
no responsibility whatsoever for its use by other parties, and makes no
|
|
7
|
-
guarantees, expressed or implied, about its quality, reliability, or
|
|
8
|
-
any other characteristic. We would appreciate acknowledgement if the
|
|
9
|
-
software is used.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This software was developed at the National Institute of Standards and
|
|
2
|
-
Technology by employees of the Federal Government in the course of
|
|
3
|
-
their official duties. Pursuant to title 17 Section 105 of the United
|
|
4
|
-
States Code this software is not subject to copyright protection and is
|
|
5
|
-
in the public domain. This software is an experimental system. NIST assumes
|
|
6
|
-
no responsibility whatsoever for its use by other parties, and makes no
|
|
7
|
-
guarantees, expressed or implied, about its quality, reliability, or
|
|
8
|
-
any other characteristic. We would appreciate acknowledgement if the
|
|
9
|
-
software is used.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This software was developed at the National Institute of Standards and
|
|
2
|
-
Technology by employees of the Federal Government in the course of
|
|
3
|
-
their official duties. Pursuant to title 17 Section 105 of the United
|
|
4
|
-
States Code this software is not subject to copyright protection and is
|
|
5
|
-
in the public domain. This software is an experimental system. NIST assumes
|
|
6
|
-
no responsibility whatsoever for its use by other parties, and makes no
|
|
7
|
-
guarantees, expressed or implied, about its quality, reliability, or
|
|
8
|
-
any other characteristic. We would appreciate acknowledgement if the
|
|
9
|
-
software is used.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2009 CodePlex Foundation
|
|
2
|
-
Copyright (C) 2010-2024 OpenSeadragon contributors
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
|
5
|
-
modification, are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
- Redistributions in binary form must reproduce the above copyright notice,
|
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
|
12
|
-
and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
- Neither the name of CodePlex Foundation nor the names of its contributors
|
|
15
|
-
may be used to endorse or promote products derived from this software
|
|
16
|
-
without specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
22
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
-
POSSIBILITY OF SUCH DAMAGE.
|