peak-sdk 1.6.0__py3-none-any.whl → 1.8.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/_metadata.py +78 -58
- peak/_version.py +1 -1
- peak/callbacks.py +22 -2
- peak/cli/args.py +19 -0
- peak/cli/helpers.py +12 -8
- peak/cli/press/apps/deployments.py +72 -18
- peak/cli/press/apps/specs.py +29 -11
- peak/cli/press/blocks/deployments.py +71 -18
- peak/cli/press/blocks/specs.py +95 -35
- peak/cli/press/deployments.py +40 -1
- peak/cli/press/specs.py +2 -2
- peak/cli/resources/alerts/emails.py +4 -5
- peak/cli/resources/artifacts.py +9 -9
- peak/cli/resources/images.py +29 -18
- peak/cli/resources/services.py +6 -7
- peak/cli/resources/tenants.py +4 -2
- peak/cli/resources/users.py +3 -3
- peak/cli/resources/webapps.py +6 -6
- peak/cli/resources/workflows.py +24 -25
- peak/compression.py +28 -13
- peak/exceptions.py +15 -1
- peak/handler.py +5 -1
- peak/helpers.py +38 -0
- peak/output.py +13 -6
- peak/press/apps.py +43 -3
- peak/press/blocks.py +450 -138
- peak/press/deployments.py +25 -0
- peak/resources/images.py +309 -86
- peak/sample_yaml/press/apps/specs/create_app_spec.yaml +2 -0
- peak/sample_yaml/press/apps/specs/create_app_spec_release.yaml +2 -0
- peak/sample_yaml/press/blocks/specs/service/api/create_block_spec.yaml +102 -0
- peak/sample_yaml/press/blocks/specs/service/api/create_block_spec_release.yaml +88 -0
- peak/sample_yaml/press/blocks/specs/service/webapp/create_block_spec.yaml +103 -0
- peak/sample_yaml/press/blocks/specs/service/webapp/create_block_spec_release.yaml +89 -0
- peak/sample_yaml/press/blocks/specs/{create_block_spec.yaml → workflow/create_block_spec.yaml} +20 -1
- peak/sample_yaml/press/blocks/specs/{create_block_spec_release.yaml → workflow/create_block_spec_release.yaml} +20 -1
- peak/sample_yaml/resources/images/dockerfile/create_image.yaml +3 -0
- peak/sample_yaml/resources/images/dockerfile/create_image_version.yaml +3 -0
- peak/sample_yaml/resources/images/dockerfile/update_version.yaml +3 -0
- peak/sample_yaml/resources/images/github/create_image.yaml +3 -0
- peak/sample_yaml/resources/images/github/create_image_version.yaml +3 -0
- peak/sample_yaml/resources/images/github/update_version.yaml +3 -0
- peak/sample_yaml/resources/images/upload/create_image.yaml +3 -0
- peak/sample_yaml/resources/images/upload/create_image_version.yaml +3 -0
- peak/sample_yaml/resources/images/upload/create_or_update_image.yaml +3 -0
- peak/sample_yaml/resources/images/upload/update_version.yaml +3 -0
- peak/sample_yaml/resources/workflows/create_or_update_workflow.yaml +9 -1
- peak/sample_yaml/resources/workflows/create_workflow.yaml +9 -1
- peak/sample_yaml/resources/workflows/patch_workflow.yaml +9 -1
- peak/sample_yaml/resources/workflows/update_workflow.yaml +9 -1
- peak/session.py +1 -1
- peak/template.py +21 -2
- {peak_sdk-1.6.0.dist-info → peak_sdk-1.8.0.dist-info}/METADATA +18 -18
- {peak_sdk-1.6.0.dist-info → peak_sdk-1.8.0.dist-info}/RECORD +57 -53
- {peak_sdk-1.6.0.dist-info → peak_sdk-1.8.0.dist-info}/LICENSE +0 -0
- {peak_sdk-1.6.0.dist-info → peak_sdk-1.8.0.dist-info}/WHEEL +0 -0
- {peak_sdk-1.6.0.dist-info → peak_sdk-1.8.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,88 @@
|
|
1
|
+
# block_spec_release.yaml
|
2
|
+
|
3
|
+
body:
|
4
|
+
release:
|
5
|
+
version: 2.0.0
|
6
|
+
notes: This is a new release
|
7
|
+
config:
|
8
|
+
serviceType: api
|
9
|
+
image:
|
10
|
+
dockerfile: Dockerfile
|
11
|
+
context: "."
|
12
|
+
version: 0.0.1
|
13
|
+
parameters:
|
14
|
+
env:
|
15
|
+
param1: value1
|
16
|
+
param2: value2
|
17
|
+
secrets:
|
18
|
+
- secret1
|
19
|
+
- secret2
|
20
|
+
resources:
|
21
|
+
instanceTypeId: "@param:instance_type_id"
|
22
|
+
healthCheckURL: "@param:health_check_url"
|
23
|
+
entrypoint: |
|
24
|
+
python
|
25
|
+
app.py
|
26
|
+
minInstances: 1
|
27
|
+
parameters:
|
28
|
+
build:
|
29
|
+
- defaultValue: /health
|
30
|
+
description: Enter the health check URL
|
31
|
+
name: health_check_url
|
32
|
+
required: true
|
33
|
+
title: Health Check URL
|
34
|
+
type: string
|
35
|
+
hideValue: false
|
36
|
+
- defaultValue: 20
|
37
|
+
description: Select an instance type
|
38
|
+
name: instance_type_id
|
39
|
+
options:
|
40
|
+
- title: Pico (0.125CPU, 0.125GB RAM)
|
41
|
+
value: 20
|
42
|
+
- title: Nano (0.25CPU, 0.5GB RAM)
|
43
|
+
value: 21
|
44
|
+
- title: Micro (0.5CPU, 1GB RAM)
|
45
|
+
value: 22
|
46
|
+
required: true
|
47
|
+
title: Instance Type ID
|
48
|
+
type: number
|
49
|
+
run:
|
50
|
+
- defaultValue: AVG
|
51
|
+
description: Select an aggregation function (e.g., AVG, SUM, COUNT)
|
52
|
+
name: agg_type
|
53
|
+
required: false
|
54
|
+
title: Agg Type
|
55
|
+
type: string
|
56
|
+
hideValue: true
|
57
|
+
- defaultValue: false
|
58
|
+
description: Enable email notifications
|
59
|
+
name: email_notifications
|
60
|
+
required: false
|
61
|
+
title: Email Notifications
|
62
|
+
type: boolean
|
63
|
+
- defaultValue: 10
|
64
|
+
description: Select the number of iterations
|
65
|
+
name: num_iterations
|
66
|
+
options:
|
67
|
+
- title: Low
|
68
|
+
value: 10
|
69
|
+
- title: Medium
|
70
|
+
value: 50
|
71
|
+
- title: High
|
72
|
+
value: 100
|
73
|
+
required: false
|
74
|
+
title: Number of Iterations
|
75
|
+
type: number
|
76
|
+
- defaultValue:
|
77
|
+
- input.csv
|
78
|
+
- output.csv
|
79
|
+
description: Specify input and output file names
|
80
|
+
name: file_names
|
81
|
+
required: true
|
82
|
+
title: File Names
|
83
|
+
type: string_array
|
84
|
+
artifact:
|
85
|
+
path: "."
|
86
|
+
ignore_files:
|
87
|
+
- ".gitignore"
|
88
|
+
- ".dockerignore"
|
@@ -0,0 +1,103 @@
|
|
1
|
+
body:
|
2
|
+
version: 1
|
3
|
+
kind: service
|
4
|
+
metadata:
|
5
|
+
name: webapp-service-block
|
6
|
+
title: Web App Service Block
|
7
|
+
summary: Web App Service Block
|
8
|
+
description: Creating a new service block spec of type web-app.
|
9
|
+
descriptionContentType: text/markdown
|
10
|
+
imageUrl: https://my-block-pics.com/image-0.jpg
|
11
|
+
tags:
|
12
|
+
- name: CLI
|
13
|
+
release:
|
14
|
+
version: 1.0.0
|
15
|
+
notes: This is the original release
|
16
|
+
config:
|
17
|
+
serviceType: web-app
|
18
|
+
image:
|
19
|
+
dockerfile: Dockerfile
|
20
|
+
context: "."
|
21
|
+
version: 0.0.1
|
22
|
+
parameters:
|
23
|
+
env:
|
24
|
+
param1: value1
|
25
|
+
param2: value2
|
26
|
+
secrets:
|
27
|
+
- secret1
|
28
|
+
- secret2
|
29
|
+
resources:
|
30
|
+
instanceTypeId: "@param:instance_type_id"
|
31
|
+
healthCheckURL: "@param:health_check_url"
|
32
|
+
sessionStickiness: false
|
33
|
+
entrypoint: |
|
34
|
+
python
|
35
|
+
app.py
|
36
|
+
minInstances: 1
|
37
|
+
parameters:
|
38
|
+
build:
|
39
|
+
- defaultValue: /health
|
40
|
+
description: Enter the health check URL
|
41
|
+
name: health_check_url
|
42
|
+
required: true
|
43
|
+
title: Health Check URL
|
44
|
+
type: string
|
45
|
+
hideValue: false
|
46
|
+
- defaultValue: 43
|
47
|
+
description: Select an instance type
|
48
|
+
name: instance_type_id
|
49
|
+
options:
|
50
|
+
- title: Pico (0.25CPU, 0.5GB RAM)
|
51
|
+
value: 43
|
52
|
+
- title: Nano (0.25CPU, 1GB RAM)
|
53
|
+
value: 44
|
54
|
+
- title: Micro (0.5CPU, 1GB RAM)
|
55
|
+
value: 45
|
56
|
+
required: true
|
57
|
+
title: Instance Type ID
|
58
|
+
type: number
|
59
|
+
run:
|
60
|
+
- defaultValue: AVG
|
61
|
+
description: Select an aggregation function (e.g., AVG, SUM, COUNT)
|
62
|
+
name: agg_type
|
63
|
+
required: false
|
64
|
+
title: Agg Type
|
65
|
+
type: string
|
66
|
+
hideValue: true
|
67
|
+
- defaultValue: false
|
68
|
+
description: Enable email notifications
|
69
|
+
name: email_notifications
|
70
|
+
required: false
|
71
|
+
title: Email Notifications
|
72
|
+
type: boolean
|
73
|
+
- defaultValue: 10
|
74
|
+
description: Select the number of iterations
|
75
|
+
name: num_iterations
|
76
|
+
options:
|
77
|
+
- title: Low
|
78
|
+
value: 10
|
79
|
+
- title: Medium
|
80
|
+
value: 50
|
81
|
+
- title: High
|
82
|
+
value: 100
|
83
|
+
required: false
|
84
|
+
title: Number of Iterations
|
85
|
+
type: number
|
86
|
+
- defaultValue:
|
87
|
+
- input.csv
|
88
|
+
- output.csv
|
89
|
+
description: Specify input and output file names
|
90
|
+
name: file_names
|
91
|
+
required: true
|
92
|
+
title: File Names
|
93
|
+
type: string_array
|
94
|
+
artifact:
|
95
|
+
path: "."
|
96
|
+
ignore_files:
|
97
|
+
- ".gitignore"
|
98
|
+
- ".dockerignore"
|
99
|
+
featured: true
|
100
|
+
scope: shared
|
101
|
+
tenants:
|
102
|
+
- tenant1
|
103
|
+
- tenant2
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# block_spec_release.yaml
|
2
|
+
|
3
|
+
body:
|
4
|
+
release:
|
5
|
+
version: 2.0.0
|
6
|
+
notes: This is a new release
|
7
|
+
config:
|
8
|
+
serviceType: web-app
|
9
|
+
image:
|
10
|
+
dockerfile: Dockerfile
|
11
|
+
context: "."
|
12
|
+
version: 0.0.1
|
13
|
+
parameters:
|
14
|
+
env:
|
15
|
+
param1: value1
|
16
|
+
param2: value2
|
17
|
+
secrets:
|
18
|
+
- secret1
|
19
|
+
- secret2
|
20
|
+
resources:
|
21
|
+
instanceTypeId: "@param:instance_type_id"
|
22
|
+
healthCheckURL: "@param:health_check_url"
|
23
|
+
sessionStickiness: false
|
24
|
+
entrypoint: |
|
25
|
+
python
|
26
|
+
app.py
|
27
|
+
minInstances: 1
|
28
|
+
parameters:
|
29
|
+
build:
|
30
|
+
- defaultValue: /health
|
31
|
+
description: Enter the health check URL
|
32
|
+
name: health_check_url
|
33
|
+
required: true
|
34
|
+
title: Health Check URL
|
35
|
+
type: string
|
36
|
+
hideValue: false
|
37
|
+
- defaultValue: 43
|
38
|
+
description: Select an instance type
|
39
|
+
name: instance_type_id
|
40
|
+
options:
|
41
|
+
- title: Pico (0.25CPU, 0.5GB RAM)
|
42
|
+
value: 43
|
43
|
+
- title: Nano (0.25CPU, 1GB RAM)
|
44
|
+
value: 44
|
45
|
+
- title: Micro (0.5CPU, 1GB RAM)
|
46
|
+
value: 45
|
47
|
+
required: true
|
48
|
+
title: Instance Type ID
|
49
|
+
type: number
|
50
|
+
run:
|
51
|
+
- defaultValue: AVG
|
52
|
+
description: Select an aggregation function (e.g., AVG, SUM, COUNT)
|
53
|
+
name: agg_type
|
54
|
+
required: false
|
55
|
+
title: Agg Type
|
56
|
+
type: string
|
57
|
+
hideValue: true
|
58
|
+
- defaultValue: false
|
59
|
+
description: Enable email notifications
|
60
|
+
name: email_notifications
|
61
|
+
required: false
|
62
|
+
title: Email Notifications
|
63
|
+
type: boolean
|
64
|
+
- defaultValue: 10
|
65
|
+
description: Select the number of iterations
|
66
|
+
name: num_iterations
|
67
|
+
options:
|
68
|
+
- title: Low
|
69
|
+
value: 10
|
70
|
+
- title: Medium
|
71
|
+
value: 50
|
72
|
+
- title: High
|
73
|
+
value: 100
|
74
|
+
required: false
|
75
|
+
title: Number of Iterations
|
76
|
+
type: number
|
77
|
+
- defaultValue:
|
78
|
+
- input.csv
|
79
|
+
- output.csv
|
80
|
+
description: Specify input and output file names
|
81
|
+
name: file_names
|
82
|
+
required: true
|
83
|
+
title: File Names
|
84
|
+
type: string_array
|
85
|
+
artifact:
|
86
|
+
path: "."
|
87
|
+
ignore_files:
|
88
|
+
- ".gitignore"
|
89
|
+
- ".dockerignore"
|
peak/sample_yaml/press/blocks/specs/{create_block_spec.yaml → workflow/create_block_spec.yaml}
RENAMED
@@ -38,7 +38,25 @@ body:
|
|
38
38
|
- webhook:
|
39
39
|
name: info
|
40
40
|
url: https://abc.com/post
|
41
|
-
payload:
|
41
|
+
payload: |
|
42
|
+
{
|
43
|
+
"system": "external_system",
|
44
|
+
"action": "update",
|
45
|
+
"data": {
|
46
|
+
"field": "value",
|
47
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
48
|
+
}
|
49
|
+
}
|
50
|
+
events:
|
51
|
+
success: false
|
52
|
+
fail: true
|
53
|
+
runtimeExceeded: "@param:runtime_exceeded"
|
54
|
+
- email:
|
55
|
+
name: "email-watcher-1"
|
56
|
+
recipients:
|
57
|
+
to:
|
58
|
+
- "user1@peak.ai"
|
59
|
+
- "user2@peak.ai"
|
42
60
|
events:
|
43
61
|
success: false
|
44
62
|
fail: true
|
@@ -112,6 +130,7 @@ artifact:
|
|
112
130
|
- ".gitignore"
|
113
131
|
- ".dockerignore"
|
114
132
|
featured: true
|
133
|
+
autoRunOnDeploy: true
|
115
134
|
scope: shared
|
116
135
|
tenants:
|
117
136
|
- tenant1
|
@@ -27,7 +27,25 @@ body:
|
|
27
27
|
- webhook:
|
28
28
|
name: info
|
29
29
|
url: https://abc.com/post
|
30
|
-
payload:
|
30
|
+
payload: |
|
31
|
+
{
|
32
|
+
"system": "external_system",
|
33
|
+
"action": "update",
|
34
|
+
"data": {
|
35
|
+
"field": "value",
|
36
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
37
|
+
}
|
38
|
+
}
|
39
|
+
events:
|
40
|
+
success: false
|
41
|
+
fail: true
|
42
|
+
runtimeExceeded: "@param:runtime_exceeded"
|
43
|
+
- email:
|
44
|
+
name: "email-watcher-1"
|
45
|
+
recipients:
|
46
|
+
to:
|
47
|
+
- "user1@peak.ai"
|
48
|
+
- "user2@peak.ai"
|
31
49
|
events:
|
32
50
|
success: false
|
33
51
|
fail: true
|
@@ -100,3 +118,4 @@ artifact:
|
|
100
118
|
ignore_files:
|
101
119
|
- ".gitignore"
|
102
120
|
- ".dockerignore"
|
121
|
+
autoRunOnDeploy: true
|
@@ -12,7 +12,15 @@ body:
|
|
12
12
|
- webhook:
|
13
13
|
name: info
|
14
14
|
url: "https://abc.com/post"
|
15
|
-
payload:
|
15
|
+
payload: |
|
16
|
+
{
|
17
|
+
"system": "external_system",
|
18
|
+
"action": "update",
|
19
|
+
"data": {
|
20
|
+
"field": "value",
|
21
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
22
|
+
}
|
23
|
+
}
|
16
24
|
events:
|
17
25
|
success: false
|
18
26
|
fail: true
|
@@ -12,7 +12,15 @@ body:
|
|
12
12
|
- webhook:
|
13
13
|
name: info
|
14
14
|
url: "https://abc.com/post"
|
15
|
-
payload:
|
15
|
+
payload: |
|
16
|
+
{
|
17
|
+
"system": "external_system",
|
18
|
+
"action": "update",
|
19
|
+
"data": {
|
20
|
+
"field": "value",
|
21
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
22
|
+
}
|
23
|
+
}
|
16
24
|
events:
|
17
25
|
success: false
|
18
26
|
fail: true
|
@@ -12,7 +12,15 @@ body:
|
|
12
12
|
- webhook:
|
13
13
|
name: info
|
14
14
|
url: "https://abc.com/post"
|
15
|
-
payload:
|
15
|
+
payload: |
|
16
|
+
{
|
17
|
+
"system": "external_system",
|
18
|
+
"action": "update",
|
19
|
+
"data": {
|
20
|
+
"field": "value",
|
21
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
22
|
+
}
|
23
|
+
}
|
16
24
|
events:
|
17
25
|
success: false
|
18
26
|
fail: true
|
@@ -12,7 +12,15 @@ body:
|
|
12
12
|
- webhook:
|
13
13
|
name: info
|
14
14
|
url: "https://abc.com/post"
|
15
|
-
payload:
|
15
|
+
payload: |
|
16
|
+
{
|
17
|
+
"system": "external_system",
|
18
|
+
"action": "update",
|
19
|
+
"data": {
|
20
|
+
"field": "value",
|
21
|
+
"timestamp": "2024-05-20T12:00:00Z"
|
22
|
+
}
|
23
|
+
}
|
16
24
|
events:
|
17
25
|
success: false
|
18
26
|
fail: true
|
peak/session.py
CHANGED
@@ -179,7 +179,7 @@ class Session:
|
|
179
179
|
page_count = response["pageCount"]
|
180
180
|
yield from response[response_key]
|
181
181
|
page_number += 1
|
182
|
-
return f"No more {response_key} to list"
|
182
|
+
return f"No more {response_key} to list" # type: ignore[return-value]
|
183
183
|
|
184
184
|
def create_download_request(
|
185
185
|
self,
|
peak/template.py
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
# # along with this program. If not, see <https://apache.org/licenses/LICENSE-2.0>
|
20
20
|
#
|
21
21
|
"""Template module which handles all things related to templates."""
|
22
|
+
|
22
23
|
from __future__ import annotations
|
23
24
|
|
24
25
|
import os
|
@@ -32,7 +33,7 @@ from jinja2 import Environment
|
|
32
33
|
from jinja2.ext import Extension
|
33
34
|
|
34
35
|
from peak import exceptions
|
35
|
-
from peak.helpers import remove_none_values
|
36
|
+
from peak.helpers import convert_keys_to_snake_case, remove_none_values
|
36
37
|
|
37
38
|
|
38
39
|
def _parse_jinja_template(template_path: Path, params: Dict[str, Any]) -> str:
|
@@ -53,6 +54,9 @@ def load_template(
|
|
53
54
|
file: Union[Path, str],
|
54
55
|
params: Optional[Dict[str, Any]] = None,
|
55
56
|
description: Optional[str] = None,
|
57
|
+
markdown_data: Optional[Dict[str, str]] = None,
|
58
|
+
*,
|
59
|
+
convert_to_snake_case: Optional[bool] = False,
|
56
60
|
) -> Dict[str, Any]:
|
57
61
|
"""Load a template file through `Jinja` into a dictionary.
|
58
62
|
|
@@ -66,7 +70,10 @@ def load_template(
|
|
66
70
|
Args:
|
67
71
|
file (Union[Path, str]): Path to the templated `YAML` file to be loaded.
|
68
72
|
params (Dict[str, Any] | None, optional): Named parameters to be passed to Jinja. Defaults to `{}`.
|
69
|
-
description (
|
73
|
+
description (str, optional): Description of press entities in markdown format. Defaults to `None`. Note that this parameter will soon be deprecated. Use `markdown_data` instead.
|
74
|
+
markdown_data (Dict[str, str] | None, optional): Dictionary containing the markdown data to be inserted into the template.
|
75
|
+
The key is a colon-separated string representing the nested key path (e.g., "body:metadata:description"), and the value is the markdown content.
|
76
|
+
convert_to_snake_case (Optional[bool], optional): Convert the keys of the dictionary to snake_case. Defaults to `False`.
|
70
77
|
|
71
78
|
Returns:
|
72
79
|
Dict[str, Any]: Dictionary containing the rendered YAML file
|
@@ -75,9 +82,21 @@ def load_template(
|
|
75
82
|
file = Path(file)
|
76
83
|
template: str = _parse_jinja_template(file, params)
|
77
84
|
parsed_data: Dict[str, Any] = yaml.safe_load(template)
|
85
|
+
|
86
|
+
if convert_to_snake_case:
|
87
|
+
parsed_data = convert_keys_to_snake_case(parsed_data)
|
88
|
+
|
78
89
|
if description:
|
79
90
|
parsed_data["body"]["metadata"]["description"] = description
|
80
91
|
|
92
|
+
if markdown_data:
|
93
|
+
for key, markdown_content in markdown_data.items():
|
94
|
+
keys = key.split(":")
|
95
|
+
target_dict = parsed_data
|
96
|
+
for k in keys[:-1]:
|
97
|
+
target_dict = target_dict.setdefault(k, {})
|
98
|
+
target_dict[keys[-1]] = markdown_content
|
99
|
+
|
81
100
|
return remove_none_values(parsed_data)
|
82
101
|
|
83
102
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: peak-sdk
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.8.0
|
4
4
|
Summary: Python SDK for interacting with the Peak platform
|
5
|
-
Home-page: https://docs.peak.ai/sdk
|
5
|
+
Home-page: https://docs.peak.ai/sdk/latest/
|
6
6
|
License: Apache-2.0
|
7
7
|
Author: Peak
|
8
8
|
Author-email: support@peak.ai
|
@@ -21,23 +21,23 @@ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
21
21
|
Classifier: Typing :: Typed
|
22
22
|
Requires-Dist: certifi (>=2024.2.2)
|
23
23
|
Requires-Dist: jinja2 (>=3.1,<4.0)
|
24
|
-
Requires-Dist: orjson (>=3.
|
24
|
+
Requires-Dist: orjson (>=3.10,<4.0)
|
25
25
|
Requires-Dist: pathspec
|
26
26
|
Requires-Dist: pyyaml (>=6.0,<7.0)
|
27
|
-
Requires-Dist: requests (>=2.
|
27
|
+
Requires-Dist: requests (>=2.32,<3.0)
|
28
28
|
Requires-Dist: requests-toolbelt (>=1.0,<2.0)
|
29
29
|
Requires-Dist: shellingham (<1.5.4)
|
30
|
-
Requires-Dist: structlog (>=24.
|
31
|
-
Requires-Dist: typer
|
30
|
+
Requires-Dist: structlog (>=24.2.0,<25.0.0)
|
31
|
+
Requires-Dist: typer (>=0.12.3,<0.13.0)
|
32
32
|
Requires-Dist: urllib3 (<2)
|
33
|
-
Project-URL: Documentation, https://docs.peak.ai/sdk/
|
33
|
+
Project-URL: Documentation, https://docs.peak.ai/sdk/latest/
|
34
34
|
Description-Content-Type: text/markdown
|
35
35
|
|
36
36
|
# Peak SDK
|
37
37
|
|
38
38
|
[](https://pypi.org/project/peak-sdk/)
|
39
|
-
[](https://docs.peak.ai/sdk/#platform-support)
|
40
|
-
[](https://docs.peak.ai/sdk/license.html)
|
39
|
+
[](https://docs.peak.ai/sdk/latest/#platform-support)
|
40
|
+
[](https://docs.peak.ai/sdk/latest/license.html)
|
41
41
|
|
42
42
|
## What is Peak SDK?
|
43
43
|
|
@@ -104,15 +104,15 @@ Follow these steps to create a virtual environment using Python's built-in `venv
|
|
104
104
|
|
105
105
|
### Documentation
|
106
106
|
|
107
|
-
You can access the documentation for the SDK and CLI at [https://docs.peak.ai/sdk/](https://docs.peak.ai/sdk/).
|
107
|
+
You can access the documentation for the SDK and CLI at [https://docs.peak.ai/sdk/latest/](https://docs.peak.ai/sdk/latest/).
|
108
108
|
Here are some quick links to help you navigate easily:
|
109
109
|
|
110
|
-
- [SDK Reference](https://docs.peak.ai/sdk/reference.html)
|
111
|
-
- [CLI Reference](https://docs.peak.ai/sdk/cli/reference.html)
|
112
|
-
- [Usage](https://docs.peak.ai/sdk/usage.html)
|
113
|
-
- [CLI Usage](https://docs.peak.ai/sdk/cli/usage.html)
|
114
|
-
- [Migration Guide](https://docs.peak.ai/sdk/migration-guide.html)
|
115
|
-
- [FAQ](https://docs.peak.ai/sdk/faq.html)
|
110
|
+
- [SDK Reference](https://docs.peak.ai/sdk/latest/reference.html)
|
111
|
+
- [CLI Reference](https://docs.peak.ai/sdk/latest/cli/reference.html)
|
112
|
+
- [Usage](https://docs.peak.ai/sdk/latest/usage.html)
|
113
|
+
- [CLI Usage](https://docs.peak.ai/sdk/latest/cli/usage.html)
|
114
|
+
- [Migration Guide](https://docs.peak.ai/sdk/latest/migration-guide.html)
|
115
|
+
- [FAQ](https://docs.peak.ai/sdk/latest/faq.html)
|
116
116
|
|
117
117
|
### Platform Support
|
118
118
|
|
@@ -194,6 +194,6 @@ Here are some quick links to help you navigate easily:
|
|
194
194
|
|
195
195
|
## More Resources
|
196
196
|
|
197
|
-
- [License](https://docs.peak.ai/sdk/license.html)
|
198
|
-
- [Changelog](https://docs.peak.ai/sdk/changelog.html)
|
197
|
+
- [License](https://docs.peak.ai/sdk/latest/license.html)
|
198
|
+
- [Changelog](https://docs.peak.ai/sdk/latest/changelog.html)
|
199
199
|
|