aignostics 0.2.34__tar.gz → 0.2.37__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.34 → aignostics-0.2.37}/PKG-INFO +5 -5
- {aignostics-0.2.34 → aignostics-0.2.37}/examples/notebook.py +1 -1
- {aignostics-0.2.34 → aignostics-0.2.37}/pyproject.toml +10 -9
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/_service.py +4 -4
- aignostics-0.2.37/src/aignostics/bucket/_settings.py +86 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/annotate.groovy +1 -1
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_settings.py +1 -1
- aignostics-0.2.34/src/aignostics/bucket/_settings.py +0 -53
- {aignostics-0.2.34 → aignostics-0.2.37}/.gitignore +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/LICENSE +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/README.md +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/.openapi-generator/FILES +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/.openapi-generator/VERSION +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/api/public_api.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/api_client.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/api_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/configuration.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/exceptions.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/application_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/application_run_status.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/application_version_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/http_validation_error.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/input_artifact_creation_request.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/input_artifact_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/item_creation_request.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/item_result_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/item_status.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/output_artifact_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/output_artifact_result_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/output_artifact_scope.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/payload_input_artifact.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/payload_item.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/payload_output_artifact.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_creation_request.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_creation_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_read_response.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/transfer_urls.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/user_payload.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/validation_error.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/validation_error_loc_inner.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/rest.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/docs/PublicApi.md +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/examples/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/examples/e2e.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/examples/notebook.ipynb +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/examples/script.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_frame.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_page_application_describe.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_page_application_run_describe.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_page_builder.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_page_index.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/_utils.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/canceled.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/done.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/empty.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/error.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/error_alt.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-1.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-2.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-3.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-4.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-5.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/image-not-found.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/pending.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/pending_alt.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/ruo.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/ruo.svg +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_settings.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_utils.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/assets/Google-Cloud-logo.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/bucket/assets/Google-Cloud-logo.svg +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/constants.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/_idc_index.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/dataset/assets/NIH-IDC-logo.svg +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/gui/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/gui/_frame.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/gui/_theme.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/gui/assets/cabin-v27-latin-regular.woff2 +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/gui/assets/logo.png +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/notebook/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/notebook/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/notebook/_notebook.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/notebook/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/notebook/assets/python.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_authentication.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_client.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_constants.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_messages.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_settings.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/_utils.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/resources/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/resources/applications.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/resources/runs.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/platform/resources/utils.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/_settings.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/assets/download.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/assets/microscope.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/qupath/assets/update.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/_exceptions.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/_settings.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/system/assets/system.lottie +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/.vendored/bottle.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_console.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_constants.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_di.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_fs.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_health.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_log.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_logfire.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_notebook.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_process.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_sentry.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/utils/boot.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/__init__.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_cli.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_gui.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_openslide_handler.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_pydicom_handler.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_service.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/_utils.py +0 -0
- {aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/wsi/assets/fallback.png +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aignostics
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.37
|
|
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/
|
|
@@ -49,7 +49,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
49
49
|
Classifier: Typing :: Typed
|
|
50
50
|
Requires-Python: <4.0,>=3.11
|
|
51
51
|
Requires-Dist: appdirs>=1.4.4
|
|
52
|
-
Requires-Dist: boto3>=1.38.
|
|
52
|
+
Requires-Dist: boto3>=1.38.30
|
|
53
53
|
Requires-Dist: click
|
|
54
54
|
Requires-Dist: dicom-validator>=0.7.1
|
|
55
55
|
Requires-Dist: dicomweb-client[gcp]>=0.59.2
|
|
@@ -64,8 +64,8 @@ Requires-Dist: idc-index-data==21.0.0
|
|
|
64
64
|
Requires-Dist: ijson>=3.4.0
|
|
65
65
|
Requires-Dist: jsf>=0.11.2
|
|
66
66
|
Requires-Dist: jsonschema>=4.24.0
|
|
67
|
-
Requires-Dist: logfire[system-metrics]>=3.
|
|
68
|
-
Requires-Dist: nicegui[native]>=2.
|
|
67
|
+
Requires-Dist: logfire[system-metrics]>=3.17.0
|
|
68
|
+
Requires-Dist: nicegui[native]>=2.19.0
|
|
69
69
|
Requires-Dist: openslide-bin>=4.0.0.8
|
|
70
70
|
Requires-Dist: openslide-python>=1.4.2
|
|
71
71
|
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.53b0
|
|
@@ -77,7 +77,7 @@ Requires-Dist: opentelemetry-instrumentation-tornado>=0.53b0
|
|
|
77
77
|
Requires-Dist: opentelemetry-instrumentation-urllib3>=0.53b0
|
|
78
78
|
Requires-Dist: opentelemetry-instrumentation-urllib>=0.53b0
|
|
79
79
|
Requires-Dist: packaging
|
|
80
|
-
Requires-Dist: pandas<=2.
|
|
80
|
+
Requires-Dist: pandas<=2.3.0
|
|
81
81
|
Requires-Dist: platformdirs
|
|
82
82
|
Requires-Dist: psutil
|
|
83
83
|
Requires-Dist: psutil>=7.0.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "aignostics"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.37"
|
|
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 = [
|
|
@@ -75,8 +75,8 @@ requires-python = ">=3.11, <4.0"
|
|
|
75
75
|
dependencies = [
|
|
76
76
|
# From Template
|
|
77
77
|
"fastapi[standard,all]>=0.115.12",
|
|
78
|
-
"logfire[system-metrics]>=3.
|
|
79
|
-
"nicegui[native]>=2.
|
|
78
|
+
"logfire[system-metrics]>=3.17.0",
|
|
79
|
+
"nicegui[native]>=2.19.0",
|
|
80
80
|
"opentelemetry-instrumentation-fastapi>=0.53b0",
|
|
81
81
|
"opentelemetry-instrumentation-httpx>=0.53b0",
|
|
82
82
|
"opentelemetry-instrumentation-jinja2>=0.53b0",
|
|
@@ -93,7 +93,7 @@ dependencies = [
|
|
|
93
93
|
"uptime>=3.0.1",
|
|
94
94
|
# Custom
|
|
95
95
|
"appdirs>=1.4.4",
|
|
96
|
-
"boto3>=1.38.
|
|
96
|
+
"boto3>=1.38.30",
|
|
97
97
|
"dicom-validator>=0.7.1",
|
|
98
98
|
"dicomweb-client[gcp]>=0.59.2",
|
|
99
99
|
"google-cloud-storage>=2.12.0",
|
|
@@ -122,7 +122,7 @@ dependencies = [
|
|
|
122
122
|
'duckdb>=0.10.0,<=1.2.1',
|
|
123
123
|
"idc-index-data==21.0.0",
|
|
124
124
|
"packaging",
|
|
125
|
-
"pandas<=2.
|
|
125
|
+
"pandas<=2.3.0",
|
|
126
126
|
"platformdirs",
|
|
127
127
|
"psutil",
|
|
128
128
|
"pyarrow",
|
|
@@ -150,7 +150,7 @@ dev = [
|
|
|
150
150
|
"detect-secrets>=1.5.0",
|
|
151
151
|
"enum-tools>=0.13.0",
|
|
152
152
|
"furo>=2024.8.6",
|
|
153
|
-
"git-cliff>=2.
|
|
153
|
+
"git-cliff>=2.9.1",
|
|
154
154
|
"matplotlib>=3.10.1",
|
|
155
155
|
"mypy>=1.16.0",
|
|
156
156
|
"nox[uv]>=2025.5.1",
|
|
@@ -158,7 +158,7 @@ dev = [
|
|
|
158
158
|
"pip-licenses @ git+https://github.com/neXenio/pip-licenses.git@master", # https://github.com/raimon49/pip-licenses/pull/224
|
|
159
159
|
"pre-commit>=4.1.0",
|
|
160
160
|
"pyright>=1.1.401",
|
|
161
|
-
"pytest>=8.
|
|
161
|
+
"pytest>=8.4.0",
|
|
162
162
|
"pytest-asyncio>=1.0.0",
|
|
163
163
|
"pytest-cov>=6.1.1",
|
|
164
164
|
"pytest-docker>=3.2.2",
|
|
@@ -184,7 +184,7 @@ dev = [
|
|
|
184
184
|
"swagger-plugin-for-sphinx>=5.1.0",
|
|
185
185
|
"tomli>=2.1.0",
|
|
186
186
|
"types-pyyaml>=6.0.12.20250516",
|
|
187
|
-
"types-requests>=2.32.0.
|
|
187
|
+
"types-requests>=2.32.0.20250602",
|
|
188
188
|
"watchdog>=6.0.0",
|
|
189
189
|
]
|
|
190
190
|
|
|
@@ -216,6 +216,7 @@ override-dependencies = [ # https://github.com/astral-sh/uv/issues/4422
|
|
|
216
216
|
"h11>=0.16.0", # CVE-2025-47287
|
|
217
217
|
"rfc3987; sys_platform == 'never'", # GPLv3
|
|
218
218
|
"tornado>=6.5.0", # CVE-2025-47287
|
|
219
|
+
"jupyter-core>=5.8.1", # CVE-2025-30167
|
|
219
220
|
]
|
|
220
221
|
|
|
221
222
|
[tool.ruff]
|
|
@@ -355,7 +356,7 @@ source = ["src/"]
|
|
|
355
356
|
|
|
356
357
|
|
|
357
358
|
[tool.bumpversion]
|
|
358
|
-
current_version = "0.2.
|
|
359
|
+
current_version = "0.2.37"
|
|
359
360
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
360
361
|
serialize = ["{major}.{minor}.{patch}"]
|
|
361
362
|
search = "{current_version}"
|
|
@@ -28,13 +28,13 @@ class Service(BaseService):
|
|
|
28
28
|
"""Initialize service."""
|
|
29
29
|
super().__init__(Settings)
|
|
30
30
|
|
|
31
|
-
def info(self) -> dict[str, Any]:
|
|
31
|
+
def info(self) -> dict[str, Any]:
|
|
32
32
|
"""Determine info of this service.
|
|
33
33
|
|
|
34
34
|
Returns:
|
|
35
35
|
dict[str,Any]: The info of this service.
|
|
36
36
|
"""
|
|
37
|
-
return {}
|
|
37
|
+
return {"settings": self._settings.model_dump()}
|
|
38
38
|
|
|
39
39
|
def health(self) -> Health: # noqa: PLR6301
|
|
40
40
|
"""Determine health of this service.
|
|
@@ -97,7 +97,7 @@ class Service(BaseService):
|
|
|
97
97
|
url = self._get_s3_client().generate_presigned_url(
|
|
98
98
|
ClientMethod="put_object",
|
|
99
99
|
Params={"Bucket": self._settings.name if bucket_name is None else bucket_name, "Key": object_key},
|
|
100
|
-
ExpiresIn=
|
|
100
|
+
ExpiresIn=self._settings.upload_signed_url_expiration_seconds,
|
|
101
101
|
)
|
|
102
102
|
return cast("str", url)
|
|
103
103
|
|
|
@@ -163,7 +163,7 @@ class Service(BaseService):
|
|
|
163
163
|
url = self._get_s3_client().generate_presigned_url(
|
|
164
164
|
ClientMethod="get_object",
|
|
165
165
|
Params={"Bucket": self._settings.name if bucket_name is None else bucket_name, "Key": object_key},
|
|
166
|
-
ExpiresIn=
|
|
166
|
+
ExpiresIn=self._settings.download_signed_url_expiration_seconds,
|
|
167
167
|
)
|
|
168
168
|
return cast("str", url)
|
|
169
169
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""Settings of the bucket module."""
|
|
2
|
+
|
|
3
|
+
from enum import StrEnum
|
|
4
|
+
from typing import Annotated
|
|
5
|
+
|
|
6
|
+
from pydantic import Field, PlainSerializer, SecretStr
|
|
7
|
+
from pydantic_settings import SettingsConfigDict
|
|
8
|
+
|
|
9
|
+
from ..utils import OpaqueSettings, __env_file__, __project_name__ # noqa: TID252
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class BucketProtocol(StrEnum):
|
|
13
|
+
GS = "gs"
|
|
14
|
+
S3 = "s3"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Settings(OpaqueSettings):
|
|
18
|
+
"""Settings."""
|
|
19
|
+
|
|
20
|
+
model_config = SettingsConfigDict(
|
|
21
|
+
env_prefix=f"{__project_name__.upper()}_BUCKET_",
|
|
22
|
+
extra="ignore",
|
|
23
|
+
env_file=__env_file__,
|
|
24
|
+
env_file_encoding="utf-8",
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
protocol: Annotated[
|
|
28
|
+
BucketProtocol,
|
|
29
|
+
Field(
|
|
30
|
+
description=("Protocol to access the cloud bucket, default is gs"),
|
|
31
|
+
default="gs",
|
|
32
|
+
),
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
name: Annotated[
|
|
36
|
+
str,
|
|
37
|
+
Field(description=("Name of the cloud bucket")),
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
region_name: Annotated[
|
|
41
|
+
str,
|
|
42
|
+
Field(description=("Region of the cloud bucket"), default="EUROPE-WEST3"),
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
hmac_access_key_id: Annotated[
|
|
46
|
+
SecretStr,
|
|
47
|
+
PlainSerializer(func=OpaqueSettings.serialize_sensitive_info, return_type=str, when_used="always"),
|
|
48
|
+
Field(description=("HMAC access key ID of the cloud bucket")),
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
hmac_secret_access_key: Annotated[
|
|
52
|
+
SecretStr,
|
|
53
|
+
PlainSerializer(func=OpaqueSettings.serialize_sensitive_info, return_type=str, when_used="always"),
|
|
54
|
+
Field(description=("HMAC secret access key of the cloud bucket")),
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
upload_signed_url_expiration_seconds: Annotated[
|
|
58
|
+
int,
|
|
59
|
+
Field(
|
|
60
|
+
description=("Expiration time for signed URLs created and used by the Python SDK to upload to the bucket."),
|
|
61
|
+
default=2
|
|
62
|
+
* 60
|
|
63
|
+
* 60, # The Python SDK creates the signed upload URLs immediately before uploading, so 2h is sufficient.
|
|
64
|
+
ge=60, # Minimum expiration time is 60 seconds, see https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
|
|
65
|
+
le=7
|
|
66
|
+
* 24
|
|
67
|
+
* 60
|
|
68
|
+
* 60, # Limit to 7 days as this is the max e.g. at AWS, see https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
|
|
69
|
+
),
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
download_signed_url_expiration_seconds: Annotated[
|
|
73
|
+
int,
|
|
74
|
+
Field(
|
|
75
|
+
description=(
|
|
76
|
+
"Expiration time of the signed URLs provided by the Python SDK to the platform on submitting "
|
|
77
|
+
"application runs."
|
|
78
|
+
),
|
|
79
|
+
default=7 * 24 * 60 * 60, # The platform queues application runs, so we set a gracious default of 7d.
|
|
80
|
+
ge=60, # Minimum expiration time is 60 seconds, see https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
|
|
81
|
+
le=7
|
|
82
|
+
* 24
|
|
83
|
+
* 60
|
|
84
|
+
* 60, # Limit to 7 days as this is the max e.g. at AWS, see https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
|
|
85
|
+
),
|
|
86
|
+
]
|
|
@@ -34,7 +34,7 @@ class OpaqueSettings(BaseSettings):
|
|
|
34
34
|
def serialize_sensitive_info(input_value: SecretStr, info: FieldSerializationInfo) -> str | None:
|
|
35
35
|
if not input_value:
|
|
36
36
|
return None
|
|
37
|
-
if info.context.get(UNHIDE_SENSITIVE_INFO, False):
|
|
37
|
+
if info.context and info.context.get(UNHIDE_SENSITIVE_INFO, False):
|
|
38
38
|
return input_value.get_secret_value()
|
|
39
39
|
return str(input_value)
|
|
40
40
|
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"""Settings of the bucket module."""
|
|
2
|
-
|
|
3
|
-
from enum import StrEnum
|
|
4
|
-
from typing import Annotated
|
|
5
|
-
|
|
6
|
-
from pydantic import Field, SecretStr
|
|
7
|
-
from pydantic_settings import SettingsConfigDict
|
|
8
|
-
|
|
9
|
-
from ..utils import OpaqueSettings, __env_file__, __project_name__ # noqa: TID252
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class BucketProtocol(StrEnum):
|
|
13
|
-
GS = "gs"
|
|
14
|
-
S3 = "s3"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class Settings(OpaqueSettings):
|
|
18
|
-
"""Settings."""
|
|
19
|
-
|
|
20
|
-
model_config = SettingsConfigDict(
|
|
21
|
-
env_prefix=f"{__project_name__.upper()}_BUCKET_",
|
|
22
|
-
extra="ignore",
|
|
23
|
-
env_file=__env_file__,
|
|
24
|
-
env_file_encoding="utf-8",
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
protocol: Annotated[
|
|
28
|
-
BucketProtocol,
|
|
29
|
-
Field(
|
|
30
|
-
description=("Protocol to access the cloud bucket, default is gs"),
|
|
31
|
-
default="gs",
|
|
32
|
-
),
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
name: Annotated[
|
|
36
|
-
str,
|
|
37
|
-
Field(description=("Name of the cloud bucket")),
|
|
38
|
-
]
|
|
39
|
-
|
|
40
|
-
region_name: Annotated[
|
|
41
|
-
str,
|
|
42
|
-
Field(description=("Region of the cloud bucket"), default="EUROPE-WEST3"),
|
|
43
|
-
]
|
|
44
|
-
|
|
45
|
-
hmac_access_key_id: Annotated[
|
|
46
|
-
SecretStr,
|
|
47
|
-
Field(description=("HMAC access key ID of the cloud bucket")),
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
hmac_secret_access_key: Annotated[
|
|
51
|
-
SecretStr,
|
|
52
|
-
Field(description=("HMAC secret access key of the cloud bucket")),
|
|
53
|
-
]
|
|
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.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/application_run_status.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/http_validation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/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.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/output_artifact_scope.py
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/payload_input_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/payload_output_artifact.py
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_creation_request.py
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_creation_response.py
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/codegen/out/aignx/codegen/models/run_read_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/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
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/canceled.lottie
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/error_alt.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-1.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-2.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-3.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-4.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/home-card-5.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/image-not-found.png
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/src/aignostics/application/_gui/assets/pending.lottie
RENAMED
|
File without changes
|
{aignostics-0.2.34 → aignostics-0.2.37}/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.34 → aignostics-0.2.37}/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
|