aignostics 0.2.93__tar.gz → 0.2.96__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.93 → aignostics-0.2.96}/PKG-INFO +1 -1
- {aignostics-0.2.93 → aignostics-0.2.96}/examples/notebook.py +1 -1
- {aignostics-0.2.93 → aignostics-0.2.96}/pyproject.toml +2 -2
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_page_application_describe.py +7 -15
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_page_index.py +3 -1
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/gui/_frame.py +1 -1
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_authentication.py +7 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/.gitignore +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/LICENSE +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/README.md +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/.openapi-generator/FILES +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/api/public_api.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/api_client.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/api_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/configuration.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/exceptions.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/application_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/application_run_status.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/application_version_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/http_validation_error.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/input_artifact_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/item_creation_request.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/item_status.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/output_artifact_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/payload_item.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_creation_request.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_creation_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_read_response.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/transfer_urls.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/user_payload.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/validation_error.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/rest.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/docs/PublicApi.md +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-macos-13/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-macos-latest/extracted/aignostics.app/Contents/Frameworks/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-ubuntu-24.04-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-ubuntu-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-windows-11-arm/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/cloudfront.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/dist_native_all/dist_native-windows-latest/extracted/aignostics/_internal/boto3/examples/s3.rst +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/examples/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/examples/notebook.ipynb +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/examples/script.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_frame.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_page_application_run_describe.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_page_builder.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/_utils.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/.gitignore +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/done.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/error.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/pending_alt.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/ruo.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_utils.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/constants.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/dataset/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/dataset/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/dataset/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/dataset/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/gui/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/gui/_theme.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/notebook/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/notebook/_notebook.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/notebook/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/notebook/assets/python.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_client.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_constants.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_messages.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/_utils.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/resources/applications.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/resources/runs.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/assets/download.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/assets/microscope.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/assets/update.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/scripts/add.groovy +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/scripts/annotate.groovy +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/scripts/inspect.groovy +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/qupath/scripts/test.groovy +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/system/assets/system.lottie +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/third_party/bottle.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/third_party/idc_index.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_console.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_constants.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_fs.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_log.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_logfire.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_notebook.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_process.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_sentry.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/_settings.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/utils/boot.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_cli.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_gui.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_openslide_handler.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_pydicom_handler.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_service.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/_utils.py +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/wsi/assets/fallback.png +0 -0
- {aignostics-0.2.93 → aignostics-0.2.96}/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.96
|
|
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.96"
|
|
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 = [
|
|
@@ -352,7 +352,7 @@ source = ["src/"]
|
|
|
352
352
|
|
|
353
353
|
|
|
354
354
|
[tool.bumpversion]
|
|
355
|
-
current_version = "0.2.
|
|
355
|
+
current_version = "0.2.96"
|
|
356
356
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
357
357
|
serialize = ["{major}.{minor}.{patch}"]
|
|
358
358
|
search = "{current_version}"
|
|
@@ -39,8 +39,7 @@ class SubmitForm:
|
|
|
39
39
|
metadata_grid: ui.aggrid | None = None
|
|
40
40
|
metadata_exclude_button: ui.button | None = None
|
|
41
41
|
metadata_next_button: ui.button | None = None
|
|
42
|
-
|
|
43
|
-
submission_submit_button: ui.button | None = None
|
|
42
|
+
upload_and_submit_button: ui.button | None = None
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
submit_form = SubmitForm()
|
|
@@ -376,7 +375,7 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
376
375
|
submit_form.metadata_grid.run_grid_method("autoSizeAllColumns")
|
|
377
376
|
|
|
378
377
|
async def _metadata_next() -> None:
|
|
379
|
-
if submit_form.metadata_grid is None or submit_form.
|
|
378
|
+
if submit_form.metadata_grid is None or submit_form.upload_and_submit_button is None:
|
|
380
379
|
logger.error(MESSAGE_METADATA_GRID_IS_NOT_INITIALIZED)
|
|
381
380
|
return
|
|
382
381
|
if "pytest" in sys.modules:
|
|
@@ -388,7 +387,7 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
388
387
|
else:
|
|
389
388
|
submit_form.metadata = await submit_form.metadata_grid.get_client_data()
|
|
390
389
|
_upload_ui.refresh(submit_form.metadata)
|
|
391
|
-
submit_form.
|
|
390
|
+
submit_form.upload_and_submit_button.enable()
|
|
392
391
|
if "pytest" in sys.modules:
|
|
393
392
|
message = f"Prepared upload UI with metadata '{submit_form.metadata}' for pytest."
|
|
394
393
|
logger.debug(message)
|
|
@@ -408,6 +407,7 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
408
407
|
submit_form.metadata_grid.update()
|
|
409
408
|
submit_form.metadata_exclude_button.set_text("Exclude")
|
|
410
409
|
submit_form.metadata_exclude_button.disable()
|
|
410
|
+
await _validate()
|
|
411
411
|
|
|
412
412
|
async def _handle_grid_selection_changed() -> None:
|
|
413
413
|
if submit_form.metadata_grid is None or submit_form.metadata_exclude_button is None:
|
|
@@ -568,10 +568,11 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
568
568
|
async def _upload() -> None:
|
|
569
569
|
"""Upload prepared slides."""
|
|
570
570
|
global upload_message_queue # noqa: PLW0602
|
|
571
|
-
if submit_form.
|
|
571
|
+
if submit_form.upload_and_submit_button is None:
|
|
572
572
|
logger.error("Submission submit button is not initialized.")
|
|
573
573
|
return
|
|
574
574
|
ui.notify("Uploading whole slide images to Aignostics Platform ...", type="info")
|
|
575
|
+
submit_form.upload_and_submit_button.disable()
|
|
575
576
|
|
|
576
577
|
await nicegui_run.cpu_bound(
|
|
577
578
|
Service.application_run_upload,
|
|
@@ -581,8 +582,6 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
581
582
|
upload_message_queue,
|
|
582
583
|
)
|
|
583
584
|
ui.notify("Upload to Aignostics Platform completed.", type="positive")
|
|
584
|
-
submit_form.submission_submit_button.enable()
|
|
585
|
-
submit_form.submission_upload_button.disable()
|
|
586
585
|
_submit()
|
|
587
586
|
|
|
588
587
|
@ui.refreshable
|
|
@@ -630,12 +629,5 @@ async def _page_application_describe(application_id: str) -> None: # noqa: C901
|
|
|
630
629
|
"Upload selected slides to Aignostics platform bucket, "
|
|
631
630
|
"and submit application run when uploaded."
|
|
632
631
|
)
|
|
633
|
-
submit_form.
|
|
634
|
-
submit_form.submission_submit_button = ui.button(
|
|
635
|
-
"Submit",
|
|
636
|
-
on_click=_submit,
|
|
637
|
-
icon="check",
|
|
638
|
-
)
|
|
639
|
-
submit_form.submission_submit_button.set_visibility(False)
|
|
640
|
-
submit_form.submission_submit_button.mark("BUTTON_SUBMISSION_SUBMIT").disable()
|
|
632
|
+
submit_form.upload_and_submit_button = submission_upload_button
|
|
641
633
|
ui.button("Back", on_click=stepper.previous).props("flat")
|
|
@@ -24,7 +24,9 @@ async def _page_index(client: Client) -> None:
|
|
|
24
24
|
app.storage.tab,
|
|
25
25
|
"user_info",
|
|
26
26
|
lambda user_info: (
|
|
27
|
-
f"Welcome
|
|
27
|
+
f"Welcome "
|
|
28
|
+
f"{user_info.profile.given_name if hasattr(user_info, 'profile') and user_info.profile else ''} "
|
|
29
|
+
f"to the Aignostics Launchpad"
|
|
28
30
|
),
|
|
29
31
|
).classes("text-4xl mb-2")
|
|
30
32
|
ui.label(
|
|
@@ -102,7 +102,7 @@ def frame( # noqa: C901, PLR0915
|
|
|
102
102
|
app.storage.tab["user_info"] = user_info
|
|
103
103
|
_user_info_ui.refresh()
|
|
104
104
|
with contextlib.suppress(Exception):
|
|
105
|
-
user_info = await run.
|
|
105
|
+
user_info = await run.io_bound(PlatformService.get_user_info, relogin=True)
|
|
106
106
|
app.storage.tab["user_info"] = user_info
|
|
107
107
|
ui.navigate.reload()
|
|
108
108
|
|
|
@@ -318,6 +318,11 @@ def _perform_authorization_code_with_pkce_flow() -> str:
|
|
|
318
318
|
# start the server
|
|
319
319
|
try:
|
|
320
320
|
with HTTPServer((host, port), OAuthCallbackHandler) as server:
|
|
321
|
+
# Enable socket reuse to prevent "Address already in use" errors
|
|
322
|
+
# This allows the socket to be reused immediately after the server closes,
|
|
323
|
+
# even if the previous connection is in TIME_WAIT state
|
|
324
|
+
server.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
325
|
+
|
|
321
326
|
# Call Auth0 with challenge and redirect to localhost with code after successful authN
|
|
322
327
|
webbrowser.open_new(authorization_url)
|
|
323
328
|
# Extract authorization_code from redirected request, see: OAuthCallbackHandler
|
|
@@ -438,6 +443,8 @@ def _ensure_local_port_is_available(port: int, max_retries: int = CALLBACK_PORT_
|
|
|
438
443
|
def is_port_available() -> bool:
|
|
439
444
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
440
445
|
try:
|
|
446
|
+
# Enable socket reuse to match the behavior of the actual HTTPServer
|
|
447
|
+
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
441
448
|
s.bind(("localhost", port))
|
|
442
449
|
return True
|
|
443
450
|
except OSError:
|
|
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.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/application_run_status.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/http_validation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/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.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/output_artifact_scope.py
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/payload_input_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/payload_output_artifact.py
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_creation_request.py
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_creation_response.py
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/codegen/out/aignx/codegen/models/run_read_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/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
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/canceled.lottie
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/error_alt.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-1.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-2.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-3.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-4.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/home-card-5.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/image-not-found.png
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/src/aignostics/application/_gui/assets/pending.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.93 → aignostics-0.2.96}/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
|
{aignostics-0.2.93 → aignostics-0.2.96}/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
|
|
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
|