yicloud-sdk-python 0.3.1__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.
Files changed (104) hide show
  1. {yicloud_sdk_python-0.3.1/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.4.0}/PKG-INFO +9 -7
  2. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/README.md +8 -6
  3. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/pyproject.toml +1 -1
  4. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/version.py +1 -1
  5. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/__init__.py +1 -1
  6. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/__init__.py +4 -0
  7. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/client.py +53 -0
  8. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/config.py +7 -0
  9. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/msgs/__init__.py +7 -2
  10. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/__init__.py +5 -0
  11. yicloud_sdk_python-0.4.0/yicloud/services/bc/actions.py +160 -0
  12. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/__init__.py +10 -0
  13. yicloud_sdk_python-0.4.0/yicloud/services/dataset/actions.py +300 -0
  14. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/models.py +4 -4
  15. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/__init__.py +12 -0
  16. yicloud_sdk_python-0.4.0/yicloud/services/fs/actions.py +272 -0
  17. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/models.py +20 -8
  18. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/__init__.py +12 -0
  19. yicloud_sdk_python-0.4.0/yicloud/services/iam/actions.py +358 -0
  20. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/__init__.py +57 -1
  21. yicloud_sdk_python-0.4.0/yicloud/services/inferset/actions.py +618 -0
  22. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/models.py +228 -4
  23. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/job/__init__.py +26 -4
  24. yicloud_sdk_python-0.4.0/yicloud/services/job/actions.py +402 -0
  25. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/job/models.py +94 -31
  26. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/__init__.py +46 -1
  27. yicloud_sdk_python-0.4.0/yicloud/services/mc/actions.py +860 -0
  28. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/models.py +105 -9
  29. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/__init__.py +11 -0
  30. yicloud_sdk_python-0.4.0/yicloud/services/modelrepo/actions.py +330 -0
  31. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/models.py +18 -28
  32. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/__init__.py +1 -0
  33. yicloud_sdk_python-0.4.0/yicloud/services/monitor/actions.py +40 -0
  34. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/__init__.py +5 -0
  35. yicloud_sdk_python-0.4.0/yicloud/services/oss/actions.py +160 -0
  36. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/models.py +18 -18
  37. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/__init__.py +9 -0
  38. yicloud_sdk_python-0.4.0/yicloud/services/ray/actions.py +272 -0
  39. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/models.py +10 -0
  40. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/__init__.py +12 -2
  41. yicloud_sdk_python-0.4.0/yicloud/services/registry/actions.py +272 -0
  42. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/models.py +50 -15
  43. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/sandbox/__init__.py +19 -0
  44. yicloud_sdk_python-0.4.0/yicloud/services/sandbox/actions.py +574 -0
  45. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/sandbox/models.py +10 -8
  46. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/__init__.py +13 -1
  47. yicloud_sdk_python-0.4.0/yicloud/services/volume/actions.py +364 -0
  48. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/models.py +44 -31
  49. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/__init__.py +21 -3
  50. yicloud_sdk_python-0.4.0/yicloud/services/workspace/actions.py +608 -0
  51. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/models.py +64 -37
  52. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0/yicloud_sdk_python.egg-info}/PKG-INFO +9 -7
  53. yicloud_sdk_python-0.3.1/yicloud/services/bc/actions.py +0 -70
  54. yicloud_sdk_python-0.3.1/yicloud/services/dataset/actions.py +0 -125
  55. yicloud_sdk_python-0.3.1/yicloud/services/fs/actions.py +0 -102
  56. yicloud_sdk_python-0.3.1/yicloud/services/iam/actions.py +0 -148
  57. yicloud_sdk_python-0.3.1/yicloud/services/inferset/actions.py +0 -173
  58. yicloud_sdk_python-0.3.1/yicloud/services/job/actions.py +0 -163
  59. yicloud_sdk_python-0.3.1/yicloud/services/mc/actions.py +0 -312
  60. yicloud_sdk_python-0.3.1/yicloud/services/modelrepo/actions.py +0 -137
  61. yicloud_sdk_python-0.3.1/yicloud/services/monitor/actions.py +0 -22
  62. yicloud_sdk_python-0.3.1/yicloud/services/oss/actions.py +0 -70
  63. yicloud_sdk_python-0.3.1/yicloud/services/ray/actions.py +0 -114
  64. yicloud_sdk_python-0.3.1/yicloud/services/registry/actions.py +0 -114
  65. yicloud_sdk_python-0.3.1/yicloud/services/sandbox/actions.py +0 -273
  66. yicloud_sdk_python-0.3.1/yicloud/services/volume/actions.py +0 -151
  67. yicloud_sdk_python-0.3.1/yicloud/services/workspace/actions.py +0 -253
  68. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/LICENSE +0 -0
  69. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/setup.cfg +0 -0
  70. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/__init__.py +0 -0
  71. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/credential.py +0 -0
  72. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/auth/sign.py +0 -0
  73. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/errs/__init__.py +0 -0
  74. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/log/__init__.py +0 -0
  75. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/log/logger.py +0 -0
  76. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/log/std.py +0 -0
  77. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/__init__.py +0 -0
  78. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/helps.py +0 -0
  79. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/retry/__init__.py +0 -0
  80. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/base/utils/retry/retry.py +0 -0
  81. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/__init__.py +0 -0
  82. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/client.py +0 -0
  83. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/bc/models.py +0 -0
  84. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/dataset/client.py +0 -0
  85. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/fs/client.py +0 -0
  86. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/client.py +0 -0
  87. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/iam/models.py +0 -0
  88. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/inferset/client.py +0 -0
  89. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/job/client.py +0 -0
  90. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/mc/client.py +0 -0
  91. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/modelrepo/client.py +0 -0
  92. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/client.py +0 -0
  93. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/monitor/models.py +0 -0
  94. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/oss/client.py +0 -0
  95. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/ray/client.py +0 -0
  96. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/registry/client.py +0 -0
  97. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/sandbox/client.py +0 -0
  98. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/volume/client.py +0 -0
  99. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud/services/workspace/client.py +0 -0
  100. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/SOURCES.txt +0 -0
  101. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  102. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  103. {yicloud_sdk_python-0.3.1 → yicloud_sdk_python-0.4.0}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  104. {yicloud_sdk_python-0.3.1 → 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.1
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` | 8 | 文件系统 FS |
114
+ | FS | `yicloud.services.fs` | 9 | 文件系统 FS |
115
115
  | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
116
- | Inferset | `yicloud.services.inferset` | 14 | 模型推理服务 INFERSET |
116
+ | Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
117
117
  | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
118
- | MC | `yicloud.services.mc` | 26 | 管理中心 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` | 12 | 镜像仓库 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` | 21 | 开发机 WS |
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 (14 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` | 8 | 文件系统 FS |
75
+ | FS | `yicloud.services.fs` | 9 | 文件系统 FS |
76
76
  | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
77
- | Inferset | `yicloud.services.inferset` | 14 | 模型推理服务 INFERSET |
77
+ | Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
78
78
  | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
79
- | MC | `yicloud.services.mc` | 26 | 管理中心 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` | 12 | 镜像仓库 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` | 21 | 开发机 WS |
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 (14 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,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.3.1"
7
+ version = "0.4.0"
8
8
  description = "YiCloud OpenAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.1"
1
+ __version__ = "0.4.0"
2
2
 
3
3
 
4
4
  def Version() -> str:
@@ -4,4 +4,4 @@ YiCloud Python SDK
4
4
  A Python SDK for the YiCloud OpenAPI service.
5
5
  """
6
6
 
7
- __version__ = "0.3.1"
7
+ __version__ = "0.4.0"
@@ -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
- kwargs[key] = _convert_value(field_types[key], value)
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
 
@@ -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