peak-sdk 1.15.0__py3-none-any.whl → 1.16.0__py3-none-any.whl
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.
- peak/__init__.py +1 -1
- peak/_version.py +1 -1
- peak/auth.py +1 -1
- peak/base_client.py +1 -1
- peak/callbacks.py +1 -1
- peak/cli/__init_.py +1 -1
- peak/cli/args.py +1 -1
- peak/cli/cli.py +1 -1
- peak/cli/helpers.py +1 -1
- peak/cli/metrics/__init__.py +1 -1
- peak/cli/metrics/metrics.py +1 -1
- peak/cli/press/__init__.py +1 -1
- peak/cli/press/apps/__init__.py +1 -1
- peak/cli/press/apps/deployments.py +1 -1
- peak/cli/press/blocks/__init__.py +1 -1
- peak/cli/press/blocks/deployments.py +1 -1
- peak/cli/press/specs.py +1 -1
- peak/cli/resources/__init__.py +1 -1
- peak/cli/resources/alerts/__init__.py +1 -1
- peak/cli/resources/alerts/emails.py +1 -1
- peak/cli/resources/artifacts.py +1 -1
- peak/cli/resources/images.py +1 -1
- peak/cli/resources/services.py +1 -1
- peak/cli/resources/tenants.py +1 -1
- peak/cli/resources/users.py +1 -1
- peak/cli/resources/webapps.py +1 -1
- peak/cli/resources/workflows.py +70 -5
- peak/cli/version.py +1 -1
- peak/compression.py +1 -1
- peak/config.py +1 -1
- peak/constants.py +1 -1
- peak/exceptions.py +1 -1
- peak/handler.py +1 -1
- peak/helpers.py +15 -1
- peak/logger.py +1 -1
- peak/metrics/__init__.py +1 -1
- peak/metrics/metrics.py +1 -1
- peak/output.py +1 -1
- peak/press/__init__.py +1 -1
- peak/press/specs.py +1 -1
- peak/resources/__init__.py +1 -1
- peak/resources/alerts.py +1 -1
- peak/resources/artifacts.py +1 -1
- peak/resources/images.py +1 -1
- peak/resources/services.py +1 -1
- peak/resources/tenants.py +1 -1
- peak/resources/users.py +1 -1
- peak/resources/webapps.py +1 -1
- peak/resources/workflows.py +103 -4
- peak/session.py +31 -11
- peak/telemetry.py +4 -3
- peak/template.py +1 -1
- peak/tools/__init__.py +1 -1
- peak/tools/logging/__init__.py +1 -1
- peak/tools/logging/log_handler.py +1 -1
- peak/tools/logging/log_level.py +1 -1
- peak/tools/logging/logger.py +1 -1
- peak/tools/logging/utils.py +1 -1
- peak/validators.py +1 -1
- {peak_sdk-1.15.0.dist-info → peak_sdk-1.16.0.dist-info}/METADATA +3 -3
- {peak_sdk-1.15.0.dist-info → peak_sdk-1.16.0.dist-info}/RECORD +64 -64
- {peak_sdk-1.15.0.dist-info → peak_sdk-1.16.0.dist-info}/LICENSE +0 -0
- {peak_sdk-1.15.0.dist-info → peak_sdk-1.16.0.dist-info}/WHEEL +0 -0
- {peak_sdk-1.15.0.dist-info → peak_sdk-1.16.0.dist-info}/entry_points.txt +0 -0
peak/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/_version.py
CHANGED
peak/auth.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/base_client.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/callbacks.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/__init_.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/args.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/cli.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/helpers.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/metrics/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/metrics/metrics.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/press/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/press/apps/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/press/specs.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/artifacts.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/images.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/services.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/tenants.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/users.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/webapps.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/cli/resources/workflows.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1035,6 +1035,71 @@ def describe(
|
|
1035
1035
|
writer.write(response)
|
1036
1036
|
|
1037
1037
|
|
1038
|
+
@app.command(short_help="Pause a scheduled workflow.")
|
1039
|
+
def pause(
|
1040
|
+
ctx: typer.Context,
|
1041
|
+
workflow_id: int = _WORKFLOW_ID,
|
1042
|
+
dry_run: Optional[bool] = DRY_RUN, # noqa: ARG001
|
1043
|
+
paging: Optional[bool] = PAGING, # noqa: ARG001
|
1044
|
+
output_type: Optional[OutputTypesNoTable] = OUTPUT_TYPES, # noqa: ARG001
|
1045
|
+
) -> None:
|
1046
|
+
"""***Pause*** a scheduled workflow.
|
1047
|
+
|
1048
|
+
\b
|
1049
|
+
📝 ***Example usage:***<br/>
|
1050
|
+
```bash
|
1051
|
+
peak workflows pause 9999
|
1052
|
+
```
|
1053
|
+
|
1054
|
+
\b
|
1055
|
+
🆗 ***Response:***
|
1056
|
+
```json
|
1057
|
+
{}
|
1058
|
+
```
|
1059
|
+
|
1060
|
+
🔗 [**API Documentation**](https://service.dev.peak.ai/workflows/api-docs/index.htm#/Workflows/post_api_v1_workflows__workflowId__pause)
|
1061
|
+
"""
|
1062
|
+
workflow_client: Workflow = ctx.obj["client"]
|
1063
|
+
writer: Writer = ctx.obj["writer"]
|
1064
|
+
|
1065
|
+
with writer.pager():
|
1066
|
+
response = workflow_client.pause_workflow(workflow_id=workflow_id)
|
1067
|
+
|
1068
|
+
writer.write(response)
|
1069
|
+
|
1070
|
+
|
1071
|
+
@app.command(short_help="Resume a paused workflow.")
|
1072
|
+
def resume(
|
1073
|
+
ctx: typer.Context,
|
1074
|
+
workflow_id: int = _WORKFLOW_ID,
|
1075
|
+
dry_run: Optional[bool] = DRY_RUN, # noqa: ARG001
|
1076
|
+
paging: Optional[bool] = PAGING, # noqa: ARG001
|
1077
|
+
output_type: Optional[OutputTypesNoTable] = OUTPUT_TYPES, # noqa: ARG001
|
1078
|
+
) -> None:
|
1079
|
+
"""***Resume*** a paused workflow.
|
1080
|
+
|
1081
|
+
\b
|
1082
|
+
📝 ***Example usage:***<br/>
|
1083
|
+
```bash
|
1084
|
+
peak workflows resume 9999
|
1085
|
+
```
|
1086
|
+
|
1087
|
+
\b
|
1088
|
+
🆗 ***Response:***
|
1089
|
+
```json
|
1090
|
+
{}
|
1091
|
+
```
|
1092
|
+
|
1093
|
+
🔗 [**API Documentation**](https://service.dev.peak.ai/workflows/api-docs/index.htm#/Workflows/post_api_v1_workflows__workflowId__resume)
|
1094
|
+
"""
|
1095
|
+
workflow_client: Workflow = ctx.obj["client"]
|
1096
|
+
writer: Writer = ctx.obj["writer"]
|
1097
|
+
|
1098
|
+
with writer.pager():
|
1099
|
+
response = workflow_client.resume_workflow(workflow_id=workflow_id)
|
1100
|
+
writer.write(response)
|
1101
|
+
|
1102
|
+
|
1038
1103
|
@app.command(short_help="Delete a workflow.")
|
1039
1104
|
def delete(
|
1040
1105
|
ctx: typer.Context,
|
@@ -1303,12 +1368,12 @@ def get_execution_logs(
|
|
1303
1368
|
"nextToken": "f/37846375578651780454915234936364900527730394239380553728/s"
|
1304
1369
|
}
|
1305
1370
|
```
|
1306
|
-
|
1307
|
-
🔗 [**API Documentation**](https://service.peak.ai/workflows/api-docs/index.htm#/Executions/get-workflow-step-logs)
|
1308
1371
|
"""
|
1309
1372
|
workflow_client: Workflow = ctx.obj["client"]
|
1310
1373
|
writer = Writer()
|
1311
1374
|
|
1375
|
+
is_spoke_tenant = workflow_client.session.is_spoke_tenant
|
1376
|
+
|
1312
1377
|
pager = writer.pager() # Create pager context
|
1313
1378
|
|
1314
1379
|
with pager:
|
@@ -1322,11 +1387,11 @@ def get_execution_logs(
|
|
1322
1387
|
file_name=file_name,
|
1323
1388
|
)
|
1324
1389
|
|
1325
|
-
if save or not response or "
|
1390
|
+
if save or not response or "logs" not in response:
|
1326
1391
|
break
|
1327
1392
|
|
1328
1393
|
if follow:
|
1329
|
-
if (response["stepRunStatus"] != "Running") and (
|
1394
|
+
if (is_spoke_tenant or response["stepRunStatus"] != "Running") and (
|
1330
1395
|
response["logs"] is None or len(response["logs"]) == 0
|
1331
1396
|
):
|
1332
1397
|
break
|
peak/cli/version.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/compression.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/config.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/constants.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/exceptions.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/handler.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/helpers.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -303,3 +303,17 @@ def search_action(current_path: str, current_dict: Dict[str, Any], action: str)
|
|
303
303
|
return {"has_permission": has_permission, "deeper_levels": False}
|
304
304
|
|
305
305
|
return {"has_permission": False, "deeper_levels": True}
|
306
|
+
|
307
|
+
|
308
|
+
def safe_json(response: requests.Response) -> Optional[Any]:
|
309
|
+
"""Safely attempts to decode JSON from the given response.
|
310
|
+
|
311
|
+
Returns the decoded JSON if available; otherwise, returns None.
|
312
|
+
"""
|
313
|
+
headers = getattr(response, "headers", {})
|
314
|
+
if headers.get("Content-Type", "").startswith("application/json"):
|
315
|
+
try:
|
316
|
+
return response.json()
|
317
|
+
except (ValueError, json.JSONDecodeError):
|
318
|
+
return None
|
319
|
+
return None
|
peak/logger.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/metrics/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/metrics/metrics.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/output.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/press/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/press/specs.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/alerts.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/artifacts.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/images.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/services.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/tenants.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/users.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/webapps.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/resources/workflows.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -24,6 +24,7 @@ from __future__ import annotations
|
|
24
24
|
|
25
25
|
from typing import Any, Dict, Iterator, List, Literal, Optional, overload
|
26
26
|
|
27
|
+
from peak import exceptions
|
27
28
|
from peak.base_client import BaseClient
|
28
29
|
from peak.constants import ContentType, HttpMethods
|
29
30
|
from peak.exceptions import InvalidParameterException
|
@@ -1367,6 +1368,66 @@ class Workflow(BaseClient):
|
|
1367
1368
|
|
1368
1369
|
return self.update_workflow(workflow_id=workflow_id, body=updated_body)
|
1369
1370
|
|
1371
|
+
def pause_workflow(
|
1372
|
+
self: Workflow,
|
1373
|
+
workflow_id: int,
|
1374
|
+
) -> Dict[None, None]:
|
1375
|
+
"""Pause a scheduled workflow.
|
1376
|
+
|
1377
|
+
REFERENCE:
|
1378
|
+
🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Workflows/post_api_v1_workflows__workflowId__pause>`__
|
1379
|
+
|
1380
|
+
Args:
|
1381
|
+
workflow_id (int): The ID of the workflow to pause.
|
1382
|
+
|
1383
|
+
Returns:
|
1384
|
+
dict: Empty dictionary object.
|
1385
|
+
|
1386
|
+
Raises:
|
1387
|
+
UnauthorizedException: The credentials are invalid.
|
1388
|
+
ForbiddenException: The user does not have permission to perform the operation.
|
1389
|
+
NotFoundException: The given workflow does not exist.
|
1390
|
+
ConflictException: If the workflow is in a conflicting state while pausing.
|
1391
|
+
InternalServerErrorException: The server failed to process the request.
|
1392
|
+
"""
|
1393
|
+
method, endpoint = HttpMethods.POST, f"{self.BASE_ENDPOINT}/workflows/{workflow_id}/pause"
|
1394
|
+
|
1395
|
+
return self.session.create_request( # type: ignore[no-any-return]
|
1396
|
+
endpoint,
|
1397
|
+
method,
|
1398
|
+
content_type=ContentType.APPLICATION_JSON,
|
1399
|
+
)
|
1400
|
+
|
1401
|
+
def resume_workflow(
|
1402
|
+
self: Workflow,
|
1403
|
+
workflow_id: int,
|
1404
|
+
) -> Dict[None, None]:
|
1405
|
+
"""Resume a paused workflow.
|
1406
|
+
|
1407
|
+
REFERENCE:
|
1408
|
+
🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Workflows/post_api_v1_workflows__workflowId__resume>`__
|
1409
|
+
|
1410
|
+
Args:
|
1411
|
+
workflow_id (int): The ID of the workflow to resume.
|
1412
|
+
|
1413
|
+
Returns:
|
1414
|
+
dict: Empty dictionary object.
|
1415
|
+
|
1416
|
+
Raises:
|
1417
|
+
UnauthorizedException: The credentials are invalid.
|
1418
|
+
ForbiddenException: The user does not have permission to perform the operation.
|
1419
|
+
NotFoundException: The given workflow does not exist.
|
1420
|
+
ConflictException: If the workflow is in a conflicting state while resuming.
|
1421
|
+
InternalServerErrorException: The server failed to process the request.
|
1422
|
+
"""
|
1423
|
+
method, endpoint = HttpMethods.POST, f"{self.BASE_ENDPOINT}/workflows/{workflow_id}/resume"
|
1424
|
+
|
1425
|
+
return self.session.create_request( # type: ignore[no-any-return]
|
1426
|
+
endpoint,
|
1427
|
+
method,
|
1428
|
+
content_type=ContentType.APPLICATION_JSON,
|
1429
|
+
)
|
1430
|
+
|
1370
1431
|
def delete_workflow(
|
1371
1432
|
self: Workflow,
|
1372
1433
|
workflow_id: int,
|
@@ -1611,9 +1672,6 @@ class Workflow(BaseClient):
|
|
1611
1672
|
) -> Dict[str, Any] | None:
|
1612
1673
|
"""Get workflow execution logs.
|
1613
1674
|
|
1614
|
-
REFERENCE:
|
1615
|
-
🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Executions/get-workflow-step-logs>`__
|
1616
|
-
|
1617
1675
|
Args:
|
1618
1676
|
workflow_id (int): ID of the workflow to fetch executions.
|
1619
1677
|
execution_id (str): ID of the execution to fetch logs.
|
@@ -1635,8 +1693,12 @@ class Workflow(BaseClient):
|
|
1635
1693
|
method = HttpMethods.GET
|
1636
1694
|
get_logs_endpoint = f"{self.BASE_ENDPOINT}/workflows/{workflow_id}/executions/{execution_id}/logs"
|
1637
1695
|
download_logs_endpoint = f"{get_logs_endpoint}/download"
|
1696
|
+
is_spoke_tenant = self.session.is_spoke_tenant
|
1638
1697
|
|
1639
1698
|
if save:
|
1699
|
+
if is_spoke_tenant:
|
1700
|
+
err = "Cannot save logs for this tenant"
|
1701
|
+
raise exceptions.BadRequestException(err)
|
1640
1702
|
response = self.session.create_request(
|
1641
1703
|
download_logs_endpoint,
|
1642
1704
|
method,
|
@@ -1651,6 +1713,43 @@ class Workflow(BaseClient):
|
|
1651
1713
|
download_logs_helper(response=response, file_name=updated_file_name)
|
1652
1714
|
return None
|
1653
1715
|
|
1716
|
+
if is_spoke_tenant:
|
1717
|
+
log_source = ""
|
1718
|
+
start_time = ""
|
1719
|
+
end_time = ""
|
1720
|
+
|
1721
|
+
spoke_domain = self.session.spoke_domain
|
1722
|
+
logs_endpoint_spoke = "spoke/api/v1/logs/workflow"
|
1723
|
+
logs_subdomain_spoke = f"service.{spoke_domain.split('.')[0]}"
|
1724
|
+
|
1725
|
+
execution_details = self.get_execution_details(workflow_id, execution_id)
|
1726
|
+
if execution_details:
|
1727
|
+
step_details: Optional[Dict[str, str]] = next(
|
1728
|
+
(step for step in execution_details["steps"] if step["name"] == step_name),
|
1729
|
+
None,
|
1730
|
+
)
|
1731
|
+
else:
|
1732
|
+
step_details = None
|
1733
|
+
if step_details is not None:
|
1734
|
+
log_source = step_details.get("nodeId", "")
|
1735
|
+
start_time = step_details.get("startedAt", "")
|
1736
|
+
end_time = step_details.get("finishedAt", "")
|
1737
|
+
|
1738
|
+
spoke_params: Dict[str, Any] = {
|
1739
|
+
"logSource": log_source,
|
1740
|
+
"startTime": start_time,
|
1741
|
+
"endTime": end_time,
|
1742
|
+
"nextToken": next_token,
|
1743
|
+
}
|
1744
|
+
|
1745
|
+
return self.session.create_request( # type: ignore[no-any-return]
|
1746
|
+
endpoint=logs_endpoint_spoke,
|
1747
|
+
method=method,
|
1748
|
+
content_type=ContentType.APPLICATION_JSON,
|
1749
|
+
params=spoke_params,
|
1750
|
+
subdomain=logs_subdomain_spoke,
|
1751
|
+
)
|
1752
|
+
|
1654
1753
|
params: Dict[str, Any] = {
|
1655
1754
|
"stepName": step_name,
|
1656
1755
|
"nextToken": next_token,
|
peak/session.py
CHANGED
@@ -22,6 +22,7 @@
|
|
22
22
|
|
23
23
|
from __future__ import annotations
|
24
24
|
|
25
|
+
import json
|
25
26
|
import os
|
26
27
|
from pathlib import Path
|
27
28
|
from typing import Any, Dict, Iterator, List, Optional
|
@@ -61,6 +62,8 @@ class Session:
|
|
61
62
|
stage: Stage
|
62
63
|
base_domain: str
|
63
64
|
handler: Handler
|
65
|
+
is_spoke_tenant: bool
|
66
|
+
spoke_domain: str
|
64
67
|
|
65
68
|
def __init__(
|
66
69
|
self,
|
@@ -79,6 +82,7 @@ class Session:
|
|
79
82
|
self._set_stage(stage)
|
80
83
|
self._set_base_domain()
|
81
84
|
self.handler = Handler()
|
85
|
+
self._set_spoke_domain()
|
82
86
|
|
83
87
|
def create_request(
|
84
88
|
self,
|
@@ -115,7 +119,7 @@ class Session:
|
|
115
119
|
headers: Dict[str, str] = {"Authorization": self.auth_token}
|
116
120
|
base_domain: str = get_base_domain(stage=self.stage.value, subdomain=subdomain)
|
117
121
|
url: str = f"{base_domain}/{endpoint}"
|
118
|
-
|
122
|
+
response = self.handler.make_request(
|
119
123
|
url,
|
120
124
|
method,
|
121
125
|
content_type=content_type,
|
@@ -124,11 +128,14 @@ class Session:
|
|
124
128
|
body=body or {},
|
125
129
|
path=path,
|
126
130
|
ignore_files=ignore_files,
|
127
|
-
session_meta={
|
128
|
-
"stage": self.stage,
|
129
|
-
},
|
131
|
+
session_meta={"stage": self.stage},
|
130
132
|
file_key=file_key,
|
131
|
-
)
|
133
|
+
)
|
134
|
+
|
135
|
+
try:
|
136
|
+
return response.json()
|
137
|
+
except (ValueError, json.JSONDecodeError):
|
138
|
+
return {}
|
132
139
|
|
133
140
|
def create_generator_request(
|
134
141
|
self,
|
@@ -255,12 +262,25 @@ class Session:
|
|
255
262
|
self.stage = Stage(stage)
|
256
263
|
return
|
257
264
|
|
258
|
-
logger.info("stage not given, searching for PEAK__STAGE in env variables")
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
265
|
+
logger.info("stage not given, searching for PEAK__STAGE or STAGE in env variables")
|
266
|
+
final_stage = os.environ.get("PEAK__STAGE", os.environ.get("STAGE", Stage.PROD))
|
267
|
+
self.stage = Stage(final_stage)
|
268
|
+
|
269
|
+
def _set_spoke_domain(self) -> None:
|
270
|
+
endpoint = "tenant-management/api/v1/external/tenants/tenant-metadata"
|
271
|
+
tenant_metadata: Dict[str, Any] = self.create_request(
|
272
|
+
endpoint,
|
273
|
+
method=HttpMethods.GET,
|
274
|
+
content_type=ContentType.APPLICATION_JSON,
|
275
|
+
)
|
276
|
+
|
277
|
+
if "spokeDetails" in tenant_metadata:
|
278
|
+
self.is_spoke_tenant = True
|
279
|
+
spoke_details: Dict[str, Any] = tenant_metadata["spokeDetails"]
|
280
|
+
self.spoke_domain = spoke_details.get("domain", "")
|
281
|
+
else:
|
282
|
+
self.is_spoke_tenant = False
|
283
|
+
self.spoke_domain = ""
|
264
284
|
|
265
285
|
|
266
286
|
__all__: List[str] = ["Session", "_get_default_session"]
|
peak/telemetry.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -19,6 +19,7 @@
|
|
19
19
|
# # along with this program. If not, see <https://apache.org/licenses/LICENSE-2.0>
|
20
20
|
#
|
21
21
|
"""Decorator for sending telemetry data for each request."""
|
22
|
+
|
22
23
|
from __future__ import annotations
|
23
24
|
|
24
25
|
import platform
|
@@ -33,7 +34,7 @@ import requests
|
|
33
34
|
import peak.config
|
34
35
|
from peak.constants import ContentType, HttpMethods, Stage
|
35
36
|
from peak.exceptions import BaseHttpException
|
36
|
-
from peak.helpers import get_base_domain
|
37
|
+
from peak.helpers import get_base_domain, safe_json
|
37
38
|
|
38
39
|
from ._version import __version__
|
39
40
|
|
@@ -140,7 +141,7 @@ def telemetry(make_request: F) -> F:
|
|
140
141
|
telemetry_url = get_telemetry_url(session_meta)
|
141
142
|
|
142
143
|
telemetry_body = {
|
143
|
-
"response": res
|
144
|
+
"response": safe_json(res) if method != HttpMethods.GET and res else None,
|
144
145
|
"error": str(error) if error else None,
|
145
146
|
"url": url,
|
146
147
|
"requestMethod": method.value,
|
peak/template.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/tools/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/tools/logging/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/tools/logging/log_level.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/tools/logging/logger.py
CHANGED
@@ -84,7 +84,7 @@ def peak_contexts_processor(
|
|
84
84
|
"press_deployment_id": os.getenv("PRESS_DEPLOYMENT_ID"),
|
85
85
|
"run_id": os.getenv("PEAK_RUN_ID"),
|
86
86
|
"exec_id": os.getenv("PEAK_EXEC_ID"),
|
87
|
-
"stage": os.getenv("PEAK__STAGE"),
|
87
|
+
"stage": os.getenv("PEAK__STAGE", os.getenv("STAGE")),
|
88
88
|
"tenant_name": os.getenv("TENANT_NAME", os.getenv("TENANT")),
|
89
89
|
"tenant_id": os.getenv("TENANT_ID"),
|
90
90
|
"api_name": os.getenv("PEAK_API_NAME"),
|
peak/tools/logging/utils.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
peak/validators.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# # Copyright ©
|
2
|
+
# # Copyright © 2025 Peak AI Limited. or its affiliates. All Rights Reserved.
|
3
3
|
# #
|
4
4
|
# # Licensed under the Apache License, Version 2.0 (the "License"). You
|
5
5
|
# # may not use this file except in compliance with the License. A copy of
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: peak-sdk
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.16.0
|
4
4
|
Summary: Python SDK for interacting with the Peak platform
|
5
5
|
Home-page: https://docs.peak.ai/sdk/latest/
|
6
6
|
License: Apache-2.0
|
@@ -106,7 +106,7 @@ Follow these steps to create a virtual environment using Python's built-in `venv
|
|
106
106
|
This should return a response of the following format
|
107
107
|
|
108
108
|
```bash
|
109
|
-
peak-cli==1.
|
109
|
+
peak-cli==1.16.0
|
110
110
|
Python==3.12.3
|
111
111
|
System==Darwin(23.6.0)
|
112
112
|
```
|
@@ -122,7 +122,7 @@ Follow these steps to create a virtual environment using Python's built-in `venv
|
|
122
122
|
This should print the version of the SDK
|
123
123
|
|
124
124
|
```
|
125
|
-
1.
|
125
|
+
1.16.0
|
126
126
|
```
|
127
127
|
|
128
128
|
### Using the SDK and CLI
|
@@ -1,61 +1,61 @@
|
|
1
|
-
peak/__init__.py,sha256=
|
1
|
+
peak/__init__.py,sha256=UaVwsRIPq0Wuti8j2x4ijGRVYywglfjvZGz6ALBA7Oo,1284
|
2
2
|
peak/_metadata.py,sha256=8w0pXN03pDvh1toM-divY6HNVF8znTqGGG2T9Q4hEl4,30672
|
3
|
-
peak/_version.py,sha256=
|
4
|
-
peak/auth.py,sha256=
|
5
|
-
peak/base_client.py,sha256=
|
6
|
-
peak/callbacks.py,sha256=
|
7
|
-
peak/cli/__init_.py,sha256=
|
8
|
-
peak/cli/args.py,sha256=
|
9
|
-
peak/cli/cli.py,sha256=
|
10
|
-
peak/cli/helpers.py,sha256=
|
11
|
-
peak/cli/metrics/__init__.py,sha256=
|
12
|
-
peak/cli/metrics/metrics.py,sha256=
|
13
|
-
peak/cli/press/__init__.py,sha256=
|
14
|
-
peak/cli/press/apps/__init__.py,sha256=
|
15
|
-
peak/cli/press/apps/deployments.py,sha256=
|
3
|
+
peak/_version.py,sha256=cu_TemElAApWGvsOxlze45A7vch42u3NldWSg0l0Qg4,887
|
4
|
+
peak/auth.py,sha256=A6nM9VGUdPJpFTFmb1zeeHjhKfBIsAyIMmnF9ajZkgs,904
|
5
|
+
peak/base_client.py,sha256=UO25ZViCQfKbBEDEfCdKS-eLXaVzb1aGnYDntBZ77ko,1808
|
6
|
+
peak/callbacks.py,sha256=WRVxSpg0Ur3uzG1aqxX4dQ5YV_Dr4GBrwYddppztcdM,3775
|
7
|
+
peak/cli/__init_.py,sha256=cpyVZFRLvtiZw6X0TEI6xF7bYdWSQL6YDjDmBHsLzO4,859
|
8
|
+
peak/cli/args.py,sha256=6vFvxburNhVZ3MOEhGsbXCb2IwURCf_nqcmnEUvsqzg,6166
|
9
|
+
peak/cli/cli.py,sha256=ybm87AO0JNTMiIPpaWZRXHwfV76oHOjhDFDlHPo3KI4,2531
|
10
|
+
peak/cli/helpers.py,sha256=Jon5yCgXUbRHJddi0Wj0mny3OIWpfaJxV4zW_jLuoFU,8629
|
11
|
+
peak/cli/metrics/__init__.py,sha256=O2Nxt8hTbW7E6IdFR5_cuL8WTiEk2Hf9QFNo29bpwfY,894
|
12
|
+
peak/cli/metrics/metrics.py,sha256=4ipBmGJS5AW4FLjOqA4s92XL7WUjfYoYnVA1G8GEvlA,26301
|
13
|
+
peak/cli/press/__init__.py,sha256=Uiir3EoPCWk_zoEk-RitATS20RxDLqiW8Iz5jybrDts,898
|
14
|
+
peak/cli/press/apps/__init__.py,sha256=Z_-egO6FtdFqAgy5KmUUY-F9ELaGcvJYd5yMbyHoCh4,1459
|
15
|
+
peak/cli/press/apps/deployments.py,sha256=iAPlFA4fDhPi_gO-VaXo5hwBkujy3MCrYwbR083Jjcg,18737
|
16
16
|
peak/cli/press/apps/specs.py,sha256=9veK_CGrOUTpNEMIn1j-xrkcW8giY4E9LuQLpBuH8DQ,19635
|
17
|
-
peak/cli/press/blocks/__init__.py,sha256=
|
18
|
-
peak/cli/press/blocks/deployments.py,sha256=
|
17
|
+
peak/cli/press/blocks/__init__.py,sha256=gv42qPm2SMBOZ4j3jVYs_02CWZsWaDzNUnGmcLpOKPc,1499
|
18
|
+
peak/cli/press/blocks/deployments.py,sha256=WnTogya42FVyRR_180ZQJ6KmlRUEJDyOL64kppimbdU,21953
|
19
19
|
peak/cli/press/blocks/specs.py,sha256=w-fuip1fgqa8NNPeSPl4MZMk-4SDJT6rhfBjxvPLlrM,63892
|
20
20
|
peak/cli/press/deployments.py,sha256=wdaxRHva59SdBB--gid19kekxTBv8qfnpI4UEXsIX1Q,8523
|
21
|
-
peak/cli/press/specs.py,sha256=
|
22
|
-
peak/cli/resources/__init__.py,sha256=
|
23
|
-
peak/cli/resources/alerts/__init__.py,sha256=
|
24
|
-
peak/cli/resources/alerts/emails.py,sha256=
|
25
|
-
peak/cli/resources/artifacts.py,sha256=
|
26
|
-
peak/cli/resources/images.py,sha256=
|
27
|
-
peak/cli/resources/services.py,sha256=
|
28
|
-
peak/cli/resources/tenants.py,sha256=
|
29
|
-
peak/cli/resources/users.py,sha256=
|
30
|
-
peak/cli/resources/webapps.py,sha256=
|
31
|
-
peak/cli/resources/workflows.py,sha256=
|
21
|
+
peak/cli/press/specs.py,sha256=fqbAVaO_yMYq73orefX7FU5M1BoTMFcPJexqmCZMzog,4737
|
22
|
+
peak/cli/resources/__init__.py,sha256=bAXS042xP_5_0f8jpRELYFrSg0xXNN6hjsoFhZ74Alg,883
|
23
|
+
peak/cli/resources/alerts/__init__.py,sha256=5Ol0XeSwnbQLycnCFr6XLog7B3nAYY4ohS5hC4Sy71g,1197
|
24
|
+
peak/cli/resources/alerts/emails.py,sha256=WrhEwy2uSdu7_ysjliOX3_Hb6b4ptIMYO5CW0djauPI,12435
|
25
|
+
peak/cli/resources/artifacts.py,sha256=Ik0NlvpRpQj9J_bU-yd5_ujWmU03ugC5q7Fy8Sx85ac,12619
|
26
|
+
peak/cli/resources/images.py,sha256=f4SFC34yBBkbzqw4i72RjuLapvczTUIeZHFPIbLW9Hw,43133
|
27
|
+
peak/cli/resources/services.py,sha256=ySgpv-7bUsJ4bhRiMU2zvlC5TX_3M-73zsvV84Ki0bw,25666
|
28
|
+
peak/cli/resources/tenants.py,sha256=5SkUoW8O_LGqTYVzWYO9m3HjoXWifcmS66LMf5TFjsQ,4066
|
29
|
+
peak/cli/resources/users.py,sha256=jqsXEG6sJSYgk0B2ejk7sB_Uox8Pi_dmlyAb1TwXogU,2635
|
30
|
+
peak/cli/resources/webapps.py,sha256=f04yCzu307QzMXD4J8OBDL0Ne3bPyYYTCG1A0eT5yQk,21140
|
31
|
+
peak/cli/resources/workflows.py,sha256=XPidRD1dm-b5_dyzh22t3WBNwHt-syIIbjVZEIEs91U,88110
|
32
32
|
peak/cli/ruff.toml,sha256=fpwsdsoY9ktmnOMvwONo13_myn0N5AcoDq8mMueCVDs,267
|
33
|
-
peak/cli/version.py,sha256=
|
34
|
-
peak/compression.py,sha256=
|
35
|
-
peak/config.py,sha256=
|
36
|
-
peak/constants.py,sha256=
|
37
|
-
peak/exceptions.py,sha256=
|
38
|
-
peak/handler.py,sha256=
|
39
|
-
peak/helpers.py,sha256=
|
40
|
-
peak/logger.py,sha256=
|
41
|
-
peak/metrics/__init__.py,sha256=
|
42
|
-
peak/metrics/metrics.py,sha256=
|
43
|
-
peak/output.py,sha256=
|
44
|
-
peak/press/__init__.py,sha256
|
33
|
+
peak/cli/version.py,sha256=KAwV5M6CQw-pozqSH5JsqSkdEg9vGT27jOyz_iMMIXE,1654
|
34
|
+
peak/compression.py,sha256=kDS4Nf-4Faq1pe25ZMpQQNUYyK_CcQQQGRnEos8TfI0,7894
|
35
|
+
peak/config.py,sha256=zx6DAh1NuC1xilor8uOxqiv0cUWjYy-7hl95wr4RdR8,1146
|
36
|
+
peak/constants.py,sha256=S9Pb6c_PB53NW6qjS-D5EaU-DmUrYCzOE8oEoJzRG_k,3312
|
37
|
+
peak/exceptions.py,sha256=uIV9ZcBmPPjd3r0FQYG04wfYT1zhx3wHcVbZ7hvWbjY,7491
|
38
|
+
peak/handler.py,sha256=u5ti9ed_nj1Vgi9dUcO9yFxIZNH8i5OL63p3jRV18aU,17229
|
39
|
+
peak/helpers.py,sha256=eWDObQg_Dm8yUcgKr40f1Ghy5qPe5AyyoZlTKPneXj8,10339
|
40
|
+
peak/logger.py,sha256=9f5F5yskpMWifnKaHLsQuKAGdaBZ4aDWWaygvTjjU34,1548
|
41
|
+
peak/metrics/__init__.py,sha256=nW_9D_UHYo52OZ-aKYW0S-t8bouj-W9D9olPmYJYVi4,1057
|
42
|
+
peak/metrics/metrics.py,sha256=jtBkeuwAiTgiT2Q_3qh2gKhOM25QUjv2W74Vx8pUPcI,24533
|
43
|
+
peak/output.py,sha256=opIOxagBEXEe-V2Gtx96DuvZ4mdUwjkKt3P5dDY_VME,6971
|
44
|
+
peak/press/__init__.py,sha256=-Okc8-phtD8IGOP1YES3fKA7kRXla1mTLBk0uWVAObo,1112
|
45
45
|
peak/press/apps.py,sha256=Rh_EDQDuLyuM3FwFxz7riuq1i7lhU4uRclzp65KFPfE,50711
|
46
46
|
peak/press/blocks.py,sha256=9XLt2iiQBFa3ON9BddVZ1vp-kRNjij2JOfn069SAO-g,97610
|
47
47
|
peak/press/deployments.py,sha256=ZUcuUMygIEswGXleZAF8wkjzSXSl21jGERvIXJ__dcw,10969
|
48
|
-
peak/press/specs.py,sha256=
|
48
|
+
peak/press/specs.py,sha256=SiSQcXXlPXQQ38AuUqfUmAW8tkuOXlSjwsWDrhNwSmQ,10915
|
49
49
|
peak/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
-
peak/resources/__init__.py,sha256=
|
51
|
-
peak/resources/alerts.py,sha256=
|
52
|
-
peak/resources/artifacts.py,sha256=
|
53
|
-
peak/resources/images.py,sha256=
|
54
|
-
peak/resources/services.py,sha256=
|
55
|
-
peak/resources/tenants.py,sha256=
|
56
|
-
peak/resources/users.py,sha256=
|
57
|
-
peak/resources/webapps.py,sha256=
|
58
|
-
peak/resources/workflows.py,sha256=
|
50
|
+
peak/resources/__init__.py,sha256=kOtOXynboPCK844y65BrDQztjoncCr_f-JBuxNXUh1I,1242
|
51
|
+
peak/resources/alerts.py,sha256=1H6n_7lsR5rNI6FUfni8ye7KCPPArcm0fTpQOYLB6lg,12792
|
52
|
+
peak/resources/artifacts.py,sha256=gKlt9bzb1xkN7meM2r5p7AcWepgFFgxFyP1tvpq57qE,15648
|
53
|
+
peak/resources/images.py,sha256=dgYOlPhwOjbiBIz0xum3PfCT9RAP4GVGxBvr8ItiJEY,46715
|
54
|
+
peak/resources/services.py,sha256=MHV4Mxm0GHf5UpQUrnwFBmC9T5qHMI4j7PuD271gV0I,17176
|
55
|
+
peak/resources/tenants.py,sha256=_rNLWQxCJeaT0mA8_fipYRjSeZ9PIlTD1u_5STbcN-c,4380
|
56
|
+
peak/resources/users.py,sha256=b2TTDvWVmfSxdkQrjaSjZya7coe-5LO_X3BqiAd67lU,3428
|
57
|
+
peak/resources/webapps.py,sha256=dmMmm78dSR4nzI3YenwcaPRUKe15Wp6D5BwzZ3fNokw,13719
|
58
|
+
peak/resources/workflows.py,sha256=bua9jd_i2foawq9MDb7BsXqPEOi9lfl3R3vCwZZ3qrY,80131
|
59
59
|
peak/sample_yaml/metrics/create_collection.yaml,sha256=Vai6OWLPp1_ZhDWwN4ziMIFsJRmoqLZIIqC2sMgBSWw,148
|
60
60
|
peak/sample_yaml/metrics/publish.yaml,sha256=yeeRkhED5bawJmcT4Im19Y8e5IWDyQAmXFQ-2SQTNko,65
|
61
61
|
peak/sample_yaml/metrics/query.yaml,sha256=0RKgPjVvDxEHZcB9yj9sKan1vOiIw5_utRn682eYdag,463
|
@@ -112,18 +112,18 @@ peak/sample_yaml/resources/workflows/workflow_input_parameters.yaml,sha256=kM52m
|
|
112
112
|
peak/sample_yaml/resources/workflows/workflow_input_parameters_inherit.yaml,sha256=6sA-CsVB0xS31G_2YE9W4vtZvupA9zDO97UCJKJlJiQ,1426
|
113
113
|
peak/sample_yaml/resources/workflows/workflow_output_parameters.yaml,sha256=S9twG4lSB2HAt4ZL6zy5beKD-XY1Jik4asyHy4DG5Cs,913
|
114
114
|
peak/sample_yaml/resources/workflows/workflow_skippable_steps.yaml,sha256=Ei1wGqJC-LqDPpQfqh_CmMmJ_DI5kQfuGTK4koQsiVk,1418
|
115
|
-
peak/session.py,sha256=
|
116
|
-
peak/telemetry.py,sha256=
|
117
|
-
peak/template.py,sha256=
|
118
|
-
peak/tools/__init__.py,sha256=
|
119
|
-
peak/tools/logging/__init__.py,sha256=
|
120
|
-
peak/tools/logging/log_handler.py,sha256=
|
121
|
-
peak/tools/logging/log_level.py,sha256=
|
122
|
-
peak/tools/logging/logger.py,sha256=
|
123
|
-
peak/tools/logging/utils.py,sha256=
|
124
|
-
peak/validators.py,sha256=
|
125
|
-
peak_sdk-1.
|
126
|
-
peak_sdk-1.
|
127
|
-
peak_sdk-1.
|
128
|
-
peak_sdk-1.
|
129
|
-
peak_sdk-1.
|
115
|
+
peak/session.py,sha256=MGmxHvXM4NAsvMZGFLSWhIIp-OrSdviTJpavUP6ysKI,11071
|
116
|
+
peak/telemetry.py,sha256=Hp8vGVE51in1PNghIlzu_w9osFdytNK9_AlOvgrALw8,7279
|
117
|
+
peak/template.py,sha256=dKH3rSmC0yGvDQdGfI3Adn-RAAIK-xXqZLkZC1UPO-w,10839
|
118
|
+
peak/tools/__init__.py,sha256=Gi4ItzHzE1Y__5ZWmjii7w2QTQofZiOPmP6pWvhLh14,1048
|
119
|
+
peak/tools/logging/__init__.py,sha256=DqaklhDtjwPPufuqOC-7Yyqiyy3KoB6bFgf9-k7dOSc,1513
|
120
|
+
peak/tools/logging/log_handler.py,sha256=6mFcdRbV8fwK3IJXNbSwO5kXKwm2rFqjCzfpXYaXYIg,1406
|
121
|
+
peak/tools/logging/log_level.py,sha256=FVe94CEtow3nfHhNr5oQk0gEt2_5mpfaiV-xTfagXIQ,2665
|
122
|
+
peak/tools/logging/logger.py,sha256=5wvQwgwWrHllOmEl_O6q5Obv1-Eb2cW1deXtR8h_IqQ,15679
|
123
|
+
peak/tools/logging/utils.py,sha256=XRQ0nw_lmV_iiRel-o83EE84UTjvrzLTt4H7BHlPbLg,3330
|
124
|
+
peak/validators.py,sha256=mY17UDGKJ879wY3EApqrGVs3hJvRkPhgwftvmvnKAdI,2715
|
125
|
+
peak_sdk-1.16.0.dist-info/LICENSE,sha256=W0jszenKx7YdFA7BDnyg8xDKXzCP8AperJb_PHh9paQ,11340
|
126
|
+
peak_sdk-1.16.0.dist-info/METADATA,sha256=Y54g-0wu9d8EKUvCEhOtcLRIwbHo3NaPabxoxYX5zCA,7935
|
127
|
+
peak_sdk-1.16.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
128
|
+
peak_sdk-1.16.0.dist-info/entry_points.txt,sha256=zHCEjuOTjkfmqivgEZQsPGm4zFA4W3Q_vKCjPr7W6lE,47
|
129
|
+
peak_sdk-1.16.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|