peak-sdk 1.3.0__py3-none-any.whl → 1.5.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.
@@ -0,0 +1,8 @@
1
+ # test_service.yaml
2
+
3
+ body:
4
+ httpMethod: post
5
+ path: /
6
+ payload: # Payload to test the API type service. This is a sample payload.
7
+ id: 1
8
+ name: test
@@ -0,0 +1,22 @@
1
+ # service.yaml
2
+
3
+ body:
4
+ title: Updated service
5
+ description: This is an updated service
6
+ imageDetails:
7
+ imageId: 200
8
+ versionId: 200
9
+ resources:
10
+ instanceTypeId: 43
11
+ parameters:
12
+ env:
13
+ param1: value1
14
+ param2: value2
15
+ secrets:
16
+ - secret1
17
+ - secret2
18
+ sessionStickiness: true
19
+ entrypoint: |
20
+ python
21
+ app.py
22
+ healthCheckURL: /health
@@ -4,7 +4,6 @@ body:
4
4
  name: my-new-workflow
5
5
  triggers:
6
6
  - webhook: true
7
- webhookPolicy: "generate"
8
7
  tags:
9
8
  - name: CLI
10
9
  steps:
@@ -4,7 +4,6 @@ body:
4
4
  name: updated-workflow
5
5
  triggers:
6
6
  - webhook: true
7
- webhookPolicy: "generate"
8
7
  tags:
9
8
  - name: CLI
10
9
  steps:
peak/session.py CHANGED
@@ -70,7 +70,7 @@ class Session:
70
70
 
71
71
  Args:
72
72
  auth_token (str | None): Authentication token. Both API Key and Bearer tokens are supported.
73
- Picks up from `API_KEY` environment variable if not provided.
73
+ Picks up from `PEAK_AUTH_TOKEN` or `API_KEY` environment variable if not provided.
74
74
  stage (str | None): Name of the stage where tenant is created. Default is `prod`.
75
75
  """
76
76
  self.base_domain: str = ""
@@ -238,9 +238,12 @@ class Session:
238
238
  self.auth_token = auth_token
239
239
  return
240
240
 
241
- logger.info("auth_token not given, searching for API_KEY in env variables")
242
- if not os.environ.get("API_KEY"):
243
- raise exceptions.MissingEnvironmentVariableException(env_var="API_KEY")
241
+ logger.info("auth_token not given, searching for 'PEAK_AUTH_TOKEN' or 'API_KEY' in env variables")
242
+ if not os.environ.get("API_KEY") and not os.environ.get("PEAK_AUTH_TOKEN"):
243
+ raise exceptions.MissingEnvironmentVariableException(env_var="PEAK_AUTH_TOKEN or API_KEY")
244
+ if os.environ.get("PEAK_AUTH_TOKEN"):
245
+ self.auth_token = os.environ["PEAK_AUTH_TOKEN"]
246
+ return
244
247
  self.auth_token = os.environ["API_KEY"]
245
248
 
246
249
  def _set_stage(self, stage: Optional[str]) -> None:
peak/template.py CHANGED
@@ -49,8 +49,8 @@ def _parse_jinja_template(template_path: Path, params: Dict[str, Any]) -> str:
49
49
 
50
50
  def load_template(
51
51
  file: Union[Path, str],
52
- params: Optional[Dict[str, Any]],
53
- description: Optional[str],
52
+ params: Optional[Dict[str, Any]] = None,
53
+ description: Optional[str] = None,
54
54
  ) -> Dict[str, Any]:
55
55
  """Load a template file through `Jinja` into a dictionary.
56
56
 
peak/validators.py CHANGED
@@ -23,10 +23,10 @@ from __future__ import annotations
23
23
 
24
24
  import os
25
25
  import tempfile
26
- from typing import List
26
+ from typing import Dict, List
27
27
 
28
28
  from peak.constants import MAX_ARTIFACT_SIZE_MB, MB
29
- from peak.exceptions import FileLimitExceededException
29
+ from peak.exceptions import FileLimitExceededException, InvalidParameterException
30
30
 
31
31
 
32
32
  def check_file_size(fh: tempfile.SpooledTemporaryFile[bytes], max_size: float = MAX_ARTIFACT_SIZE_MB) -> None:
