qubitclient 0.0.0.1__py3-none-any.whl → 0.0.1__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.
Potentially problematic release.
This version of qubitclient might be problematic. Click here for more details.
- qubitclient/QubitSeg.py +3 -3
- qubitclient/__init__.py +2 -0
- qubitclient/curve/curve_type.py +15 -0
- qubitclient/scope/scope.py +51 -0
- qubitclient/scope/scope_api/__init__.py +8 -0
- qubitclient/scope/scope_api/api/__init__.py +1 -0
- qubitclient/scope/scope_api/api/defined_tasks/__init__.py +1 -0
- qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_demo_pk_get.py +155 -0
- qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_scope_pk_get.py +155 -0
- qubitclient/scope/scope_api/api/defined_tasks/optpipulse_api_v1_tasks_scope_optpipulse_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/rabi_api_v1_tasks_scope_rabi_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/rabicos_api_v1_tasks_scope_rabicospeak_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/s21peak_api_v1_tasks_scope_s21peak_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/s21vflux_api_v1_tasks_scope_s21vflux_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/singleshot_api_v1_tasks_scope_singleshot_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/spectrum_api_v1_tasks_scope_spectrum_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t1fit_post.py +218 -0
- qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t2fit_post.py +218 -0
- qubitclient/scope/scope_api/client.py +268 -0
- qubitclient/scope/scope_api/errors.py +16 -0
- qubitclient/scope/scope_api/models/__init__.py +27 -0
- qubitclient/scope/scope_api/models/body_optpipulse_api_v1_tasks_scope_optpipulse_post.py +83 -0
- qubitclient/scope/scope_api/models/body_rabi_api_v1_tasks_scope_rabi_post.py +83 -0
- qubitclient/scope/scope_api/models/body_rabicos_api_v1_tasks_scope_rabicospeak_post.py +83 -0
- qubitclient/scope/scope_api/models/body_s21_peak_api_v1_tasks_scope_s21_peak_post.py +83 -0
- qubitclient/scope/scope_api/models/body_s21_vflux_api_v1_tasks_scope_s21_vflux_post.py +83 -0
- qubitclient/scope/scope_api/models/body_singleshot_api_v1_tasks_scope_singleshot_post.py +83 -0
- qubitclient/scope/scope_api/models/body_spectrum_api_v1_tasks_scope_spectrum_post.py +83 -0
- qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t1_fit_post.py +83 -0
- qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t2_fit_post.py +83 -0
- qubitclient/scope/scope_api/models/http_validation_error.py +75 -0
- qubitclient/scope/scope_api/models/validation_error.py +88 -0
- qubitclient/scope/scope_api/py.typed +1 -0
- qubitclient/scope/scope_api/types.py +54 -0
- qubitclient/scope/task.py +140 -0
- qubitclient/scope/utils/__init__.py +0 -0
- qubitclient/scope/utils/data_parser.py +20 -0
- qubitclient/utils/data_convert.py +112 -0
- qubitclient/utils/data_parser.py +41 -0
- qubitclient/utils/request_tool.py +41 -0
- qubitclient/utils/result_parser.py +55 -0
- qubitclient-0.0.1.dist-info/METADATA +106 -0
- qubitclient-0.0.1.dist-info/RECORD +47 -0
- qubitclient-0.0.0.1.dist-info/METADATA +0 -35
- qubitclient-0.0.0.1.dist-info/RECORD +0 -8
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/WHEEL +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/licenses/LICENSE +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/top_level.txt +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/zip-safe +0 -0
qubitclient/QubitSeg.py
CHANGED
|
@@ -23,13 +23,13 @@ class QubitSegClient(object):
|
|
|
23
23
|
def __init__(self, url, api_key,curve_type:CurveType=None):
|
|
24
24
|
self.url = url
|
|
25
25
|
self.api_key = api_key
|
|
26
|
-
self.
|
|
26
|
+
self.curve_type = curve_type
|
|
27
27
|
def request(self, file_list:list[str|dict[str,np.ndarray]]):
|
|
28
28
|
if len(file_list)>0:
|
|
29
29
|
if type(file_list[0]) == str:
|
|
30
|
-
response = file_request(file_path_list=file_list,url=self.url,api_key=self.api_key,curve_type=self.
|
|
30
|
+
response = file_request(file_path_list=file_list,url=self.url,api_key=self.api_key,curve_type=self.curve_type)
|
|
31
31
|
elif type(file_list[0]) == dict:# 多个content字典
|
|
32
|
-
response = file_request_with_dict(dict_list=file_list,url=self.url,api_key=self.api_key,curve_type=self.
|
|
32
|
+
response = file_request_with_dict(dict_list=file_list,url=self.url,api_key=self.api_key,curve_type=self.curve_type)
|
|
33
33
|
else:
|
|
34
34
|
raise ValueError("file_list must be a list of str or dict")
|
|
35
35
|
else:
|
qubitclient/__init__.py
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Copyright (c) 2025 yaqiang.sun.
|
|
3
|
+
# This source code is licensed under the license found in the LICENSE file
|
|
4
|
+
# in the root directory of this source tree.
|
|
5
|
+
#########################################################################
|
|
6
|
+
# Author: yaqiangsun
|
|
7
|
+
# Created Time: 2025/06/06 16:52:53
|
|
8
|
+
########################################################################
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
from enum import Enum
|
|
12
|
+
|
|
13
|
+
class CurveType(str, Enum):
|
|
14
|
+
COSINE = "cosin"
|
|
15
|
+
POLY = "poly"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Copyright (c) 2025 yaqiang.sun.
|
|
3
|
+
# This source code is licensed under the license found in the LICENSE file
|
|
4
|
+
# in the root directory of this source tree.
|
|
5
|
+
#########################################################################
|
|
6
|
+
# Author: yaqiangsun
|
|
7
|
+
# Created Time: 2025/10/20 18:13:37
|
|
8
|
+
########################################################################
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
import os
|
|
12
|
+
# import cv2
|
|
13
|
+
import numpy as np
|
|
14
|
+
import sys
|
|
15
|
+
# 获取当前文件的绝对路径,向上两层就是项目根目录
|
|
16
|
+
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
17
|
+
if project_root not in sys.path:
|
|
18
|
+
sys.path.insert(0, project_root)
|
|
19
|
+
#
|
|
20
|
+
# `scope_api_client`: this package is generated by `openapi-python-client`
|
|
21
|
+
from .scope_api import Client
|
|
22
|
+
from .task import run_task
|
|
23
|
+
import logging
|
|
24
|
+
import numpy as np
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
logging.basicConfig(level=logging.INFO)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class QubitScopeClient(object):
|
|
32
|
+
def __init__(self, url, api_key):
|
|
33
|
+
self.url = url
|
|
34
|
+
self.api_key = api_key
|
|
35
|
+
self.client = Client(base_url=url)
|
|
36
|
+
|
|
37
|
+
def request(self, file_list:list[str|dict[str,np.ndarray]],task_type:str="s21peak"):
|
|
38
|
+
if len(file_list)>0:
|
|
39
|
+
response = run_task(self.client,file_list,task_type)
|
|
40
|
+
else:
|
|
41
|
+
raise ValueError("file_list must not be empty")
|
|
42
|
+
return response
|
|
43
|
+
def get_result(self,response):
|
|
44
|
+
if response.status_code == 200:
|
|
45
|
+
logging.info("Result: %s", response.parsed)
|
|
46
|
+
result = response.parsed
|
|
47
|
+
return result
|
|
48
|
+
else:
|
|
49
|
+
logging.error("Error: %s %s", response.status_code, response.parsed)
|
|
50
|
+
return []
|
|
51
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains methods for accessing the API"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains endpoint functions for accessing the API"""
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from ... import errors
|
|
7
|
+
from ...client import AuthenticatedClient, Client
|
|
8
|
+
from ...models.http_validation_error import HTTPValidationError
|
|
9
|
+
from ...types import Response
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _get_kwargs(
|
|
13
|
+
pk: int,
|
|
14
|
+
) -> dict[str, Any]:
|
|
15
|
+
_kwargs: dict[str, Any] = {
|
|
16
|
+
"method": "get",
|
|
17
|
+
"url": f"/api/v1/tasks/demo/{pk}",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return _kwargs
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _parse_response(
|
|
24
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
25
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
26
|
+
if response.status_code == 200:
|
|
27
|
+
response_200 = response.json()
|
|
28
|
+
return response_200
|
|
29
|
+
|
|
30
|
+
if response.status_code == 422:
|
|
31
|
+
response_422 = HTTPValidationError.from_dict(response.json())
|
|
32
|
+
|
|
33
|
+
return response_422
|
|
34
|
+
|
|
35
|
+
if client.raise_on_unexpected_status:
|
|
36
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
37
|
+
else:
|
|
38
|
+
return None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _build_response(
|
|
42
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
43
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
44
|
+
return Response(
|
|
45
|
+
status_code=HTTPStatus(response.status_code),
|
|
46
|
+
content=response.content,
|
|
47
|
+
headers=response.headers,
|
|
48
|
+
parsed=_parse_response(client=client, response=response),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def sync_detailed(
|
|
53
|
+
pk: int,
|
|
54
|
+
*,
|
|
55
|
+
client: Union[AuthenticatedClient, Client],
|
|
56
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
57
|
+
"""获取任务结果详情
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
pk (int): 任务结果 ID
|
|
61
|
+
|
|
62
|
+
Raises:
|
|
63
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
64
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
Response[Union[Any, HTTPValidationError]]
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
kwargs = _get_kwargs(
|
|
71
|
+
pk=pk,
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
response = client.get_httpx_client().request(
|
|
75
|
+
**kwargs,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
return _build_response(client=client, response=response)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def sync(
|
|
82
|
+
pk: int,
|
|
83
|
+
*,
|
|
84
|
+
client: Union[AuthenticatedClient, Client],
|
|
85
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
86
|
+
"""获取任务结果详情
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
pk (int): 任务结果 ID
|
|
90
|
+
|
|
91
|
+
Raises:
|
|
92
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
93
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
Union[Any, HTTPValidationError]
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
return sync_detailed(
|
|
100
|
+
pk=pk,
|
|
101
|
+
client=client,
|
|
102
|
+
).parsed
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
async def asyncio_detailed(
|
|
106
|
+
pk: int,
|
|
107
|
+
*,
|
|
108
|
+
client: Union[AuthenticatedClient, Client],
|
|
109
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
110
|
+
"""获取任务结果详情
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
pk (int): 任务结果 ID
|
|
114
|
+
|
|
115
|
+
Raises:
|
|
116
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
117
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
Response[Union[Any, HTTPValidationError]]
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
kwargs = _get_kwargs(
|
|
124
|
+
pk=pk,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
128
|
+
|
|
129
|
+
return _build_response(client=client, response=response)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
async def asyncio(
|
|
133
|
+
pk: int,
|
|
134
|
+
*,
|
|
135
|
+
client: Union[AuthenticatedClient, Client],
|
|
136
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
137
|
+
"""获取任务结果详情
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
pk (int): 任务结果 ID
|
|
141
|
+
|
|
142
|
+
Raises:
|
|
143
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
144
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
Union[Any, HTTPValidationError]
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
return (
|
|
151
|
+
await asyncio_detailed(
|
|
152
|
+
pk=pk,
|
|
153
|
+
client=client,
|
|
154
|
+
)
|
|
155
|
+
).parsed
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from ... import errors
|
|
7
|
+
from ...client import AuthenticatedClient, Client
|
|
8
|
+
from ...models.http_validation_error import HTTPValidationError
|
|
9
|
+
from ...types import Response
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _get_kwargs(
|
|
13
|
+
pk: int,
|
|
14
|
+
) -> dict[str, Any]:
|
|
15
|
+
_kwargs: dict[str, Any] = {
|
|
16
|
+
"method": "get",
|
|
17
|
+
"url": f"/api/v1/tasks/scope/{pk}",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return _kwargs
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _parse_response(
|
|
24
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
25
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
26
|
+
if response.status_code == 200:
|
|
27
|
+
response_200 = response.json()
|
|
28
|
+
return response_200
|
|
29
|
+
|
|
30
|
+
if response.status_code == 422:
|
|
31
|
+
response_422 = HTTPValidationError.from_dict(response.json())
|
|
32
|
+
|
|
33
|
+
return response_422
|
|
34
|
+
|
|
35
|
+
if client.raise_on_unexpected_status:
|
|
36
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
37
|
+
else:
|
|
38
|
+
return None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _build_response(
|
|
42
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
43
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
44
|
+
return Response(
|
|
45
|
+
status_code=HTTPStatus(response.status_code),
|
|
46
|
+
content=response.content,
|
|
47
|
+
headers=response.headers,
|
|
48
|
+
parsed=_parse_response(client=client, response=response),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def sync_detailed(
|
|
53
|
+
pk: int,
|
|
54
|
+
*,
|
|
55
|
+
client: Union[AuthenticatedClient, Client],
|
|
56
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
57
|
+
"""获取任务结果详情
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
pk (int): 任务结果 ID
|
|
61
|
+
|
|
62
|
+
Raises:
|
|
63
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
64
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
Response[Union[Any, HTTPValidationError]]
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
kwargs = _get_kwargs(
|
|
71
|
+
pk=pk,
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
response = client.get_httpx_client().request(
|
|
75
|
+
**kwargs,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
return _build_response(client=client, response=response)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def sync(
|
|
82
|
+
pk: int,
|
|
83
|
+
*,
|
|
84
|
+
client: Union[AuthenticatedClient, Client],
|
|
85
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
86
|
+
"""获取任务结果详情
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
pk (int): 任务结果 ID
|
|
90
|
+
|
|
91
|
+
Raises:
|
|
92
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
93
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
Union[Any, HTTPValidationError]
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
return sync_detailed(
|
|
100
|
+
pk=pk,
|
|
101
|
+
client=client,
|
|
102
|
+
).parsed
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
async def asyncio_detailed(
|
|
106
|
+
pk: int,
|
|
107
|
+
*,
|
|
108
|
+
client: Union[AuthenticatedClient, Client],
|
|
109
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
110
|
+
"""获取任务结果详情
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
pk (int): 任务结果 ID
|
|
114
|
+
|
|
115
|
+
Raises:
|
|
116
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
117
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
Response[Union[Any, HTTPValidationError]]
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
kwargs = _get_kwargs(
|
|
124
|
+
pk=pk,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
128
|
+
|
|
129
|
+
return _build_response(client=client, response=response)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
async def asyncio(
|
|
133
|
+
pk: int,
|
|
134
|
+
*,
|
|
135
|
+
client: Union[AuthenticatedClient, Client],
|
|
136
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
137
|
+
"""获取任务结果详情
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
pk (int): 任务结果 ID
|
|
141
|
+
|
|
142
|
+
Raises:
|
|
143
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
144
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
Union[Any, HTTPValidationError]
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
return (
|
|
151
|
+
await asyncio_detailed(
|
|
152
|
+
pk=pk,
|
|
153
|
+
client=client,
|
|
154
|
+
)
|
|
155
|
+
).parsed
|
qubitclient/scope/scope_api/api/defined_tasks/optpipulse_api_v1_tasks_scope_optpipulse_post.py
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from ... import errors
|
|
7
|
+
from ...client import AuthenticatedClient, Client
|
|
8
|
+
from ...models.body_optpipulse_api_v1_tasks_scope_optpipulse_post import BodyOptpipulseApiV1TasksScopeOptpipulsePost
|
|
9
|
+
from ...models.http_validation_error import HTTPValidationError
|
|
10
|
+
from ...types import UNSET, Response, Unset
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _get_kwargs(
|
|
14
|
+
*,
|
|
15
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost,
|
|
16
|
+
type_: Union[Unset, str] = "optpipulse",
|
|
17
|
+
) -> dict[str, Any]:
|
|
18
|
+
headers: dict[str, Any] = {}
|
|
19
|
+
|
|
20
|
+
params: dict[str, Any] = {}
|
|
21
|
+
|
|
22
|
+
params["type"] = type_
|
|
23
|
+
|
|
24
|
+
params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
|
|
25
|
+
|
|
26
|
+
_kwargs: dict[str, Any] = {
|
|
27
|
+
"method": "post",
|
|
28
|
+
"url": "/api/v1/tasks/scope/optpipulse",
|
|
29
|
+
"params": params,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_kwargs["files"] = body.to_multipart()
|
|
33
|
+
|
|
34
|
+
_kwargs["headers"] = headers
|
|
35
|
+
return _kwargs
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _parse_response(
|
|
39
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
40
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
41
|
+
if response.status_code == 200:
|
|
42
|
+
response_200 = response.json()
|
|
43
|
+
return response_200
|
|
44
|
+
|
|
45
|
+
if response.status_code == 422:
|
|
46
|
+
response_422 = HTTPValidationError.from_dict(response.json())
|
|
47
|
+
|
|
48
|
+
return response_422
|
|
49
|
+
|
|
50
|
+
if client.raise_on_unexpected_status:
|
|
51
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
52
|
+
else:
|
|
53
|
+
return None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _build_response(
|
|
57
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
58
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
59
|
+
return Response(
|
|
60
|
+
status_code=HTTPStatus(response.status_code),
|
|
61
|
+
content=response.content,
|
|
62
|
+
headers=response.headers,
|
|
63
|
+
parsed=_parse_response(client=client, response=response),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def sync_detailed(
|
|
68
|
+
*,
|
|
69
|
+
client: Union[AuthenticatedClient, Client],
|
|
70
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost,
|
|
71
|
+
type_: Union[Unset, str] = "optpipulse",
|
|
72
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
73
|
+
r"""Optpipulse
|
|
74
|
+
|
|
75
|
+
t2 fit
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
files: 上传的.npy文件列表
|
|
79
|
+
type: 任务类型,默认为\"s21peak\"
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
dict: 包含检测结果的字典
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
type_ (Union[Unset, str]): 任务类型 Default: 'optpipulse'.
|
|
86
|
+
body (BodyOptpipulseApiV1TasksScopeOptpipulsePost):
|
|
87
|
+
|
|
88
|
+
Raises:
|
|
89
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
90
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
91
|
+
|
|
92
|
+
Returns:
|
|
93
|
+
Response[Union[Any, HTTPValidationError]]
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
kwargs = _get_kwargs(
|
|
97
|
+
body=body,
|
|
98
|
+
type_=type_,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
response = client.get_httpx_client().request(
|
|
102
|
+
**kwargs,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return _build_response(client=client, response=response)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def sync(
|
|
109
|
+
*,
|
|
110
|
+
client: Union[AuthenticatedClient, Client],
|
|
111
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost,
|
|
112
|
+
type_: Union[Unset, str] = "optpipulse",
|
|
113
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
114
|
+
r"""Optpipulse
|
|
115
|
+
|
|
116
|
+
t2 fit
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
files: 上传的.npy文件列表
|
|
120
|
+
type: 任务类型,默认为\"s21peak\"
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
dict: 包含检测结果的字典
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
type_ (Union[Unset, str]): 任务类型 Default: 'optpipulse'.
|
|
127
|
+
body (BodyOptpipulseApiV1TasksScopeOptpipulsePost):
|
|
128
|
+
|
|
129
|
+
Raises:
|
|
130
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
131
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
Union[Any, HTTPValidationError]
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
return sync_detailed(
|
|
138
|
+
client=client,
|
|
139
|
+
body=body,
|
|
140
|
+
type_=type_,
|
|
141
|
+
).parsed
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
async def asyncio_detailed(
|
|
145
|
+
*,
|
|
146
|
+
client: Union[AuthenticatedClient, Client],
|
|
147
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost,
|
|
148
|
+
type_: Union[Unset, str] = "optpipulse",
|
|
149
|
+
) -> Response[Union[Any, HTTPValidationError]]:
|
|
150
|
+
r"""Optpipulse
|
|
151
|
+
|
|
152
|
+
t2 fit
|
|
153
|
+
|
|
154
|
+
Args:
|
|
155
|
+
files: 上传的.npy文件列表
|
|
156
|
+
type: 任务类型,默认为\"s21peak\"
|
|
157
|
+
|
|
158
|
+
Returns:
|
|
159
|
+
dict: 包含检测结果的字典
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
type_ (Union[Unset, str]): 任务类型 Default: 'optpipulse'.
|
|
163
|
+
body (BodyOptpipulseApiV1TasksScopeOptpipulsePost):
|
|
164
|
+
|
|
165
|
+
Raises:
|
|
166
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
167
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
168
|
+
|
|
169
|
+
Returns:
|
|
170
|
+
Response[Union[Any, HTTPValidationError]]
|
|
171
|
+
"""
|
|
172
|
+
|
|
173
|
+
kwargs = _get_kwargs(
|
|
174
|
+
body=body,
|
|
175
|
+
type_=type_,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
179
|
+
|
|
180
|
+
return _build_response(client=client, response=response)
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
async def asyncio(
|
|
184
|
+
*,
|
|
185
|
+
client: Union[AuthenticatedClient, Client],
|
|
186
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost,
|
|
187
|
+
type_: Union[Unset, str] = "optpipulse",
|
|
188
|
+
) -> Optional[Union[Any, HTTPValidationError]]:
|
|
189
|
+
r"""Optpipulse
|
|
190
|
+
|
|
191
|
+
t2 fit
|
|
192
|
+
|
|
193
|
+
Args:
|
|
194
|
+
files: 上传的.npy文件列表
|
|
195
|
+
type: 任务类型,默认为\"s21peak\"
|
|
196
|
+
|
|
197
|
+
Returns:
|
|
198
|
+
dict: 包含检测结果的字典
|
|
199
|
+
|
|
200
|
+
Args:
|
|
201
|
+
type_ (Union[Unset, str]): 任务类型 Default: 'optpipulse'.
|
|
202
|
+
body (BodyOptpipulseApiV1TasksScopeOptpipulsePost):
|
|
203
|
+
|
|
204
|
+
Raises:
|
|
205
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
206
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
207
|
+
|
|
208
|
+
Returns:
|
|
209
|
+
Union[Any, HTTPValidationError]
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
return (
|
|
213
|
+
await asyncio_detailed(
|
|
214
|
+
client=client,
|
|
215
|
+
body=body,
|
|
216
|
+
type_=type_,
|
|
217
|
+
)
|
|
218
|
+
).parsed
|