hiddenlayer-sdk 2.0.6__tar.gz → 2.0.7__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.
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/PKG-INFO +1 -1
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/__init__.py +6 -2
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/services/model_scan.py +24 -8
- hiddenlayer_sdk-2.0.7/hiddenlayer/sdk/version.py +1 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/PKG-INFO +1 -1
- hiddenlayer_sdk-2.0.6/hiddenlayer/sdk/version.py +0 -1
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/LICENSE +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/README.md +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/__init__.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/constants.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/exceptions.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/models.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/__init__.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/__init__.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/aidr_predictive_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/health_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/model_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/model_supply_chain_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/readiness_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/sensor_api.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api_client.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/configuration.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/exceptions.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/__init__.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/address.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_change.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_content.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_location.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/attachment.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/begin_multi_file_upload200_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/begin_multipart_file_upload200_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/begin_multipart_file_upload200_response_parts_inner.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/code_flow.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/configuration_override.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/conversion.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/create_sensor_request.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/edge.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/edge_traversal.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/errors_inner.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/exception.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/external_properties.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/external_property_file_reference.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/external_property_file_references.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_details_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_result_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_scan_report_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_scan_reports_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/fix.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/get_condensed_model_scan_reports200_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/graph.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/graph_traversal.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/inventory_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/invocation.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/location.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/location_inner.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/location_relationship.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/logical_location.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/message.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/mitre_atlas_inner.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/model.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/model_inventory_info.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/model_version.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/multi_file_upload_request_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/multiformat_message_string.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/node.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/notification.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/notify_model_scan_completed200_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/paged_response_with_total.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/pagination_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/physical_location.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/problem_details.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/property_bag.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/rectangle.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/region.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/replacement.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/reporting_configuration.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/reporting_descriptor.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/reporting_descriptor_reference.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/reporting_descriptor_relationship.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/result.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/result_provenance.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/rule_details_inner.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/run.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/run_automation_details.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sarif210.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_create_request.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_detection_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_detection_v31.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_header_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_job.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_job_access.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_model_details_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_model_details_v31.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_model_ids_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_report_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_results_map_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_results_v3.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/security_posture.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_query_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_sor_model_card_query_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_sor_model_card_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_sor_query_filter.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_sor_query_request.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/special_locations.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/stack.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/stack_frame.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/submission_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/submission_v2.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/suppression.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/thread_flow.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/thread_flow_location.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/tool.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/tool_component.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/tool_component_reference.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/translation_metadata.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/validation_error_model.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/version_control_details.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/web_request.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/web_response.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/rest.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/services/__init__.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/services/aidr_predictive.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/utils.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/SOURCES.txt +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/dependency_links.txt +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/requires.txt +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/top_level.txt +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/pyproject.toml +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/setup.cfg +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/tests/test_hiddenlayer.py +0 -0
- {hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: hiddenlayer-sdk
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.7
|
4
4
|
Summary: Official HiddenLayer Python SDK
|
5
5
|
Author-email: HiddenLayer Integrations Team <integrations@hiddenlayer.com>
|
6
6
|
Maintainer-email: HiddenLayer Integrations Team <integrations@hiddenlayer.com>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import os
|
2
|
-
from typing import Optional
|
2
|
+
from typing import Callable, Optional
|
3
3
|
|
4
4
|
import requests
|
5
5
|
from requests.auth import HTTPBasicAuth
|
@@ -36,6 +36,7 @@ class HiddenlayerServiceClient:
|
|
36
36
|
):
|
37
37
|
self.host = host.strip()
|
38
38
|
self.is_saas = is_saas(host)
|
39
|
+
refresh_jwt_func: Optional[Callable[[], str]] = None
|
39
40
|
|
40
41
|
if self.is_saas:
|
41
42
|
if not api_id:
|
@@ -50,13 +51,16 @@ class HiddenlayerServiceClient:
|
|
50
51
|
|
51
52
|
jwt_token = self._get_jwt(api_id=api_id, api_key=api_key)
|
52
53
|
self._config = Configuration(host=self.host, access_token=jwt_token)
|
54
|
+
refresh_jwt_func = lambda: self._get_jwt(api_id=api_id, api_key=api_key)
|
53
55
|
|
54
56
|
else:
|
55
57
|
self._config = Configuration(host=self.host)
|
56
58
|
|
57
59
|
self._api_client = ApiClient(configuration=self._config)
|
58
60
|
self._aidr_predictive = AIDRPredictive(self._api_client)
|
59
|
-
self._model_scan = ModelScanAPI(
|
61
|
+
self._model_scan = ModelScanAPI(
|
62
|
+
self._api_client, refresh_token_func=refresh_jwt_func
|
63
|
+
)
|
60
64
|
|
61
65
|
def _get_jwt(self, *, api_id: str, api_key: str) -> str:
|
62
66
|
"Get the JWT token to auth to the Hiddenlayer API."
|
@@ -4,13 +4,13 @@ import tempfile
|
|
4
4
|
import time
|
5
5
|
import zipfile
|
6
6
|
from pathlib import Path
|
7
|
-
from typing import List, Optional, Union
|
7
|
+
from typing import Callable, List, Optional, Union
|
8
8
|
|
9
9
|
from hiddenlayer.sdk.constants import CommunityScanSource, ScanStatus
|
10
10
|
from hiddenlayer.sdk.models import EmptyScanResults, ScanResults
|
11
11
|
from hiddenlayer.sdk.rest.api import ModelSupplyChainApi
|
12
12
|
from hiddenlayer.sdk.rest.api_client import ApiClient
|
13
|
-
from hiddenlayer.sdk.rest.exceptions import NotFoundException
|
13
|
+
from hiddenlayer.sdk.rest.exceptions import NotFoundException, UnauthorizedException
|
14
14
|
from hiddenlayer.sdk.rest.models import (
|
15
15
|
MultiFileUploadRequestV3,
|
16
16
|
ScanJob,
|
@@ -32,9 +32,14 @@ EXCLUDE_FILE_TYPES = [
|
|
32
32
|
|
33
33
|
|
34
34
|
class ModelScanAPI:
|
35
|
-
def __init__(
|
35
|
+
def __init__(
|
36
|
+
self,
|
37
|
+
api_client: ApiClient,
|
38
|
+
refresh_token_func: Optional[Callable[[], str]] = None,
|
39
|
+
) -> None:
|
36
40
|
self._api_client = api_client
|
37
41
|
self._model_supply_chain_api = ModelSupplyChainApi(api_client=api_client)
|
42
|
+
self._refresh_token_func = refresh_token_func
|
38
43
|
|
39
44
|
def community_scan(
|
40
45
|
self,
|
@@ -328,11 +333,21 @@ class ModelScanAPI:
|
|
328
333
|
|
329
334
|
:returns: Scan results.
|
330
335
|
"""
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
+
retry = False
|
337
|
+
while True:
|
338
|
+
try:
|
339
|
+
scan_report = self._model_supply_chain_api.get_scan_results(scan_id)
|
340
|
+
break
|
341
|
+
except NotFoundException:
|
342
|
+
return EmptyScanResults()
|
343
|
+
except UnauthorizedException as e:
|
344
|
+
if not retry and self._refresh_token_func:
|
345
|
+
new_token = self._refresh_token_func()
|
346
|
+
self._api_client.configuration.access_token = new_token
|
347
|
+
self._api_client = ApiClient(self._api_client.configuration)
|
348
|
+
retry = True
|
349
|
+
else:
|
350
|
+
raise e
|
336
351
|
|
337
352
|
return ScanResults.from_scanreportv3(scan_report_v3=scan_report)
|
338
353
|
|
@@ -461,6 +476,7 @@ class ModelScanAPI:
|
|
461
476
|
delay = base_delay * 2**retries + random.uniform(
|
462
477
|
0, 1
|
463
478
|
) # exponential back off retry
|
479
|
+
delay = min(delay, 30)
|
464
480
|
time.sleep(delay)
|
465
481
|
scan_results = self.get_scan_results(scan_id=scan_id)
|
466
482
|
print(f"scan status: {scan_results.status}")
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION = "2.0.7"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: hiddenlayer-sdk
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.7
|
4
4
|
Summary: Official HiddenLayer Python SDK
|
5
5
|
Author-email: HiddenLayer Integrations Team <integrations@hiddenlayer.com>
|
6
6
|
Maintainer-email: HiddenLayer Integrations Team <integrations@hiddenlayer.com>
|
@@ -1 +0,0 @@
|
|
1
|
-
VERSION = "2.0.6"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/aidr_predictive_api.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/api/model_supply_chain_api.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
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_change.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_content.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/artifact_location.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
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/create_sensor_request.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/edge_traversal.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/external_properties.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_details_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_result_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_scan_report_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/file_scan_reports_v3.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/graph_traversal.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/location_inner.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/location_relationship.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/logical_location.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/mitre_atlas_inner.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/model_inventory_info.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/model_version.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/pagination_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/physical_location.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/problem_details.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/reporting_descriptor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/result_provenance.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/rule_details_inner.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_create_request.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_detection_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_detection_v31.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_header_v3.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_job_access.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_model_details_v3.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_model_ids_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_report_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_results_map_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/scan_results_v3.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/security_posture.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/sensor_query_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/special_locations.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/submission_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/submission_v2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/thread_flow_location.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/tool_component.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer/sdk/rest/models/translation_metadata.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
|
{hiddenlayer_sdk-2.0.6 → hiddenlayer_sdk-2.0.7}/hiddenlayer_sdk.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|