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.

Files changed (49) hide show
  1. qubitclient/QubitSeg.py +3 -3
  2. qubitclient/__init__.py +2 -0
  3. qubitclient/curve/curve_type.py +15 -0
  4. qubitclient/scope/scope.py +51 -0
  5. qubitclient/scope/scope_api/__init__.py +8 -0
  6. qubitclient/scope/scope_api/api/__init__.py +1 -0
  7. qubitclient/scope/scope_api/api/defined_tasks/__init__.py +1 -0
  8. qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_demo_pk_get.py +155 -0
  9. qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_scope_pk_get.py +155 -0
  10. qubitclient/scope/scope_api/api/defined_tasks/optpipulse_api_v1_tasks_scope_optpipulse_post.py +218 -0
  11. qubitclient/scope/scope_api/api/defined_tasks/rabi_api_v1_tasks_scope_rabi_post.py +218 -0
  12. qubitclient/scope/scope_api/api/defined_tasks/rabicos_api_v1_tasks_scope_rabicospeak_post.py +218 -0
  13. qubitclient/scope/scope_api/api/defined_tasks/s21peak_api_v1_tasks_scope_s21peak_post.py +218 -0
  14. qubitclient/scope/scope_api/api/defined_tasks/s21vflux_api_v1_tasks_scope_s21vflux_post.py +218 -0
  15. qubitclient/scope/scope_api/api/defined_tasks/singleshot_api_v1_tasks_scope_singleshot_post.py +218 -0
  16. qubitclient/scope/scope_api/api/defined_tasks/spectrum_api_v1_tasks_scope_spectrum_post.py +218 -0
  17. qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t1fit_post.py +218 -0
  18. qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t2fit_post.py +218 -0
  19. qubitclient/scope/scope_api/client.py +268 -0
  20. qubitclient/scope/scope_api/errors.py +16 -0
  21. qubitclient/scope/scope_api/models/__init__.py +27 -0
  22. qubitclient/scope/scope_api/models/body_optpipulse_api_v1_tasks_scope_optpipulse_post.py +83 -0
  23. qubitclient/scope/scope_api/models/body_rabi_api_v1_tasks_scope_rabi_post.py +83 -0
  24. qubitclient/scope/scope_api/models/body_rabicos_api_v1_tasks_scope_rabicospeak_post.py +83 -0
  25. qubitclient/scope/scope_api/models/body_s21_peak_api_v1_tasks_scope_s21_peak_post.py +83 -0
  26. qubitclient/scope/scope_api/models/body_s21_vflux_api_v1_tasks_scope_s21_vflux_post.py +83 -0
  27. qubitclient/scope/scope_api/models/body_singleshot_api_v1_tasks_scope_singleshot_post.py +83 -0
  28. qubitclient/scope/scope_api/models/body_spectrum_api_v1_tasks_scope_spectrum_post.py +83 -0
  29. qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t1_fit_post.py +83 -0
  30. qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t2_fit_post.py +83 -0
  31. qubitclient/scope/scope_api/models/http_validation_error.py +75 -0
  32. qubitclient/scope/scope_api/models/validation_error.py +88 -0
  33. qubitclient/scope/scope_api/py.typed +1 -0
  34. qubitclient/scope/scope_api/types.py +54 -0
  35. qubitclient/scope/task.py +140 -0
  36. qubitclient/scope/utils/__init__.py +0 -0
  37. qubitclient/scope/utils/data_parser.py +20 -0
  38. qubitclient/utils/data_convert.py +112 -0
  39. qubitclient/utils/data_parser.py +41 -0
  40. qubitclient/utils/request_tool.py +41 -0
  41. qubitclient/utils/result_parser.py +55 -0
  42. qubitclient-0.0.1.dist-info/METADATA +106 -0
  43. qubitclient-0.0.1.dist-info/RECORD +47 -0
  44. qubitclient-0.0.0.1.dist-info/METADATA +0 -35
  45. qubitclient-0.0.0.1.dist-info/RECORD +0 -8
  46. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/WHEEL +0 -0
  47. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/licenses/LICENSE +0 -0
  48. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.1.dist-info}/top_level.txt +0 -0
  49. {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.confidence_type = curve_type
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.confidence_type)
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.confidence_type)
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
@@ -1 +1,3 @@
1
1
  from .curve.curve_type import CurveType # noqa: F401
2
+ from .scope.scope import QubitScopeClient
3
+ from .scope.task import TaskName
@@ -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,8 @@
1
+ """A client library for accessing FastAPI"""
2
+
3
+ from .client import AuthenticatedClient, Client
4
+
5
+ __all__ = (
6
+ "AuthenticatedClient",
7
+ "Client",
8
+ )
@@ -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
@@ -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