@@ -36,6 +36,38 @@ def check_file_size(fh: tempfile.SpooledTemporaryFile[bytes], max_size: float =
36
36
  raise FileLimitExceededException(max_size=max_size)
37
37
 
38
38
 
39
+ def validate_action(action: str) -> None:
40
+ """Validate the action provided.
41
+
42
+ Args:
43
+ action (str): The action to be validated.
44
+
45
+ Raises:
46
+ InvalidParameterException: If the action is not 'read' or 'write'.
47
+
48
+ Returns: None
49
+ """
50
+ if action not in ["read", "write"]:
51
+ raise InvalidParameterException(message="The action must be 'read' or 'write'.")
52
+
53
+
54
+ def validate_feature_path(search_result: Dict[str, bool], feature_path: str) -> None:
55
+ """Validate the feature path provided.
56
+
57
+ Args:
58
+ search_result (Dict[str, bool]): The search result for the feature path.
59
+ feature_path (str): The feature path to be validated.
60
+
61
+ Raises:
62
+ InvalidParameterException: If the feature path is incomplete and more subfeatures need to be specified.
63
+
64
+ Returns: None
65
+ """
66
+ if search_result["deeper_levels"]:
67
+ message = f"'{feature_path}' contains more subfeatures. Please specify the complete path."
68
+ raise InvalidParameterException(message=message)
69
+
70
+
39
71
  def _get_file_size(fh: tempfile.SpooledTemporaryFile[bytes]) -> int:
40
72
  """Get file size in bytes."""
41
73
  old_pos: int = fh.tell()
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright © 2023 Peak-AI
189
+ Copyright © 2024 Peak-AI
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: peak-sdk
3
- Version: 1.3.0
3
+ Version: 1.5.0
4
4
  Summary: Python SDK for interacting with the Peak platform
5
5
  Home-page: https://docs.peak.ai/sdk
6
6
  License: Apache-2.0
@@ -94,13 +94,13 @@ Follow these steps to create a virtual environment using Python's built-in `venv
94
94
  echo "compinit" >> ~/.zshrc # replace .zshrc with your shell's configuration file
95
95
  ```
96
96
 
97
- ### Using the SDK/CLI
97
+ ### Using the SDK and CLI
98
98
 
99
- - To start using the SDK and CLI, you'll need either an API Key or an Access Token.
100
- - If you don't have one yet, sign up for an account on the Peak platform to obtain your API key or Access token.
101
- - To export it, run the following command in your terminal and replace <api_key> with your actual API key:
99
+ - To start using the SDK and CLI, you'll need either an API Key or a Personal Access Token (PAT).
100
+ - If you don't have one yet, sign up for an account on the Peak platform to obtain your API key or Personal Access token (PAT).
101
+ - To export it, run the following command in your terminal and replace <peak_auth_token> with your actual API key or PAT:
102
102
  ```
103
- export API_KEY=<api_key | access_token>
103
+ export PEAK_AUTH_TOKEN=<peak_auth_token>
104
104
  ```
105
105
 
106
106
  ### Documentation
@@ -1,28 +1,30 @@
1
- peak/__init__.py,sha256=eEQoIjnJBe5iVAhf3XE-rl8GFjdUHTnz05rR9f4VuX4,1263
2
- peak/_metadata.py,sha256=N5iAW17Ecq-yVv4IQ9yo6A9lm8NGW3m2XkprGfaqzUQ,21553
3
- peak/_version.py,sha256=xaKZK5NBXH84VA7_0UPlyhhUFZ5wKxDcuf0ilyowWa8,886
1
+ peak/__init__.py,sha256=yULGsiciVPNjdTO6uwEynsyLFiGBA2n7TT72DzKn9z8,1263
2
+ peak/_metadata.py,sha256=grRJ8sixuoMQnvJnq-tQDheb5URzLXkKxXzl8UrTHvY,22930
3
+ peak/_version.py,sha256=LOauAOLrFg8lEqnmcJstbzCjySeXVJ6zNrUW2MLWqeY,886
4
4
  peak/auth.py,sha256=KcqCqovY6sFiMGNAGP9k3AtCAXrZ-tYd7QP-PFYorX0,904
5
5
  peak/base_client.py,sha256=3cS8hZApONkojwdgzt_tbwSxwpFcn3xGwzVcmxkgOJc,1808
6
6
  peak/callbacks.py,sha256=ZO3Yk_-xa9LGoJgMCc01hqYLq2z3wU45UO3iLHSHk6k,2486
7
7
  peak/cli/__init_.py,sha256=enzNZ-aEPmKIC8eExPvF-ZdomGroRUPmP09003PNGAg,859
8
8
  peak/cli/args.py,sha256=EA7YQ_jojN9M9RZPZFsbvIe_NEVc6W80boxSXpS-MnQ,5720
9
- peak/cli/cli.py,sha256=McJj_yCX2QIfFrilKEEIy3NiiBLPbwmywMrsY6lQ9_0,2271
10
- peak/cli/helpers.py,sha256=d9J_zjR7heljpKlIlw-L0_9CBMkfyc4IDbvzW_O8Ls4,7450
9
+ peak/cli/cli.py,sha256=XkHGdoPhaycU8O4P-ij9-ziLCAgZDdJjUwqNVYRiIIE,2384
10
+ peak/cli/helpers.py,sha256=QwVrvU4muVREeP8hhBbkJ61OOFH8WWPzzQQPkt_TYeo,8250
11
11
  peak/cli/press/__init__.py,sha256=7zvL15sobpdrEuGoziADkJVnrHMiZKINYr4FDRFetY8,898
12
12
  peak/cli/press/apps/__init__.py,sha256=_bUtQG1zrO9Jv5zIFFKikR82-NsAfpow2KgSOa3oX_M,1459
13
13
  peak/cli/press/apps/deployments.py,sha256=7JmxFhtaOZ9QXTtAtd-Oxu69JemRBP6MDuaRONdWEAY,15895
14
14
  peak/cli/press/apps/specs.py,sha256=VrSVH-YFFnTq3bwGW_ws3r4hpTv9UazzjhSXU8HT35Q,15566
15
15
  peak/cli/press/blocks/__init__.py,sha256=0kQIpLD29rlec5xTB9RLNPdIHxf6vi6_3gukBkwaySI,1499
16
16
  peak/cli/press/blocks/deployments.py,sha256=20zUO6_GSjc2DpCfao0_2urktjn4Z6JY4T1GVc4sK60,20260
17
- peak/cli/press/blocks/specs.py,sha256=R0kDtdQixf7_CsqOZXn44Gy77hl9i7TQ1wMEwIn06c4,29847
17
+ peak/cli/press/blocks/specs.py,sha256=NZ2RejlWRZr8eRQJZR5CB2jwZPKjOZIs5n8wKIkGmZo,29517
18
18
  peak/cli/press/deployments.py,sha256=TBDu8YD0BdD_lnHD2vZuSHTsmZ-m3WQJFi8Fefwzck4,2834
19
19
  peak/cli/press/specs.py,sha256=kxq_n-kJgK_xgamj3f_paNRI9ISKiOuwgO2MGeFO0KY,4611
20
20
  peak/cli/resources/__init__.py,sha256=ThMYJ-QNULjTWOmAGUzhKWuqDcHq73DxzgTV2r5-uLs,883
21
21
  peak/cli/resources/artifacts.py,sha256=LQcJKw39xoJaFeTJMYi1n-XTyU02SOSKg0J1VuWrhgU,12383
22
22
  peak/cli/resources/images.py,sha256=KzLVGNuPUpCA8AsZufXZgYFA4pnZ9JsZInE7zclmNmQ,43125
23
+ peak/cli/resources/services.py,sha256=f-1lGUerQ1qwIcVFfSumiPES1nreQp1bhaUeKXbJLtI,23435
23
24
  peak/cli/resources/tenants.py,sha256=m5hwW8rQLKsRQwOFAmE2QQXiOLRV-hZmomxUGSEPFjg,2624
24
- peak/cli/resources/webapps.py,sha256=rrEd3o6kF1vIZlzrO7NQoHUzfKWtiN4rBrOs65Cf5iM,16315
25
- peak/cli/resources/workflows.py,sha256=29Eryhwsoa92XAisMiAbqIrpMjNYMYymzicc-2mPttA,49317
25
+ peak/cli/resources/users.py,sha256=igXEelUTnqcqVd4OUu2YUMu8kwelWp7ZM9JgXxk9Jfg,2628
26
+ peak/cli/resources/webapps.py,sha256=0Wunb-XYvM5n5HQO4_-LDMCDezdRo_FbbsEnHPTdA2Y,21349
27
+ peak/cli/resources/workflows.py,sha256=jd5dy24WBpXu5xfp0-LDBkeHq9KxBE-rstdrfPX7zx8,48787
26
28
  peak/cli/ruff.toml,sha256=eyOQvxmLQvGqEEcH3RaiM_8B5wh2UVWrWYzL2xeX7sk,185
27
29
  peak/cli/version.py,sha256=Y8HJCJJqkXnpcXw8dyaJcPZmIDOl32bJZ2bWmjmlJBM,1654
28
30
  peak/compression.py,sha256=06rQLl10FQRZVHwimXV-QsYmd4rb24RzkRj1CrHfeGs,7447
@@ -30,21 +32,23 @@ peak/config.py,sha256=FZ6aIN0gwA52noh-8HJkGnUr8HEOpyNFk6uR4QWt65o,1146
30
32
  peak/constants.py,sha256=TDMN4cXXKyR_Q8maeo8Ukvprl_Bz0YtYytD3yuHBZKs,3312
31
33
  peak/exceptions.py,sha256=uXVBnBVK6kAkAC_VVeEvohdRUH2KGhRthnqwnhfHcV4,6974
32
34
  peak/handler.py,sha256=IqbGbEz1slg5RH3Cg7Wn5pyDAy5fo1yga1TVqI7UYDM,14777
33
- peak/helpers.py,sha256=Mx2lkokMt2NlEpHvRw1hzuo-K3uQyfrZSaFM6VtDB44,7588
35
+ peak/helpers.py,sha256=9PX8GbDmDrqV-VaG_0by3ZD69YyzwYNnTQhuyMC3GUM,8812
34
36
  peak/logger.py,sha256=bPq_7mdbhFoUcnV_LCi8hRDrb7INwf8PHHEx2z83bFU,1548
35
- peak/output.py,sha256=-gBof8gxMjB8KOQp84kVzLTBzUj79q8CDXegcNGfxRQ,5758
37
+ peak/output.py,sha256=SbWppqvrEHzZp4I_iX3l855BcRSTuZ3mQsiqYpdCgLk,6230
36
38
  peak/press/__init__.py,sha256=80Key6wov_xZld45-39ELT0gDC_t4cy-JvA9wfCy7-c,1112
37
39
  peak/press/apps.py,sha256=TT9ehWvqxp3YBeg6KSAiQSp6_fIN_JEc5gGJ9W6P2WQ,41975
38
- peak/press/blocks.py,sha256=wip2ir7MGbSBDcv1UzKf8d-OGFY-3TOkEK9MwYVcoAQ,59452
40
+ peak/press/blocks.py,sha256=HfJy-0m1-hMZBdJUN0YU-q2sTaQOExd1e3ZvuFM0gec,59239
39
41
  peak/press/deployments.py,sha256=PaZGNbC5Bcx885tzxUYA-ve44gfKgMnP4dkJrPDVVH8,5950
40
42
  peak/press/specs.py,sha256=b-O5a-hjdPXFIGcGR913VWC6FKWTiZ74lkOXhFaLOFA,10850
41
43
  peak/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- peak/resources/__init__.py,sha256=N45DI5Y99nJsHLdTdKwWMa2CFTC2B9Ztje2xt5n8dcc,1150
44
+ peak/resources/__init__.py,sha256=yszHkLXI7sdz5mMaVcHx5LXefb_957_WwFThQmQ7w20,1188
43
45
  peak/resources/artifacts.py,sha256=xPnv7DqCoSsKNcp8AC638rDnS37o-mfhrWOChHuQ92s,14381
44
46
  peak/resources/images.py,sha256=ZZlDoZ-P8DwIS3-flbaEWeZi6yHJbXns0McqC3jmrBo,37273
47
+ peak/resources/services.py,sha256=g9IhSnSzbS4nymN2LwfqrItLsVKCCfIw9kHRNRP2DHU,16712
45
48
  peak/resources/tenants.py,sha256=J6lxfq1HXfyhA2EmSSSUHi4fRN6KU__yV7El1PVmvtk,2936
46
- peak/resources/webapps.py,sha256=unPYyRcuZYMj22SUu9qTLpEgzGNc9bELLGD3pqvnYpw,13147
47
- peak/resources/workflows.py,sha256=ledIYOlUIWgvSy6oV0jcmz7rnRWwI5A_OMm3yLv8HGI,48995
49
+ peak/resources/users.py,sha256=X9NfZo1dVvXQk_DCxzTKGG_VCsSmk7HzHdJrRR90mKQ,3428
50
+ peak/resources/webapps.py,sha256=B2Ai0twwcqBkFcaHVbvMO-834nBwd-zz9hY4OqItJkU,13753
51
+ peak/resources/workflows.py,sha256=PFWulP_CZ97Q6p0easBGTXBbFrvSrocK448xIMMiQ4I,48716
48
52
  peak/sample_yaml/press/apps/deployments/create_app_deployment.yaml,sha256=-P2wFBnxY_yCxRJ5-Wx1NQyLrdbBQa8RAxVKXjyiGYc,996
49
53
  peak/sample_yaml/press/apps/deployments/create_app_deployment_revision.yaml,sha256=QVYjGBBDxoqADIxWuOuV3X8rABpvHMZUbXlA7KpKg1s,688
50
54
  peak/sample_yaml/press/apps/deployments/update_app_deployment_metadata.yaml,sha256=RBrAnxULPXYTrYY7T6l-L5_Q1E8LJ6RwVwOkw4zn5w0,302
@@ -71,31 +75,35 @@ peak/sample_yaml/resources/images/upload/create_image.yaml,sha256=-ZtlxiohuyS8n_
71
75
  peak/sample_yaml/resources/images/upload/create_image_version.yaml,sha256=pE9CQM9V5jftNWssFQGAPSCEyAx8nCn-LdYmlNQmVHw,395
72
76
  peak/sample_yaml/resources/images/upload/create_or_update_image.yaml,sha256=xhB-BGRhlJ74n8Hnhvv4_JXmQKBuBvGwhfJHTfBNaMo,414
73
77
  peak/sample_yaml/resources/images/upload/update_version.yaml,sha256=r1jL5UhQSWJlQxprwRQenm2i_1lqrzZPydXpaTP-DTw,321
78
+ peak/sample_yaml/resources/services/create_or_update_service.yaml,sha256=zR7-E4r0T6wxA0H4EcusWhOzmoLZ0_45tyzSKK9257E,410
79
+ peak/sample_yaml/resources/services/create_service.yaml,sha256=zR7-E4r0T6wxA0H4EcusWhOzmoLZ0_45tyzSKK9257E,410
80
+ peak/sample_yaml/resources/services/test_service.yaml,sha256=600Ufl4c63LWXiGJATH0-dvWPIgLjh-QOd-mIIruuxo,158
81
+ peak/sample_yaml/resources/services/update_service.yaml,sha256=0MysavbZ8wPK0xzK-GJwD7PrhpJ_ZDZlpy7VZNQuRww,377
74
82
  peak/sample_yaml/resources/webapps/create_or_update_webapp.yaml,sha256=r7amhHgvHFczoet7Uv1TU40IN3nPECDohD-V0_joGUM,192
75
83
  peak/sample_yaml/resources/webapps/create_webapp.yaml,sha256=vha4FJgOILeBOp2eaw2CL_fr3LudotLjNu1CR1-cnTg,208
76
84
  peak/sample_yaml/resources/webapps/update_webapp.yaml,sha256=6L2F30h-U6_aSZfRAllDxwAgCMHZk8jBHgUi4l18xRM,199
77
- peak/sample_yaml/resources/workflows/create_or_update_workflow.yaml,sha256=CGejgZXkgAbLOZwr7Sc6_gSLOnnT6k-84QsylyWLTD8,588
85
+ peak/sample_yaml/resources/workflows/create_or_update_workflow.yaml,sha256=TBXrNAAuHtkxbLYfR541R8BaU7QWG8VPs9veGXZhWWU,556
78
86
  peak/sample_yaml/resources/workflows/create_workflow.yaml,sha256=f9O6C0pAvjINPa6wWxV4H_1uCvswOZecD8Q8q5xXgsM,1011
79
87
  peak/sample_yaml/resources/workflows/execute_partial_workflow.yaml,sha256=Mmv3aEr8jsiFN-yuPbp8hk5ZT-GdtEAgwt2pArFC_EQ,237
80
88
  peak/sample_yaml/resources/workflows/execute_workflow.yaml,sha256=aMPjkzS3pFvKy-FfKfGAW9qb1WmAUSU2gsUcyv8a3X0,160
81
89
  peak/sample_yaml/resources/workflows/patch_workflow.yaml,sha256=TAyTpYWDftJu4vMOqSERxT0vcGgNSzwqzxn4VQDxmdE,385
82
- peak/sample_yaml/resources/workflows/update_workflow.yaml,sha256=-kM4w2RTdc4O8rlclz9Ua17BcjfFHTQ7UKTGhbS4ixo,599
90
+ peak/sample_yaml/resources/workflows/update_workflow.yaml,sha256=HDtMK4Cbay4ePN2n6ErW7UpLsSyOw48CxGGjbVO4PVg,567
83
91
  peak/sample_yaml/resources/workflows/workflow_auto_retry.yaml,sha256=_E5FA-uD1qGVC3RhMCqi56Ac60TACMTnjNZ0wp1aLg8,849
84
92
  peak/sample_yaml/resources/workflows/workflow_execution_parameters.yaml,sha256=bmRQLw-kM3qB2KBWsVonbKPy7-N_SE_CRyeoD5zKm6M,1229
85
93
  peak/sample_yaml/resources/workflows/workflow_input_parameters.yaml,sha256=lG_3KZoZPSIhw2YA9CZvU1B400oMD1t8xQQjvoocO24,457
86
94
  peak/sample_yaml/resources/workflows/workflow_output_parameters.yaml,sha256=PEkinTcETUgFAK1o5-cKjYAqhAlzEFKtOJzRpuBPom8,536
87
95
  peak/sample_yaml/resources/workflows/workflow_skippable_steps.yaml,sha256=BjDy73pWO6nJ-4IjmdyHOJJE5C35E18gjPPlITs7ucI,680
88
- peak/session.py,sha256=swp89e3uQg3SSzuN37LdQ_1ckI4tlMaUDfxRJJFQ0ig,9927
96
+ peak/session.py,sha256=AvHmlFQrQLtJlBEMTRC5QKPc8Sg5zXVjmhhrUXaX6Eg,10157
89
97
  peak/telemetry.py,sha256=ERfDjHWv51WTy0JF-8KXlVnTQx7q9GAEnS8Kk2Rtaqs,7113
90
- peak/template.py,sha256=yCMLHhS9BEluMwVHKSh_y9YwcICpgCsxiVB7ZLDIHpA,9744
98
+ peak/template.py,sha256=KT3QX_0PRXJsqeziCMytQ-aM2CKF5h5vnOz6OrpGD6g,9758
91
99
  peak/tools/__init__.py,sha256=qK30qBi0MNvob6UkyzcfhI0s8nfSwGC4167A_2URBnY,1048
92
100
  peak/tools/logging/__init__.py,sha256=I53XIPHE0Q9tIVh5RVtonmAV1Pc4phVOdoCXv3ivnAs,10936
93
101
  peak/tools/logging/log_handler.py,sha256=wxU7klDyhCSdiotPnTXCvLhpRes_bnbQ3H1xVn42qjk,1406
94
102
  peak/tools/logging/log_level.py,sha256=B0EeQ_2waaHB67suhR422-eiUA53g5hgCoM1Abt6OI0,1770
95
103
  peak/tools/logging/utils.py,sha256=qmjdBbCc1Y6JDbSgNXfdnLnpkx7fb9kPw9u8uO3AAII,3330
96
- peak/validators.py,sha256=K5QLn86KCNyTNop1FV34eC7ZVNAcNdtmQ20sdbILwGI,1664
97
- peak_sdk-1.3.0.dist-info/LICENSE,sha256=0Y9BYg7uGfAbZsKN_THh2qvHukWQfytaxjZ6T2JYTu4,11340
98
- peak_sdk-1.3.0.dist-info/METADATA,sha256=R_vkZpc7SsdtSdjyo3FLQ5geUromgDairjKb01lyOhI,7072
99
- peak_sdk-1.3.0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
100
- peak_sdk-1.3.0.dist-info/entry_points.txt,sha256=zHCEjuOTjkfmqivgEZQsPGm4zFA4W3Q_vKCjPr7W6lE,47
101
- peak_sdk-1.3.0.dist-info/RECORD,,
104
+ peak/validators.py,sha256=_nVAXF_AB443voKNjyQsCTQBAVVAqn7xCbCbBguohIs,2715
105
+ peak_sdk-1.5.0.dist-info/LICENSE,sha256=W0jszenKx7YdFA7BDnyg8xDKXzCP8AperJb_PHh9paQ,11340
106
+ peak_sdk-1.5.0.dist-info/METADATA,sha256=NCEKFnlpl8oyhvShHJVF1tJWuIB0AwUXArLd42vxmVU,7121
107
+ peak_sdk-1.5.0.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
108
+ peak_sdk-1.5.0.dist-info/entry_points.txt,sha256=zHCEjuOTjkfmqivgEZQsPGm4zFA4W3Q_vKCjPr7W6lE,47
109
+ peak_sdk-1.5.0.dist-info/RECORD,,