yicloud-sdk-python 0.3.0__tar.gz → 0.4.0__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.
- {yicloud_sdk_python-0.3.0/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.4.0}/PKG-INFO +9 -7
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/README.md +8 -6
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/pyproject.toml +1 -1
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/version.py +1 -1
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/__init__.py +1 -1
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/__init__.py +4 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/client.py +53 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/config.py +7 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/msgs/__init__.py +7 -2
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/__init__.py +2 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/__init__.py +5 -0
- yicloud_sdk_python-0.4.0/yicloud/services/bc/actions.py +160 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/__init__.py +10 -0
- yicloud_sdk_python-0.4.0/yicloud/services/dataset/actions.py +300 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/models.py +4 -4
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/__init__.py +12 -0
- yicloud_sdk_python-0.4.0/yicloud/services/fs/actions.py +272 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/models.py +20 -8
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/__init__.py +12 -0
- yicloud_sdk_python-0.4.0/yicloud/services/iam/actions.py +358 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/__init__.py +57 -1
- yicloud_sdk_python-0.4.0/yicloud/services/inferset/actions.py +618 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/models.py +228 -4
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/job/__init__.py +26 -4
- yicloud_sdk_python-0.4.0/yicloud/services/job/actions.py +402 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/job/models.py +94 -31
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/__init__.py +46 -1
- yicloud_sdk_python-0.4.0/yicloud/services/mc/actions.py +860 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/models.py +105 -9
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/__init__.py +11 -0
- yicloud_sdk_python-0.4.0/yicloud/services/modelrepo/actions.py +330 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/models.py +18 -28
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/__init__.py +1 -0
- yicloud_sdk_python-0.4.0/yicloud/services/monitor/actions.py +40 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/__init__.py +5 -0
- yicloud_sdk_python-0.4.0/yicloud/services/oss/actions.py +160 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/models.py +18 -18
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/__init__.py +9 -0
- yicloud_sdk_python-0.4.0/yicloud/services/ray/actions.py +272 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/models.py +10 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/__init__.py +12 -2
- yicloud_sdk_python-0.4.0/yicloud/services/registry/actions.py +272 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/models.py +50 -15
- yicloud_sdk_python-0.4.0/yicloud/services/sandbox/__init__.py +130 -0
- yicloud_sdk_python-0.4.0/yicloud/services/sandbox/actions.py +574 -0
- yicloud_sdk_python-0.4.0/yicloud/services/sandbox/client.py +21 -0
- yicloud_sdk_python-0.4.0/yicloud/services/sandbox/models.py +583 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/__init__.py +13 -1
- yicloud_sdk_python-0.4.0/yicloud/services/volume/actions.py +364 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/models.py +44 -31
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/__init__.py +21 -3
- yicloud_sdk_python-0.4.0/yicloud/services/workspace/actions.py +608 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/models.py +64 -37
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0/yicloud_sdk_python.egg-info}/PKG-INFO +9 -7
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/SOURCES.txt +4 -0
- yicloud_sdk_python-0.3.0/yicloud/services/bc/actions.py +0 -70
- yicloud_sdk_python-0.3.0/yicloud/services/dataset/actions.py +0 -125
- yicloud_sdk_python-0.3.0/yicloud/services/fs/actions.py +0 -102
- yicloud_sdk_python-0.3.0/yicloud/services/iam/actions.py +0 -148
- yicloud_sdk_python-0.3.0/yicloud/services/inferset/actions.py +0 -173
- yicloud_sdk_python-0.3.0/yicloud/services/job/actions.py +0 -163
- yicloud_sdk_python-0.3.0/yicloud/services/mc/actions.py +0 -312
- yicloud_sdk_python-0.3.0/yicloud/services/modelrepo/actions.py +0 -137
- yicloud_sdk_python-0.3.0/yicloud/services/monitor/actions.py +0 -22
- yicloud_sdk_python-0.3.0/yicloud/services/oss/actions.py +0 -70
- yicloud_sdk_python-0.3.0/yicloud/services/ray/actions.py +0 -114
- yicloud_sdk_python-0.3.0/yicloud/services/registry/actions.py +0 -114
- yicloud_sdk_python-0.3.0/yicloud/services/volume/actions.py +0 -151
- yicloud_sdk_python-0.3.0/yicloud/services/workspace/actions.py +0 -253
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/LICENSE +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/setup.cfg +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/__init__.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/credential.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/sign.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/errs/__init__.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/log/__init__.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/log/logger.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/log/std.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/__init__.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/helps.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/retry/__init__.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/retry/retry.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/models.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/models.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/job/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/models.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/client.py +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/requires.txt +0 -0
- {yicloud_sdk_python-0.3.0 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yicloud-sdk-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: YiCloud OpenAPI SDK for Python
|
|
5
5
|
Author: YiCloud
|
|
6
6
|
Project-URL: Homepage, https://gitee.com/yicloud-team/openapi-sdk-python
|
|
@@ -111,18 +111,19 @@ except base.exc.YiCloudException as e:
|
|
|
111
111
|
|---------|---------|---------|-------------|
|
|
112
112
|
| BC | `yicloud.services.bc` | 5 | 账单管理 BC |
|
|
113
113
|
| Dataset | `yicloud.services.dataset` | 10 | 数据集 DATASET |
|
|
114
|
-
| FS | `yicloud.services.fs` |
|
|
114
|
+
| FS | `yicloud.services.fs` | 9 | 文件系统 FS |
|
|
115
115
|
| IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
|
|
116
|
-
| Inferset | `yicloud.services.inferset` |
|
|
116
|
+
| Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
|
|
117
117
|
| JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
|
|
118
|
-
| MC | `yicloud.services.mc` |
|
|
118
|
+
| MC | `yicloud.services.mc` | 29 | 管理中心 MC |
|
|
119
119
|
| Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
|
|
120
120
|
| Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
|
|
121
121
|
| OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
|
|
122
122
|
| RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
|
|
123
|
-
| Registry | `yicloud.services.registry` |
|
|
123
|
+
| Registry | `yicloud.services.registry` | 9 | 镜像仓库 REGISTRY |
|
|
124
|
+
| Sandbox | `yicloud.services.sandbox` | 19 | 沙盒 SANDBOX |
|
|
124
125
|
| Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
|
|
125
|
-
| Workspace | `yicloud.services.workspace` |
|
|
126
|
+
| Workspace | `yicloud.services.workspace` | 20 | 开发机 WS |
|
|
126
127
|
|
|
127
128
|
## Project Structure
|
|
128
129
|
|
|
@@ -136,7 +137,7 @@ yicloud/ # Main package
|
|
|
136
137
|
│ ├── log/ # Logger
|
|
137
138
|
│ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
|
|
138
139
|
│ └── utils/ # Utilities
|
|
139
|
-
└── services/ # Business services (
|
|
140
|
+
└── services/ # Business services (15 services)
|
|
140
141
|
├── bc/ # 账单管理 BC
|
|
141
142
|
├── dataset/ # 数据集 DATASET
|
|
142
143
|
├── fs/ # 文件系统 FS
|
|
@@ -149,6 +150,7 @@ yicloud/ # Main package
|
|
|
149
150
|
├── oss/ # 对象存储OSS
|
|
150
151
|
├── ray/ # 分布式计算 Ray
|
|
151
152
|
├── registry/ # 镜像仓库 REGISTRY
|
|
153
|
+
├── sandbox/ # 沙盒 SANDBOX
|
|
152
154
|
├── volume/ # 云盘管理 Volume
|
|
153
155
|
├── workspace/ # 开发机 WS
|
|
154
156
|
examples/ # Example code (one per service)
|
|
@@ -72,18 +72,19 @@ except base.exc.YiCloudException as e:
|
|
|
72
72
|
|---------|---------|---------|-------------|
|
|
73
73
|
| BC | `yicloud.services.bc` | 5 | 账单管理 BC |
|
|
74
74
|
| Dataset | `yicloud.services.dataset` | 10 | 数据集 DATASET |
|
|
75
|
-
| FS | `yicloud.services.fs` |
|
|
75
|
+
| FS | `yicloud.services.fs` | 9 | 文件系统 FS |
|
|
76
76
|
| IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
|
|
77
|
-
| Inferset | `yicloud.services.inferset` |
|
|
77
|
+
| Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
|
|
78
78
|
| JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
|
|
79
|
-
| MC | `yicloud.services.mc` |
|
|
79
|
+
| MC | `yicloud.services.mc` | 29 | 管理中心 MC |
|
|
80
80
|
| Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
|
|
81
81
|
| Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
|
|
82
82
|
| OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
|
|
83
83
|
| RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
|
|
84
|
-
| Registry | `yicloud.services.registry` |
|
|
84
|
+
| Registry | `yicloud.services.registry` | 9 | 镜像仓库 REGISTRY |
|
|
85
|
+
| Sandbox | `yicloud.services.sandbox` | 19 | 沙盒 SANDBOX |
|
|
85
86
|
| Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
|
|
86
|
-
| Workspace | `yicloud.services.workspace` |
|
|
87
|
+
| Workspace | `yicloud.services.workspace` | 20 | 开发机 WS |
|
|
87
88
|
|
|
88
89
|
## Project Structure
|
|
89
90
|
|
|
@@ -97,7 +98,7 @@ yicloud/ # Main package
|
|
|
97
98
|
│ ├── log/ # Logger
|
|
98
99
|
│ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
|
|
99
100
|
│ └── utils/ # Utilities
|
|
100
|
-
└── services/ # Business services (
|
|
101
|
+
└── services/ # Business services (15 services)
|
|
101
102
|
├── bc/ # 账单管理 BC
|
|
102
103
|
├── dataset/ # 数据集 DATASET
|
|
103
104
|
├── fs/ # 文件系统 FS
|
|
@@ -110,6 +111,7 @@ yicloud/ # Main package
|
|
|
110
111
|
├── oss/ # 对象存储OSS
|
|
111
112
|
├── ray/ # 分布式计算 Ray
|
|
112
113
|
├── registry/ # 镜像仓库 REGISTRY
|
|
114
|
+
├── sandbox/ # 沙盒 SANDBOX
|
|
113
115
|
├── volume/ # 云盘管理 Volume
|
|
114
116
|
├── workspace/ # 开发机 WS
|
|
115
117
|
examples/ # Example code (one per service)
|
|
@@ -4,6 +4,8 @@ from yicloud.base.client import (
|
|
|
4
4
|
new_client,
|
|
5
5
|
get,
|
|
6
6
|
post,
|
|
7
|
+
get_async,
|
|
8
|
+
post_async,
|
|
7
9
|
with_transport,
|
|
8
10
|
with_http_client,
|
|
9
11
|
with_host,
|
|
@@ -36,6 +38,8 @@ __all__ = [
|
|
|
36
38
|
"new_credential",
|
|
37
39
|
"get",
|
|
38
40
|
"post",
|
|
41
|
+
"get_async",
|
|
42
|
+
"post_async",
|
|
39
43
|
"with_transport",
|
|
40
44
|
"with_http_client",
|
|
41
45
|
"with_host",
|
|
@@ -4,6 +4,7 @@ import time
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Any, Callable, Optional
|
|
6
6
|
import requests
|
|
7
|
+
import asyncio
|
|
7
8
|
|
|
8
9
|
from yicloud.base import config, auth, errs, log, msgs, utils
|
|
9
10
|
from yicloud.base.utils.retry import retry, with_attempts
|
|
@@ -166,6 +167,33 @@ def post(self, ctx: Context, path: str, body: Any, rsp: msgs.Response) -> None:
|
|
|
166
167
|
Client.post = post
|
|
167
168
|
|
|
168
169
|
|
|
170
|
+
async def get_async(self, ctx: Context, path: str, query: Any, rsp: msgs.Response) -> None:
|
|
171
|
+
"""Async GET request.
|
|
172
|
+
|
|
173
|
+
Raises YiCloudException on error.
|
|
174
|
+
"""
|
|
175
|
+
query_str = utils.build_query(query)
|
|
176
|
+
err = await self._request_async(ctx, "GET", path, query_str, None, rsp)
|
|
177
|
+
if err:
|
|
178
|
+
raise err
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
Client.get_async = get_async
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
async def post_async(self, ctx: Context, path: str, body: Any, rsp: msgs.Response) -> None:
|
|
185
|
+
"""Async POST request.
|
|
186
|
+
|
|
187
|
+
Raises YiCloudException on error.
|
|
188
|
+
"""
|
|
189
|
+
err = await self._request_async(ctx, "POST", path, "", body, rsp)
|
|
190
|
+
if err:
|
|
191
|
+
raise err
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
Client.post_async = post_async
|
|
195
|
+
|
|
196
|
+
|
|
169
197
|
def _request(
|
|
170
198
|
self,
|
|
171
199
|
ctx: Context,
|
|
@@ -229,6 +257,7 @@ def _request(
|
|
|
229
257
|
"X-OGW-PUBLIC-KEY": self.crede.public_key,
|
|
230
258
|
"X-OGW-TICK": tick_str,
|
|
231
259
|
"X-OGW-SIGN": sign,
|
|
260
|
+
"X-OGW-REGION-ID": self.config.region_id,
|
|
232
261
|
}
|
|
233
262
|
|
|
234
263
|
# Execute request
|
|
@@ -315,3 +344,27 @@ def _request(
|
|
|
315
344
|
|
|
316
345
|
# Add _request method to Client class
|
|
317
346
|
Client._request = _request
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
async def _request_async(
|
|
350
|
+
self,
|
|
351
|
+
ctx: Context,
|
|
352
|
+
method: str,
|
|
353
|
+
path: str,
|
|
354
|
+
query: str,
|
|
355
|
+
body: Any,
|
|
356
|
+
rsp: msgs.Response,
|
|
357
|
+
) -> Optional[errs.YiCloudException]:
|
|
358
|
+
"""
|
|
359
|
+
Core async request method.
|
|
360
|
+
Runs the synchronous _request in a thread pool executor to avoid blocking the event loop.
|
|
361
|
+
|
|
362
|
+
Returns None on success, or a YiCloudException on error.
|
|
363
|
+
"""
|
|
364
|
+
loop = asyncio.get_running_loop()
|
|
365
|
+
return await loop.run_in_executor(
|
|
366
|
+
None, lambda: self._request(ctx, method, path, query, body, rsp)
|
|
367
|
+
)
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
Client._request_async = _request_async
|
|
@@ -13,12 +13,14 @@ class Config:
|
|
|
13
13
|
timeout: float = 30.0,
|
|
14
14
|
max_retries: int = 0,
|
|
15
15
|
log_level: int = Level.WARN,
|
|
16
|
+
region_id: str = "",
|
|
16
17
|
):
|
|
17
18
|
self.host = host
|
|
18
19
|
self.user_agent = user_agent
|
|
19
20
|
self.timeout = timeout
|
|
20
21
|
self.max_retries = max_retries
|
|
21
22
|
self.log_level = log_level
|
|
23
|
+
self.region_id = region_id
|
|
22
24
|
|
|
23
25
|
def get_user_agent(self) -> str:
|
|
24
26
|
return self.user_agent
|
|
@@ -31,6 +33,7 @@ class Config:
|
|
|
31
33
|
timeout=30.0,
|
|
32
34
|
max_retries=0,
|
|
33
35
|
log_level=Level.WARN,
|
|
36
|
+
region_id="cn-shanghai",
|
|
34
37
|
)
|
|
35
38
|
cfg._apply_env()
|
|
36
39
|
return cfg
|
|
@@ -53,6 +56,10 @@ class Config:
|
|
|
53
56
|
except ValueError:
|
|
54
57
|
pass
|
|
55
58
|
|
|
59
|
+
v = os.getenv("YICLOUD_REGION_ID")
|
|
60
|
+
if v and v.strip():
|
|
61
|
+
self.region_id = v
|
|
62
|
+
|
|
56
63
|
@staticmethod
|
|
57
64
|
def new() -> "Config":
|
|
58
65
|
return Config.new_default_config()
|
|
@@ -62,10 +62,15 @@ def _dict_to_dataclass(target_type, data):
|
|
|
62
62
|
|
|
63
63
|
field_types = get_type_hints(target_type)
|
|
64
64
|
|
|
65
|
+
# Map JSON key aliases (metadata={"json": ...}) to field names, so fields
|
|
66
|
+
# whose wire name collides with a Python keyword (e.g. "pass") still deserialize.
|
|
67
|
+
aliases = {f.metadata["json"]: f.name for f in fields(target_type) if "json" in f.metadata}
|
|
68
|
+
|
|
65
69
|
kwargs = {}
|
|
66
70
|
for key, value in data.items():
|
|
67
|
-
if key in field_types
|
|
68
|
-
|
|
71
|
+
name = key if key in field_types else aliases.get(key)
|
|
72
|
+
if name is not None:
|
|
73
|
+
kwargs[name] = _convert_value(field_types[name], value)
|
|
69
74
|
|
|
70
75
|
return target_type(**kwargs)
|
|
71
76
|
|
|
@@ -13,6 +13,7 @@ from . import monitor
|
|
|
13
13
|
from . import oss
|
|
14
14
|
from . import ray
|
|
15
15
|
from . import registry
|
|
16
|
+
from . import sandbox
|
|
16
17
|
from . import volume
|
|
17
18
|
from . import workspace
|
|
18
19
|
|
|
@@ -29,6 +30,7 @@ __all__ = [
|
|
|
29
30
|
"oss",
|
|
30
31
|
"ray",
|
|
31
32
|
"registry",
|
|
33
|
+
"sandbox",
|
|
32
34
|
"volume",
|
|
33
35
|
"workspace",
|
|
34
36
|
]
|
|
@@ -10,6 +10,11 @@ from .actions import (
|
|
|
10
10
|
list_billing_details,
|
|
11
11
|
list_project_consolidations,
|
|
12
12
|
list_tenant_consolidations,
|
|
13
|
+
get_overview_consolidation_async,
|
|
14
|
+
get_provision_consolidation_async,
|
|
15
|
+
list_billing_details_async,
|
|
16
|
+
list_project_consolidations_async,
|
|
17
|
+
list_tenant_consolidations_async,
|
|
13
18
|
)
|
|
14
19
|
|
|
15
20
|
# Re-export models
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Code generated by generate_openapi.py. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from yicloud.base import msgs
|
|
5
|
+
from yicloud.services.bc import models
|
|
6
|
+
from yicloud.services.bc.client import client
|
|
7
|
+
|
|
8
|
+
_PRODUCT_CODE = "bc"
|
|
9
|
+
_LAST_VERSION = "v1alpha1"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_overview_consolidation(ctx: Optional[dict], req: models.GetOverviewConsolidationReq) -> models.GetOverviewConsolidationData:
|
|
13
|
+
"""查询总览维度月度账单
|
|
14
|
+
查询总览维度月度账单
|
|
15
|
+
GET /bc/v1alpha1/GetOverviewConsolidation
|
|
16
|
+
Action: GetOverviewConsolidation
|
|
17
|
+
|
|
18
|
+
Returns GetOverviewConsolidationData on success.
|
|
19
|
+
Raises YiCloudException on error.
|
|
20
|
+
"""
|
|
21
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetOverviewConsolidation"
|
|
22
|
+
rsp = msgs.Rsp[models.GetOverviewConsolidationData]()
|
|
23
|
+
client.base.get(ctx, path, req, rsp)
|
|
24
|
+
return rsp.get_typed_data()
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
async def get_overview_consolidation_async(ctx: Optional[dict], req: models.GetOverviewConsolidationReq) -> models.GetOverviewConsolidationData:
|
|
28
|
+
"""查询总览维度月度账单(异步)
|
|
29
|
+
查询总览维度月度账单
|
|
30
|
+
GET /bc/v1alpha1/GetOverviewConsolidation
|
|
31
|
+
Action: GetOverviewConsolidation
|
|
32
|
+
|
|
33
|
+
Returns GetOverviewConsolidationData on success.
|
|
34
|
+
Raises YiCloudException on error.
|
|
35
|
+
"""
|
|
36
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetOverviewConsolidation"
|
|
37
|
+
rsp = msgs.Rsp[models.GetOverviewConsolidationData]()
|
|
38
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
39
|
+
return rsp.get_typed_data()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def get_provision_consolidation(ctx: Optional[dict], req: models.GetProvisionConsolidationReq) -> models.GetProvisionConsolidationData:
|
|
43
|
+
"""查询供给方式维度月度账单
|
|
44
|
+
查询供给方式维度月度账单
|
|
45
|
+
GET /bc/v1alpha1/GetProvisionConsolidation
|
|
46
|
+
Action: GetProvisionConsolidation
|
|
47
|
+
|
|
48
|
+
Returns GetProvisionConsolidationData on success.
|
|
49
|
+
Raises YiCloudException on error.
|
|
50
|
+
"""
|
|
51
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetProvisionConsolidation"
|
|
52
|
+
rsp = msgs.Rsp[models.GetProvisionConsolidationData]()
|
|
53
|
+
client.base.get(ctx, path, req, rsp)
|
|
54
|
+
return rsp.get_typed_data()
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
async def get_provision_consolidation_async(ctx: Optional[dict], req: models.GetProvisionConsolidationReq) -> models.GetProvisionConsolidationData:
|
|
58
|
+
"""查询供给方式维度月度账单(异步)
|
|
59
|
+
查询供给方式维度月度账单
|
|
60
|
+
GET /bc/v1alpha1/GetProvisionConsolidation
|
|
61
|
+
Action: GetProvisionConsolidation
|
|
62
|
+
|
|
63
|
+
Returns GetProvisionConsolidationData on success.
|
|
64
|
+
Raises YiCloudException on error.
|
|
65
|
+
"""
|
|
66
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetProvisionConsolidation"
|
|
67
|
+
rsp = msgs.Rsp[models.GetProvisionConsolidationData]()
|
|
68
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
69
|
+
return rsp.get_typed_data()
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def list_billing_details(ctx: Optional[dict], req: models.ListBillingDetailsReq) -> models.ListBillingDetailsData:
|
|
73
|
+
"""查询账单详情列表
|
|
74
|
+
查询账单明细列表或私有机器使用记录列表
|
|
75
|
+
GET /bc/v1alpha1/ListBillingDetails
|
|
76
|
+
Action: ListBillingDetails
|
|
77
|
+
|
|
78
|
+
Returns ListBillingDetailsData on success.
|
|
79
|
+
Raises YiCloudException on error.
|
|
80
|
+
"""
|
|
81
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListBillingDetails"
|
|
82
|
+
rsp = msgs.Rsp[models.ListBillingDetailsData]()
|
|
83
|
+
client.base.get(ctx, path, req, rsp)
|
|
84
|
+
return rsp.get_typed_data()
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
async def list_billing_details_async(ctx: Optional[dict], req: models.ListBillingDetailsReq) -> models.ListBillingDetailsData:
|
|
88
|
+
"""查询账单详情列表(异步)
|
|
89
|
+
查询账单明细列表或私有机器使用记录列表
|
|
90
|
+
GET /bc/v1alpha1/ListBillingDetails
|
|
91
|
+
Action: ListBillingDetails
|
|
92
|
+
|
|
93
|
+
Returns ListBillingDetailsData on success.
|
|
94
|
+
Raises YiCloudException on error.
|
|
95
|
+
"""
|
|
96
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListBillingDetails"
|
|
97
|
+
rsp = msgs.Rsp[models.ListBillingDetailsData]()
|
|
98
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
99
|
+
return rsp.get_typed_data()
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def list_project_consolidations(ctx: Optional[dict], req: models.ListProjectConsolidationsReq) -> models.ListProjectConsolidationsData:
|
|
103
|
+
"""查询项目维度月度账单列表
|
|
104
|
+
查询项目维度月度账单列表
|
|
105
|
+
GET /bc/v1alpha1/ListProjectConsolidations
|
|
106
|
+
Action: ListProjectConsolidations
|
|
107
|
+
|
|
108
|
+
Returns ListProjectConsolidationsData on success.
|
|
109
|
+
Raises YiCloudException on error.
|
|
110
|
+
"""
|
|
111
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListProjectConsolidations"
|
|
112
|
+
rsp = msgs.Rsp[models.ListProjectConsolidationsData]()
|
|
113
|
+
client.base.get(ctx, path, req, rsp)
|
|
114
|
+
return rsp.get_typed_data()
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
async def list_project_consolidations_async(ctx: Optional[dict], req: models.ListProjectConsolidationsReq) -> models.ListProjectConsolidationsData:
|
|
118
|
+
"""查询项目维度月度账单列表(异步)
|
|
119
|
+
查询项目维度月度账单列表
|
|
120
|
+
GET /bc/v1alpha1/ListProjectConsolidations
|
|
121
|
+
Action: ListProjectConsolidations
|
|
122
|
+
|
|
123
|
+
Returns ListProjectConsolidationsData on success.
|
|
124
|
+
Raises YiCloudException on error.
|
|
125
|
+
"""
|
|
126
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListProjectConsolidations"
|
|
127
|
+
rsp = msgs.Rsp[models.ListProjectConsolidationsData]()
|
|
128
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
129
|
+
return rsp.get_typed_data()
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def list_tenant_consolidations(ctx: Optional[dict], req: models.ListTenantConsolidationsReq) -> models.ListTenantConsolidationsData:
|
|
133
|
+
"""查询租户维度月度账单列表
|
|
134
|
+
查询租户维度月度账单列表
|
|
135
|
+
GET /bc/v1alpha1/ListTenantConsolidations
|
|
136
|
+
Action: ListTenantConsolidations
|
|
137
|
+
|
|
138
|
+
Returns ListTenantConsolidationsData on success.
|
|
139
|
+
Raises YiCloudException on error.
|
|
140
|
+
"""
|
|
141
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListTenantConsolidations"
|
|
142
|
+
rsp = msgs.Rsp[models.ListTenantConsolidationsData]()
|
|
143
|
+
client.base.get(ctx, path, req, rsp)
|
|
144
|
+
return rsp.get_typed_data()
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
async def list_tenant_consolidations_async(ctx: Optional[dict], req: models.ListTenantConsolidationsReq) -> models.ListTenantConsolidationsData:
|
|
148
|
+
"""查询租户维度月度账单列表(异步)
|
|
149
|
+
查询租户维度月度账单列表
|
|
150
|
+
GET /bc/v1alpha1/ListTenantConsolidations
|
|
151
|
+
Action: ListTenantConsolidations
|
|
152
|
+
|
|
153
|
+
Returns ListTenantConsolidationsData on success.
|
|
154
|
+
Raises YiCloudException on error.
|
|
155
|
+
"""
|
|
156
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListTenantConsolidations"
|
|
157
|
+
rsp = msgs.Rsp[models.ListTenantConsolidationsData]()
|
|
158
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
159
|
+
return rsp.get_typed_data()
|
|
160
|
+
|
|
@@ -15,6 +15,16 @@ from .actions import (
|
|
|
15
15
|
list_data_sets,
|
|
16
16
|
update_dataset,
|
|
17
17
|
update_dataset_version,
|
|
18
|
+
create_dataset_async,
|
|
19
|
+
create_dataset_version_async,
|
|
20
|
+
delete_dataset_async,
|
|
21
|
+
delete_dataset_version_async,
|
|
22
|
+
get_dataset_async,
|
|
23
|
+
get_dataset_version_async,
|
|
24
|
+
list_dataset_versions_async,
|
|
25
|
+
list_data_sets_async,
|
|
26
|
+
update_dataset_async,
|
|
27
|
+
update_dataset_version_async,
|
|
18
28
|
)
|
|
19
29
|
|
|
20
30
|
# Re-export models
|