hiddenlayer-sdk 3.0.0__tar.gz → 3.0.1__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-3.0.1/.release-please-manifest.json +3 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/CHANGELOG.md +8 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/PKG-INFO +115 -25
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/README.md +114 -24
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/pyproject.toml +1 -1
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_version.py +1 -1
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_client.py +70 -24
- hiddenlayer_sdk-3.0.0/.release-please-manifest.json +0 -3
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/.gitignore +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/CODE_OF_CONDUCT.md +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/CONTRIBUTING.md +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/LICENSE +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/SECURITY.md +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/api.md +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/bin/check-release-environment +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/bin/publish-jfrog +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/bin/publish-pypi +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/examples/.keep +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/examples/demo.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/noxfile.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/release-please-config.json +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/requirements-dev.lock +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/requirements.lock +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_base_client.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_client.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_compat.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_constants.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_exceptions.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_files.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_models.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_oauth2.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_qs.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_resource.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_streaming.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_types.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_compat.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_datetime_parse.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_logs.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_proxy.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_reflection.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_resources_proxy.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_streams.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_sync.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_transform.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_typing.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/_utils/_utils.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/lib/.keep +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/lib/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/lib/community_scan.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/lib/model_scan.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/lib/scan_utils.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/pagination.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/py.typed +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/interactions.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/models/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/models/cards.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/models/models.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/prompt_analyzer.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/jobs.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/results.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/scans.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/file.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/upload.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/sensors.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/interaction_analyze_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/interaction_analyze_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/model_retrieve_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/models/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/models/card_list_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/models/card_list_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/prompt_analyzer_create_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/prompt_analyzer_create_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_list_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_list_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_request_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_retrieve_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/result_sarif_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/scan_job.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/scan_report.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload/file_add_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload/file_complete_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload_complete_all_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload_start_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload_start_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_create_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_create_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_query_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_query_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_retrieve_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_update_params.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_update_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/models/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/models/test_cards.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/test_jobs.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/test_results.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/test_upload.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/upload/__init__.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/upload/test_file.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/test_interactions.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/test_models.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/test_prompt_analyzer.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/test_sensors.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/conftest.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/sample_file.txt +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_community_scan.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_deepcopy.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_extract_files.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_files.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_model_scan.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_models.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_qs.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_required_args.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_response.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_streaming.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_transform.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_utils/test_datetime_parse.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_utils/test_proxy.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/test_utils/test_typing.py +0 -0
- {hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/utils.py +0 -0
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.0.1 (2025-09-23)
|
4
|
+
|
5
|
+
Full Changelog: [v3.0.0...v3.0.1](https://github.com/hiddenlayerai/hiddenlayer-sdk-python/compare/v3.0.0...v3.0.1)
|
6
|
+
|
7
|
+
### Features
|
8
|
+
|
9
|
+
* **api:** manual updates ([2be2f2c](https://github.com/hiddenlayerai/hiddenlayer-sdk-python/commit/2be2f2c124d8ac9b9d22c675c165be496c1793ba))
|
10
|
+
|
3
11
|
## 3.0.0 (2025-09-23)
|
4
12
|
|
5
13
|
Full Changelog: [v0.1.0-alpha.33...v3.0.0](https://github.com/hiddenlayerai/hiddenlayer-sdk-python/compare/v0.1.0-alpha.33...v3.0.0)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: hiddenlayer-sdk
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.1
|
4
4
|
Summary: The official Python library for the hiddenlayer API
|
5
5
|
Project-URL: Homepage, https://github.com/hiddenlayerai/hiddenlayer-sdk-python
|
6
6
|
Project-URL: Repository, https://github.com/hiddenlayerai/hiddenlayer-sdk-python
|
@@ -70,10 +70,21 @@ client = HiddenLayer(
|
|
70
70
|
environment="prod-eu",
|
71
71
|
)
|
72
72
|
|
73
|
-
|
74
|
-
|
73
|
+
response = client.interactions.analyze(
|
74
|
+
metadata={
|
75
|
+
"model": "REPLACE_ME",
|
76
|
+
"requester_id": "REPLACE_ME",
|
77
|
+
},
|
78
|
+
input={
|
79
|
+
"messages": [
|
80
|
+
{
|
81
|
+
"role": "user",
|
82
|
+
"content": "REPLACE_ME",
|
83
|
+
}
|
84
|
+
]
|
85
|
+
},
|
75
86
|
)
|
76
|
-
print(
|
87
|
+
print(response.analysis)
|
77
88
|
```
|
78
89
|
|
79
90
|
While you can provide a `bearer_token` keyword argument,
|
@@ -96,10 +107,21 @@ client = AsyncHiddenLayer(
|
|
96
107
|
|
97
108
|
|
98
109
|
async def main() -> None:
|
99
|
-
|
100
|
-
|
110
|
+
response = await client.interactions.analyze(
|
111
|
+
metadata={
|
112
|
+
"model": "REPLACE_ME",
|
113
|
+
"requester_id": "REPLACE_ME",
|
114
|
+
},
|
115
|
+
input={
|
116
|
+
"messages": [
|
117
|
+
{
|
118
|
+
"role": "user",
|
119
|
+
"content": "REPLACE_ME",
|
120
|
+
}
|
121
|
+
]
|
122
|
+
},
|
101
123
|
)
|
102
|
-
print(
|
124
|
+
print(response.analysis)
|
103
125
|
|
104
126
|
|
105
127
|
asyncio.run(main())
|
@@ -130,10 +152,21 @@ async def main() -> None:
|
|
130
152
|
async with AsyncHiddenLayer(
|
131
153
|
http_client=DefaultAioHttpClient(),
|
132
154
|
) as client:
|
133
|
-
|
134
|
-
|
155
|
+
response = await client.interactions.analyze(
|
156
|
+
metadata={
|
157
|
+
"model": "REPLACE_ME",
|
158
|
+
"requester_id": "REPLACE_ME",
|
159
|
+
},
|
160
|
+
input={
|
161
|
+
"messages": [
|
162
|
+
{
|
163
|
+
"role": "user",
|
164
|
+
"content": "REPLACE_ME",
|
165
|
+
}
|
166
|
+
]
|
167
|
+
},
|
135
168
|
)
|
136
|
-
print(
|
169
|
+
print(response.analysis)
|
137
170
|
|
138
171
|
|
139
172
|
asyncio.run(main())
|
@@ -157,10 +190,14 @@ from hiddenlayer import HiddenLayer
|
|
157
190
|
|
158
191
|
client = HiddenLayer()
|
159
192
|
|
160
|
-
|
161
|
-
|
193
|
+
response = client.interactions.analyze(
|
194
|
+
metadata={
|
195
|
+
"model": "gpt-5",
|
196
|
+
"requester_id": "user-1234",
|
197
|
+
"provider": "openai",
|
198
|
+
},
|
162
199
|
)
|
163
|
-
print(
|
200
|
+
print(response.metadata)
|
164
201
|
```
|
165
202
|
|
166
203
|
## Handling errors
|
@@ -179,8 +216,19 @@ from hiddenlayer import HiddenLayer
|
|
179
216
|
client = HiddenLayer()
|
180
217
|
|
181
218
|
try:
|
182
|
-
client.
|
183
|
-
|
219
|
+
client.interactions.analyze(
|
220
|
+
metadata={
|
221
|
+
"model": "REPLACE_ME",
|
222
|
+
"requester_id": "REPLACE_ME",
|
223
|
+
},
|
224
|
+
input={
|
225
|
+
"messages": [
|
226
|
+
{
|
227
|
+
"role": "user",
|
228
|
+
"content": "REPLACE_ME",
|
229
|
+
}
|
230
|
+
]
|
231
|
+
},
|
184
232
|
)
|
185
233
|
except hiddenlayer.APIConnectionError as e:
|
186
234
|
print("The server could not be reached")
|
@@ -224,8 +272,19 @@ client = HiddenLayer(
|
|
224
272
|
)
|
225
273
|
|
226
274
|
# Or, configure per-request:
|
227
|
-
client.with_options(max_retries=5).
|
228
|
-
|
275
|
+
client.with_options(max_retries=5).interactions.analyze(
|
276
|
+
metadata={
|
277
|
+
"model": "REPLACE_ME",
|
278
|
+
"requester_id": "REPLACE_ME",
|
279
|
+
},
|
280
|
+
input={
|
281
|
+
"messages": [
|
282
|
+
{
|
283
|
+
"role": "user",
|
284
|
+
"content": "REPLACE_ME",
|
285
|
+
}
|
286
|
+
]
|
287
|
+
},
|
229
288
|
)
|
230
289
|
```
|
231
290
|
|
@@ -249,8 +308,19 @@ client = HiddenLayer(
|
|
249
308
|
)
|
250
309
|
|
251
310
|
# Override per-request:
|
252
|
-
client.with_options(timeout=5.0).
|
253
|
-
|
311
|
+
client.with_options(timeout=5.0).interactions.analyze(
|
312
|
+
metadata={
|
313
|
+
"model": "REPLACE_ME",
|
314
|
+
"requester_id": "REPLACE_ME",
|
315
|
+
},
|
316
|
+
input={
|
317
|
+
"messages": [
|
318
|
+
{
|
319
|
+
"role": "user",
|
320
|
+
"content": "REPLACE_ME",
|
321
|
+
}
|
322
|
+
]
|
323
|
+
},
|
254
324
|
)
|
255
325
|
```
|
256
326
|
|
@@ -292,13 +362,22 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
292
362
|
from hiddenlayer import HiddenLayer
|
293
363
|
|
294
364
|
client = HiddenLayer()
|
295
|
-
response = client.
|
296
|
-
|
365
|
+
response = client.interactions.with_raw_response.analyze(
|
366
|
+
metadata={
|
367
|
+
"model": "REPLACE_ME",
|
368
|
+
"requester_id": "REPLACE_ME",
|
369
|
+
},
|
370
|
+
input={
|
371
|
+
"messages": [{
|
372
|
+
"role": "user",
|
373
|
+
"content": "REPLACE_ME",
|
374
|
+
}]
|
375
|
+
},
|
297
376
|
)
|
298
377
|
print(response.headers.get('X-My-Header'))
|
299
378
|
|
300
|
-
|
301
|
-
print(
|
379
|
+
interaction = response.parse() # get the object that `interactions.analyze()` would have returned
|
380
|
+
print(interaction.analysis)
|
302
381
|
```
|
303
382
|
|
304
383
|
These methods return an [`APIResponse`](https://github.com/hiddenlayerai/hiddenlayer-sdk-python/tree/main/src/hiddenlayer/_response.py) object.
|
@@ -312,8 +391,19 @@ The above interface eagerly reads the full response body when you make the reque
|
|
312
391
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
313
392
|
|
314
393
|
```python
|
315
|
-
with client.
|
316
|
-
|
394
|
+
with client.interactions.with_streaming_response.analyze(
|
395
|
+
metadata={
|
396
|
+
"model": "REPLACE_ME",
|
397
|
+
"requester_id": "REPLACE_ME",
|
398
|
+
},
|
399
|
+
input={
|
400
|
+
"messages": [
|
401
|
+
{
|
402
|
+
"role": "user",
|
403
|
+
"content": "REPLACE_ME",
|
404
|
+
}
|
405
|
+
]
|
406
|
+
},
|
317
407
|
) as response:
|
318
408
|
print(response.headers.get("X-My-Header"))
|
319
409
|
|
@@ -32,10 +32,21 @@ client = HiddenLayer(
|
|
32
32
|
environment="prod-eu",
|
33
33
|
)
|
34
34
|
|
35
|
-
|
36
|
-
|
35
|
+
response = client.interactions.analyze(
|
36
|
+
metadata={
|
37
|
+
"model": "REPLACE_ME",
|
38
|
+
"requester_id": "REPLACE_ME",
|
39
|
+
},
|
40
|
+
input={
|
41
|
+
"messages": [
|
42
|
+
{
|
43
|
+
"role": "user",
|
44
|
+
"content": "REPLACE_ME",
|
45
|
+
}
|
46
|
+
]
|
47
|
+
},
|
37
48
|
)
|
38
|
-
print(
|
49
|
+
print(response.analysis)
|
39
50
|
```
|
40
51
|
|
41
52
|
While you can provide a `bearer_token` keyword argument,
|
@@ -58,10 +69,21 @@ client = AsyncHiddenLayer(
|
|
58
69
|
|
59
70
|
|
60
71
|
async def main() -> None:
|
61
|
-
|
62
|
-
|
72
|
+
response = await client.interactions.analyze(
|
73
|
+
metadata={
|
74
|
+
"model": "REPLACE_ME",
|
75
|
+
"requester_id": "REPLACE_ME",
|
76
|
+
},
|
77
|
+
input={
|
78
|
+
"messages": [
|
79
|
+
{
|
80
|
+
"role": "user",
|
81
|
+
"content": "REPLACE_ME",
|
82
|
+
}
|
83
|
+
]
|
84
|
+
},
|
63
85
|
)
|
64
|
-
print(
|
86
|
+
print(response.analysis)
|
65
87
|
|
66
88
|
|
67
89
|
asyncio.run(main())
|
@@ -92,10 +114,21 @@ async def main() -> None:
|
|
92
114
|
async with AsyncHiddenLayer(
|
93
115
|
http_client=DefaultAioHttpClient(),
|
94
116
|
) as client:
|
95
|
-
|
96
|
-
|
117
|
+
response = await client.interactions.analyze(
|
118
|
+
metadata={
|
119
|
+
"model": "REPLACE_ME",
|
120
|
+
"requester_id": "REPLACE_ME",
|
121
|
+
},
|
122
|
+
input={
|
123
|
+
"messages": [
|
124
|
+
{
|
125
|
+
"role": "user",
|
126
|
+
"content": "REPLACE_ME",
|
127
|
+
}
|
128
|
+
]
|
129
|
+
},
|
97
130
|
)
|
98
|
-
print(
|
131
|
+
print(response.analysis)
|
99
132
|
|
100
133
|
|
101
134
|
asyncio.run(main())
|
@@ -119,10 +152,14 @@ from hiddenlayer import HiddenLayer
|
|
119
152
|
|
120
153
|
client = HiddenLayer()
|
121
154
|
|
122
|
-
|
123
|
-
|
155
|
+
response = client.interactions.analyze(
|
156
|
+
metadata={
|
157
|
+
"model": "gpt-5",
|
158
|
+
"requester_id": "user-1234",
|
159
|
+
"provider": "openai",
|
160
|
+
},
|
124
161
|
)
|
125
|
-
print(
|
162
|
+
print(response.metadata)
|
126
163
|
```
|
127
164
|
|
128
165
|
## Handling errors
|
@@ -141,8 +178,19 @@ from hiddenlayer import HiddenLayer
|
|
141
178
|
client = HiddenLayer()
|
142
179
|
|
143
180
|
try:
|
144
|
-
client.
|
145
|
-
|
181
|
+
client.interactions.analyze(
|
182
|
+
metadata={
|
183
|
+
"model": "REPLACE_ME",
|
184
|
+
"requester_id": "REPLACE_ME",
|
185
|
+
},
|
186
|
+
input={
|
187
|
+
"messages": [
|
188
|
+
{
|
189
|
+
"role": "user",
|
190
|
+
"content": "REPLACE_ME",
|
191
|
+
}
|
192
|
+
]
|
193
|
+
},
|
146
194
|
)
|
147
195
|
except hiddenlayer.APIConnectionError as e:
|
148
196
|
print("The server could not be reached")
|
@@ -186,8 +234,19 @@ client = HiddenLayer(
|
|
186
234
|
)
|
187
235
|
|
188
236
|
# Or, configure per-request:
|
189
|
-
client.with_options(max_retries=5).
|
190
|
-
|
237
|
+
client.with_options(max_retries=5).interactions.analyze(
|
238
|
+
metadata={
|
239
|
+
"model": "REPLACE_ME",
|
240
|
+
"requester_id": "REPLACE_ME",
|
241
|
+
},
|
242
|
+
input={
|
243
|
+
"messages": [
|
244
|
+
{
|
245
|
+
"role": "user",
|
246
|
+
"content": "REPLACE_ME",
|
247
|
+
}
|
248
|
+
]
|
249
|
+
},
|
191
250
|
)
|
192
251
|
```
|
193
252
|
|
@@ -211,8 +270,19 @@ client = HiddenLayer(
|
|
211
270
|
)
|
212
271
|
|
213
272
|
# Override per-request:
|
214
|
-
client.with_options(timeout=5.0).
|
215
|
-
|
273
|
+
client.with_options(timeout=5.0).interactions.analyze(
|
274
|
+
metadata={
|
275
|
+
"model": "REPLACE_ME",
|
276
|
+
"requester_id": "REPLACE_ME",
|
277
|
+
},
|
278
|
+
input={
|
279
|
+
"messages": [
|
280
|
+
{
|
281
|
+
"role": "user",
|
282
|
+
"content": "REPLACE_ME",
|
283
|
+
}
|
284
|
+
]
|
285
|
+
},
|
216
286
|
)
|
217
287
|
```
|
218
288
|
|
@@ -254,13 +324,22 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
254
324
|
from hiddenlayer import HiddenLayer
|
255
325
|
|
256
326
|
client = HiddenLayer()
|
257
|
-
response = client.
|
258
|
-
|
327
|
+
response = client.interactions.with_raw_response.analyze(
|
328
|
+
metadata={
|
329
|
+
"model": "REPLACE_ME",
|
330
|
+
"requester_id": "REPLACE_ME",
|
331
|
+
},
|
332
|
+
input={
|
333
|
+
"messages": [{
|
334
|
+
"role": "user",
|
335
|
+
"content": "REPLACE_ME",
|
336
|
+
}]
|
337
|
+
},
|
259
338
|
)
|
260
339
|
print(response.headers.get('X-My-Header'))
|
261
340
|
|
262
|
-
|
263
|
-
print(
|
341
|
+
interaction = response.parse() # get the object that `interactions.analyze()` would have returned
|
342
|
+
print(interaction.analysis)
|
264
343
|
```
|
265
344
|
|
266
345
|
These methods return an [`APIResponse`](https://github.com/hiddenlayerai/hiddenlayer-sdk-python/tree/main/src/hiddenlayer/_response.py) object.
|
@@ -274,8 +353,19 @@ The above interface eagerly reads the full response body when you make the reque
|
|
274
353
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
275
354
|
|
276
355
|
```python
|
277
|
-
with client.
|
278
|
-
|
356
|
+
with client.interactions.with_streaming_response.analyze(
|
357
|
+
metadata={
|
358
|
+
"model": "REPLACE_ME",
|
359
|
+
"requester_id": "REPLACE_ME",
|
360
|
+
},
|
361
|
+
input={
|
362
|
+
"messages": [
|
363
|
+
{
|
364
|
+
"role": "user",
|
365
|
+
"content": "REPLACE_ME",
|
366
|
+
}
|
367
|
+
]
|
368
|
+
},
|
279
369
|
) as response:
|
280
370
|
print(response.headers.get("X-My-Header"))
|
281
371
|
|
@@ -742,20 +742,30 @@ class TestHiddenLayer:
|
|
742
742
|
@mock.patch("hiddenlayer._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
743
743
|
@pytest.mark.respx(base_url=base_url)
|
744
744
|
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: HiddenLayer) -> None:
|
745
|
-
respx_mock.post("/
|
745
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
746
746
|
|
747
747
|
with pytest.raises(APITimeoutError):
|
748
|
-
client.
|
748
|
+
client.interactions.with_streaming_response.analyze(
|
749
|
+
metadata={
|
750
|
+
"model": "gpt-5",
|
751
|
+
"requester_id": "user-1234",
|
752
|
+
}
|
753
|
+
).__enter__()
|
749
754
|
|
750
755
|
assert _get_open_connections(self.client) == 0
|
751
756
|
|
752
757
|
@mock.patch("hiddenlayer._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
753
758
|
@pytest.mark.respx(base_url=base_url)
|
754
759
|
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: HiddenLayer) -> None:
|
755
|
-
respx_mock.post("/
|
760
|
+
respx_mock.post("/detection/v1/interactions").mock(return_value=httpx.Response(500))
|
756
761
|
|
757
762
|
with pytest.raises(APIStatusError):
|
758
|
-
client.
|
763
|
+
client.interactions.with_streaming_response.analyze(
|
764
|
+
metadata={
|
765
|
+
"model": "gpt-5",
|
766
|
+
"requester_id": "user-1234",
|
767
|
+
}
|
768
|
+
).__enter__()
|
759
769
|
assert _get_open_connections(self.client) == 0
|
760
770
|
|
761
771
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -782,9 +792,14 @@ class TestHiddenLayer:
|
|
782
792
|
return httpx.Response(500)
|
783
793
|
return httpx.Response(200)
|
784
794
|
|
785
|
-
respx_mock.post("/
|
795
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
786
796
|
|
787
|
-
response = client.
|
797
|
+
response = client.interactions.with_raw_response.analyze(
|
798
|
+
metadata={
|
799
|
+
"model": "gpt-5",
|
800
|
+
"requester_id": "user-1234",
|
801
|
+
}
|
802
|
+
)
|
788
803
|
|
789
804
|
assert response.retries_taken == failures_before_success
|
790
805
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -806,10 +821,14 @@ class TestHiddenLayer:
|
|
806
821
|
return httpx.Response(500)
|
807
822
|
return httpx.Response(200)
|
808
823
|
|
809
|
-
respx_mock.post("/
|
824
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
810
825
|
|
811
|
-
response = client.
|
812
|
-
|
826
|
+
response = client.interactions.with_raw_response.analyze(
|
827
|
+
metadata={
|
828
|
+
"model": "gpt-5",
|
829
|
+
"requester_id": "user-1234",
|
830
|
+
},
|
831
|
+
extra_headers={"x-stainless-retry-count": Omit()},
|
813
832
|
)
|
814
833
|
|
815
834
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
@@ -831,10 +850,14 @@ class TestHiddenLayer:
|
|
831
850
|
return httpx.Response(500)
|
832
851
|
return httpx.Response(200)
|
833
852
|
|
834
|
-
respx_mock.post("/
|
853
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
835
854
|
|
836
|
-
response = client.
|
837
|
-
|
855
|
+
response = client.interactions.with_raw_response.analyze(
|
856
|
+
metadata={
|
857
|
+
"model": "gpt-5",
|
858
|
+
"requester_id": "user-1234",
|
859
|
+
},
|
860
|
+
extra_headers={"x-stainless-retry-count": "42"},
|
838
861
|
)
|
839
862
|
|
840
863
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
@@ -1581,10 +1604,15 @@ class TestAsyncHiddenLayer:
|
|
1581
1604
|
async def test_retrying_timeout_errors_doesnt_leak(
|
1582
1605
|
self, respx_mock: MockRouter, async_client: AsyncHiddenLayer
|
1583
1606
|
) -> None:
|
1584
|
-
respx_mock.post("/
|
1607
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
1585
1608
|
|
1586
1609
|
with pytest.raises(APITimeoutError):
|
1587
|
-
await async_client.
|
1610
|
+
await async_client.interactions.with_streaming_response.analyze(
|
1611
|
+
metadata={
|
1612
|
+
"model": "gpt-5",
|
1613
|
+
"requester_id": "user-1234",
|
1614
|
+
}
|
1615
|
+
).__aenter__()
|
1588
1616
|
|
1589
1617
|
assert _get_open_connections(self.client) == 0
|
1590
1618
|
|
@@ -1593,10 +1621,15 @@ class TestAsyncHiddenLayer:
|
|
1593
1621
|
async def test_retrying_status_errors_doesnt_leak(
|
1594
1622
|
self, respx_mock: MockRouter, async_client: AsyncHiddenLayer
|
1595
1623
|
) -> None:
|
1596
|
-
respx_mock.post("/
|
1624
|
+
respx_mock.post("/detection/v1/interactions").mock(return_value=httpx.Response(500))
|
1597
1625
|
|
1598
1626
|
with pytest.raises(APIStatusError):
|
1599
|
-
await async_client.
|
1627
|
+
await async_client.interactions.with_streaming_response.analyze(
|
1628
|
+
metadata={
|
1629
|
+
"model": "gpt-5",
|
1630
|
+
"requester_id": "user-1234",
|
1631
|
+
}
|
1632
|
+
).__aenter__()
|
1600
1633
|
assert _get_open_connections(self.client) == 0
|
1601
1634
|
|
1602
1635
|
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
@@ -1624,9 +1657,14 @@ class TestAsyncHiddenLayer:
|
|
1624
1657
|
return httpx.Response(500)
|
1625
1658
|
return httpx.Response(200)
|
1626
1659
|
|
1627
|
-
respx_mock.post("/
|
1660
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
1628
1661
|
|
1629
|
-
response = await client.
|
1662
|
+
response = await client.interactions.with_raw_response.analyze(
|
1663
|
+
metadata={
|
1664
|
+
"model": "gpt-5",
|
1665
|
+
"requester_id": "user-1234",
|
1666
|
+
}
|
1667
|
+
)
|
1630
1668
|
|
1631
1669
|
assert response.retries_taken == failures_before_success
|
1632
1670
|
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
@@ -1649,10 +1687,14 @@ class TestAsyncHiddenLayer:
|
|
1649
1687
|
return httpx.Response(500)
|
1650
1688
|
return httpx.Response(200)
|
1651
1689
|
|
1652
|
-
respx_mock.post("/
|
1690
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
1653
1691
|
|
1654
|
-
response = await client.
|
1655
|
-
|
1692
|
+
response = await client.interactions.with_raw_response.analyze(
|
1693
|
+
metadata={
|
1694
|
+
"model": "gpt-5",
|
1695
|
+
"requester_id": "user-1234",
|
1696
|
+
},
|
1697
|
+
extra_headers={"x-stainless-retry-count": Omit()},
|
1656
1698
|
)
|
1657
1699
|
|
1658
1700
|
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
@@ -1675,10 +1717,14 @@ class TestAsyncHiddenLayer:
|
|
1675
1717
|
return httpx.Response(500)
|
1676
1718
|
return httpx.Response(200)
|
1677
1719
|
|
1678
|
-
respx_mock.post("/
|
1720
|
+
respx_mock.post("/detection/v1/interactions").mock(side_effect=retry_handler)
|
1679
1721
|
|
1680
|
-
response = await client.
|
1681
|
-
|
1722
|
+
response = await client.interactions.with_raw_response.analyze(
|
1723
|
+
metadata={
|
1724
|
+
"model": "gpt-5",
|
1725
|
+
"requester_id": "user-1234",
|
1726
|
+
},
|
1727
|
+
extra_headers={"x-stainless-retry-count": "42"},
|
1682
1728
|
)
|
1683
1729
|
|
1684
1730
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/models/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/prompt_analyzer.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/__init__.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/file.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/resources/scans/upload/upload.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/interaction_analyze_params.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/model_retrieve_response.py
RENAMED
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/models/card_list_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/models/card_list_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_list_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_list_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_request_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/job_retrieve_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/result_sarif_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload_start_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/scans/upload_start_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_create_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_create_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_query_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_query_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_retrieve_response.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_update_params.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/src/hiddenlayer/types/sensor_update_response.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
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/upload/__init__.py
RENAMED
File without changes
|
{hiddenlayer_sdk-3.0.0 → hiddenlayer_sdk-3.0.1}/tests/api_resources/scans/upload/test_file.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
|