qubitclient 0.0.0.1__py3-none-any.whl → 0.0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qubitclient might be problematic. Click here for more details.
- qubitclient/__init__.py +6 -1
- qubitclient/nnscope/nnscope.py +51 -0
- qubitclient/{QubitSeg.py → nnscope/nnscope_api/QubitSeg.py} +7 -7
- qubitclient/nnscope/nnscope_api/curve/__init__.py +0 -0
- qubitclient/nnscope/nnscope_api/curve/curve_type.py +15 -0
- qubitclient/nnscope/task.py +130 -0
- qubitclient/nnscope/utils/data_convert.py +114 -0
- qubitclient/nnscope/utils/data_parser.py +41 -0
- qubitclient/nnscope/utils/request_tool.py +41 -0
- qubitclient/nnscope/utils/result_parser.py +55 -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/spectrum2d_api_v1_tasks_scope_spectrum2d_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 +29 -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_2d_api_v1_tasks_scope_spectrum_2d_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/types.py +54 -0
- qubitclient/scope/task.py +147 -0
- qubitclient/scope/utils/__init__.py +0 -0
- qubitclient/scope/utils/data_parser.py +20 -0
- qubitclient-0.0.3.0.dist-info/METADATA +112 -0
- qubitclient-0.0.3.0.dist-info/RECORD +51 -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.3.0.dist-info}/WHEEL +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/licenses/LICENSE +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/top_level.txt +0 -0
- {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/zip-safe +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Contains some shared types for properties"""
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping, MutableMapping
|
|
4
|
+
from http import HTTPStatus
|
|
5
|
+
from typing import IO, BinaryIO, Generic, Literal, Optional, TypeVar, Union
|
|
6
|
+
|
|
7
|
+
from attrs import define
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Unset:
|
|
11
|
+
def __bool__(self) -> Literal[False]:
|
|
12
|
+
return False
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
UNSET: Unset = Unset()
|
|
16
|
+
|
|
17
|
+
# The types that `httpx.Client(files=)` can accept, copied from that library.
|
|
18
|
+
FileContent = Union[IO[bytes], bytes, str]
|
|
19
|
+
FileTypes = Union[
|
|
20
|
+
# (filename, file (or bytes), content_type)
|
|
21
|
+
tuple[Optional[str], FileContent, Optional[str]],
|
|
22
|
+
# (filename, file (or bytes), content_type, headers)
|
|
23
|
+
tuple[Optional[str], FileContent, Optional[str], Mapping[str, str]],
|
|
24
|
+
]
|
|
25
|
+
RequestFiles = list[tuple[str, FileTypes]]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@define
|
|
29
|
+
class File:
|
|
30
|
+
"""Contains information for file uploads"""
|
|
31
|
+
|
|
32
|
+
payload: BinaryIO
|
|
33
|
+
file_name: Optional[str] = None
|
|
34
|
+
mime_type: Optional[str] = None
|
|
35
|
+
|
|
36
|
+
def to_tuple(self) -> FileTypes:
|
|
37
|
+
"""Return a tuple representation that httpx will accept for multipart/form-data"""
|
|
38
|
+
return self.file_name, self.payload, self.mime_type
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
T = TypeVar("T")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@define
|
|
45
|
+
class Response(Generic[T]):
|
|
46
|
+
"""A response from an endpoint"""
|
|
47
|
+
|
|
48
|
+
status_code: HTTPStatus
|
|
49
|
+
content: bytes
|
|
50
|
+
headers: MutableMapping[str, str]
|
|
51
|
+
parsed: Optional[T]
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
__all__ = ["UNSET", "File", "FileTypes", "RequestFiles", "Response", "Unset"]
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from .scope_api.api.defined_tasks import s21peak_api_v1_tasks_scope_s21peak_post
|
|
4
|
+
from .scope_api.api.defined_tasks import optpipulse_api_v1_tasks_scope_optpipulse_post
|
|
5
|
+
from .scope_api.api.defined_tasks import rabi_api_v1_tasks_scope_rabi_post
|
|
6
|
+
from .scope_api.api.defined_tasks import rabicos_api_v1_tasks_scope_rabicospeak_post
|
|
7
|
+
from .scope_api.api.defined_tasks import s21vflux_api_v1_tasks_scope_s21vflux_post
|
|
8
|
+
from .scope_api.api.defined_tasks import singleshot_api_v1_tasks_scope_singleshot_post
|
|
9
|
+
from .scope_api.api.defined_tasks import spectrum_api_v1_tasks_scope_spectrum_post
|
|
10
|
+
from .scope_api.api.defined_tasks import t1fit_api_v1_tasks_scope_t1fit_post
|
|
11
|
+
from .scope_api.api.defined_tasks import t1fit_api_v1_tasks_scope_t2fit_post
|
|
12
|
+
from .scope_api.api.defined_tasks import spectrum2d_api_v1_tasks_scope_spectrum2d_post
|
|
13
|
+
|
|
14
|
+
from .scope_api.models import BodyS21PeakApiV1TasksScopeS21PeakPost
|
|
15
|
+
from .scope_api.models import BodyOptpipulseApiV1TasksScopeOptpipulsePost
|
|
16
|
+
from .scope_api.models import BodyRabiApiV1TasksScopeRabiPost
|
|
17
|
+
from .scope_api.models import BodyRabicosApiV1TasksScopeRabicospeakPost
|
|
18
|
+
from .scope_api.models import BodyS21VfluxApiV1TasksScopeS21VfluxPost
|
|
19
|
+
from .scope_api.models import BodySingleshotApiV1TasksScopeSingleshotPost
|
|
20
|
+
from .scope_api.models import BodySpectrumApiV1TasksScopeSpectrumPost
|
|
21
|
+
from .scope_api.models import BodyT1FitApiV1TasksScopeT1FitPost
|
|
22
|
+
from .scope_api.models import BodyT1FitApiV1TasksScopeT2FitPost
|
|
23
|
+
from .scope_api.models import BodySpectrum2DApiV1TasksScopeSpectrum2DPost
|
|
24
|
+
|
|
25
|
+
from .scope_api.types import Response
|
|
26
|
+
from .scope_api.types import File
|
|
27
|
+
|
|
28
|
+
import io
|
|
29
|
+
import numpy as np
|
|
30
|
+
def load_from_dict(dict_list: list[dict]):
|
|
31
|
+
files = []
|
|
32
|
+
for index, dict_obj in enumerate(dict_list):
|
|
33
|
+
with io.BytesIO() as buffer:
|
|
34
|
+
np.savez(buffer, **dict_obj)
|
|
35
|
+
bytes_obj = buffer.getvalue()
|
|
36
|
+
# 假设File类定义如下:
|
|
37
|
+
# File(payload=bytes内容, file_name=字符串)
|
|
38
|
+
files.append(File(payload=bytes_obj, file_name=f"file_{index}.npz"))
|
|
39
|
+
return files
|
|
40
|
+
|
|
41
|
+
def load_from_ndarray(ndarray_list: list[np.ndarray]):
|
|
42
|
+
files = []
|
|
43
|
+
for idx, ndarray_data in enumerate(ndarray_list):
|
|
44
|
+
buffer = io.BytesIO()
|
|
45
|
+
np.save(buffer, ndarray_data)
|
|
46
|
+
buffer.seek(0)
|
|
47
|
+
files.append(File(payload=buffer.read(), file_name=f"file_{idx}.npz"))
|
|
48
|
+
return files
|
|
49
|
+
|
|
50
|
+
def load_from_path(filepath_list: list[str]):
|
|
51
|
+
files = []
|
|
52
|
+
for file_path in filepath_list:
|
|
53
|
+
with open(file_path, "rb") as f:
|
|
54
|
+
file_content = f.read()
|
|
55
|
+
files.append(File(payload=file_content, file_name=file_path))
|
|
56
|
+
return files
|
|
57
|
+
def load_files(filepath_list: list[str|dict[str,np.ndarray]|np.ndarray]):
|
|
58
|
+
if len(filepath_list)<=0:
|
|
59
|
+
return []
|
|
60
|
+
else:
|
|
61
|
+
if isinstance(filepath_list[0], dict):
|
|
62
|
+
return load_from_dict(filepath_list)
|
|
63
|
+
elif isinstance(filepath_list[0], np.ndarray):
|
|
64
|
+
return load_from_ndarray(filepath_list)
|
|
65
|
+
elif isinstance(filepath_list[0], str):
|
|
66
|
+
return load_from_path(filepath_list)
|
|
67
|
+
|
|
68
|
+
DEFINED_TASKS = {}
|
|
69
|
+
def task_register(func):
|
|
70
|
+
DEFINED_TASKS[func.__name__.lower()] = func
|
|
71
|
+
return func
|
|
72
|
+
|
|
73
|
+
def run_task(client,file_list: list[str|dict[str,np.ndarray]|np.ndarray],task_type:str):
|
|
74
|
+
files = load_files(file_list)
|
|
75
|
+
response = DEFINED_TASKS[task_type.value](client,files)
|
|
76
|
+
return response
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@task_register
|
|
80
|
+
def s21peak(client,files: File):
|
|
81
|
+
body: BodyS21PeakApiV1TasksScopeS21PeakPost = BodyS21PeakApiV1TasksScopeS21PeakPost(files=files)
|
|
82
|
+
response: Response[BodyS21PeakApiV1TasksScopeS21PeakPost] = s21peak_api_v1_tasks_scope_s21peak_post.sync_detailed(client=client,body=body)
|
|
83
|
+
return response
|
|
84
|
+
@task_register
|
|
85
|
+
def optpipulse(client,files: File):
|
|
86
|
+
body: BodyOptpipulseApiV1TasksScopeOptpipulsePost = BodyOptpipulseApiV1TasksScopeOptpipulsePost(files=files)
|
|
87
|
+
response: Response[BodyOptpipulseApiV1TasksScopeOptpipulsePost] = optpipulse_api_v1_tasks_scope_optpipulse_post.sync_detailed(client=client,body=body)
|
|
88
|
+
return response
|
|
89
|
+
@task_register
|
|
90
|
+
def rabi(client,files: File):
|
|
91
|
+
body: BodyRabiApiV1TasksScopeRabiPost = BodyRabiApiV1TasksScopeRabiPost(files=files)
|
|
92
|
+
response: Response[BodyRabiApiV1TasksScopeRabiPost] = rabi_api_v1_tasks_scope_rabi_post.sync_detailed(client=client,body=body)
|
|
93
|
+
return response
|
|
94
|
+
@task_register
|
|
95
|
+
def rabicos(client,files: File):
|
|
96
|
+
body: BodyRabicosApiV1TasksScopeRabicospeakPost = BodyRabicosApiV1TasksScopeRabicospeakPost(files=files)
|
|
97
|
+
response: Response[BodyRabicosApiV1TasksScopeRabicospeakPost] = rabicos_api_v1_tasks_scope_rabicospeak_post.sync_detailed(client=client,body=body)
|
|
98
|
+
return response
|
|
99
|
+
@task_register
|
|
100
|
+
def s21vflux(client,files: File):
|
|
101
|
+
body: BodyS21VfluxApiV1TasksScopeS21VfluxPost = BodyS21VfluxApiV1TasksScopeS21VfluxPost(files=files)
|
|
102
|
+
response: Response[BodyS21VfluxApiV1TasksScopeS21VfluxPost] = s21vflux_api_v1_tasks_scope_s21vflux_post.sync_detailed(client=client,body=body)
|
|
103
|
+
return response
|
|
104
|
+
@task_register
|
|
105
|
+
def singleshot(client,files: File):
|
|
106
|
+
body: BodySingleshotApiV1TasksScopeSingleshotPost = BodySingleshotApiV1TasksScopeSingleshotPost(files=files)
|
|
107
|
+
response: Response[BodySingleshotApiV1TasksScopeSingleshotPost] = singleshot_api_v1_tasks_scope_singleshot_post.sync_detailed(client=client,body=body)
|
|
108
|
+
return response
|
|
109
|
+
@task_register
|
|
110
|
+
def spectrum(client,files: File):
|
|
111
|
+
body: BodySpectrumApiV1TasksScopeSpectrumPost = BodySpectrumApiV1TasksScopeSpectrumPost(files=files)
|
|
112
|
+
response: Response[BodySpectrumApiV1TasksScopeSpectrumPost] = spectrum_api_v1_tasks_scope_spectrum_post.sync_detailed(client=client,body=body)
|
|
113
|
+
return response
|
|
114
|
+
@task_register
|
|
115
|
+
def t1fit(client,files: File):
|
|
116
|
+
body: BodyT1FitApiV1TasksScopeT1FitPost = BodyT1FitApiV1TasksScopeT1FitPost(files=files)
|
|
117
|
+
response: Response[BodyT1FitApiV1TasksScopeT1FitPost] = t1fit_api_v1_tasks_scope_t1fit_post.sync_detailed(client=client,body=body)
|
|
118
|
+
return response
|
|
119
|
+
@task_register
|
|
120
|
+
def t2fit(client,files: File):
|
|
121
|
+
body: BodyT1FitApiV1TasksScopeT2FitPost = BodyT1FitApiV1TasksScopeT2FitPost(files=files)
|
|
122
|
+
response: Response[BodyT1FitApiV1TasksScopeT2FitPost] = t1fit_api_v1_tasks_scope_t2fit_post.sync_detailed(client=client,body=body)
|
|
123
|
+
return response
|
|
124
|
+
|
|
125
|
+
@task_register
|
|
126
|
+
def spectrum2d(client,files: File):
|
|
127
|
+
body: BodySpectrum2DApiV1TasksScopeSpectrum2DPost = BodySpectrum2DApiV1TasksScopeSpectrum2DPost(files=files)
|
|
128
|
+
response: Response[BodySpectrum2DApiV1TasksScopeSpectrum2DPost] = spectrum2d_api_v1_tasks_scope_spectrum2d_post.sync_detailed(client=client,body=body)
|
|
129
|
+
return response
|
|
130
|
+
|
|
131
|
+
from enum import Enum, unique
|
|
132
|
+
@unique
|
|
133
|
+
class TaskName(Enum):
|
|
134
|
+
S21PEAK = "s21peak"
|
|
135
|
+
OPTPIPULSE = "optpipulse"
|
|
136
|
+
RABI = "rabi"
|
|
137
|
+
RABICOS = "rabicos"
|
|
138
|
+
S21VFLUX = "s21vflux"
|
|
139
|
+
SINGLESHOT = "singleshot"
|
|
140
|
+
SPECTRUM = "spectrum"
|
|
141
|
+
T1FIT = "t1fit"
|
|
142
|
+
T2FIT = "t2fit"
|
|
143
|
+
SPECTRUM2D = "spectrum2d"
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
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/04/11 17:58:29
|
|
8
|
+
########################################################################
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
import numpy as np
|
|
12
|
+
import cv2
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def load_npy_file(file_path):
|
|
16
|
+
try:
|
|
17
|
+
array = np.load(file_path, allow_pickle=True)
|
|
18
|
+
return array
|
|
19
|
+
except Exception as e:
|
|
20
|
+
raise ValueError(f"加载文件 {file_path} 时出错: {str(e)}")
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qubitclient
|
|
3
|
+
Version: 0.0.3.0
|
|
4
|
+
Summary: qubit analysis client
|
|
5
|
+
Home-page: https://github.com/yaqiangsun/QubitClient
|
|
6
|
+
Author: Yaqiang Sun
|
|
7
|
+
Author-email: Yaqiang Sun <sunyaking@163.com>
|
|
8
|
+
License: GPL-3.0
|
|
9
|
+
Requires-Python: >=3.8
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Dynamic: author
|
|
13
|
+
Dynamic: home-page
|
|
14
|
+
Dynamic: license-file
|
|
15
|
+
Dynamic: requires-python
|
|
16
|
+
|
|
17
|
+
# QubitClient
|
|
18
|
+
|
|
19
|
+
#### 介绍
|
|
20
|
+
**qubit-client**
|
|
21
|
+
QubitClient 是用于使用Qubit服务的示例。
|
|
22
|
+
|
|
23
|
+
# 更新日志
|
|
24
|
+
|
|
25
|
+
近期更新:
|
|
26
|
+
|
|
27
|
+
- **增加scope功能包**: 增加多种任务功能(20251022).
|
|
28
|
+
- **增加曲线类型**: 增加cosin类型曲线拟合(20250606).
|
|
29
|
+
- **构建基础项目:** 基础功能与结构构建.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# 使用
|
|
33
|
+
|
|
34
|
+
### scope功能包
|
|
35
|
+
|
|
36
|
+
#### 使用说明
|
|
37
|
+
1.拷贝config.py.example文件为config.py,并修改配置参数。
|
|
38
|
+
```
|
|
39
|
+
cp config.py.example config.py
|
|
40
|
+
```
|
|
41
|
+
2.运行
|
|
42
|
+
单次请求多个文件:
|
|
43
|
+
```python
|
|
44
|
+
python tests/test_nnscope.py
|
|
45
|
+
```
|
|
46
|
+
批量多次请求
|
|
47
|
+
```bash
|
|
48
|
+
Not provided
|
|
49
|
+
```
|
|
50
|
+
## 功能集合
|
|
51
|
+
### 曲线分割功能
|
|
52
|
+
|
|
53
|
+
#### 运行示例代码
|
|
54
|
+
```python
|
|
55
|
+
python tests/test_nnscope.py
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### 定义实例
|
|
59
|
+
```
|
|
60
|
+
client = QubitNNScopeClient(url=url,api_key="")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### 请求输入
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
response = client.request(file_list=file_path_list,\
|
|
67
|
+
task_type=NNTaskName.SPECTRUM2D,curve_type=CurveType.COSINE)
|
|
68
|
+
```
|
|
69
|
+
- dict_list格式为:
|
|
70
|
+
```json
|
|
71
|
+
[
|
|
72
|
+
{
|
|
73
|
+
"bias":np.ndarray shape(A),
|
|
74
|
+
"frequency":np.ndarray shape(B),
|
|
75
|
+
"iq_avg":np.ndarray shape(B,A),
|
|
76
|
+
},
|
|
77
|
+
...
|
|
78
|
+
]
|
|
79
|
+
```
|
|
80
|
+
- curve_type: `CurveType.COSINE`(cosin拟合) or `CurveType.POLY`(多项式拟合)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
#### 返回值
|
|
84
|
+
返回请求为response
|
|
85
|
+
```python
|
|
86
|
+
res = response.json()
|
|
87
|
+
```
|
|
88
|
+
res格式为:
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"state":'success',
|
|
92
|
+
"result":result
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
其中result格式:
|
|
96
|
+
```json
|
|
97
|
+
[
|
|
98
|
+
{
|
|
99
|
+
"params_list":List[List[float]],//每条线段的多项式参数列表
|
|
100
|
+
"linepoints_list":List[List[[row_index,col_index]]],//每条线段的点坐标列表
|
|
101
|
+
"confidence_list":List[float],//每条线段的置信度
|
|
102
|
+
},//每一个npz文件的结果
|
|
103
|
+
{
|
|
104
|
+
...
|
|
105
|
+
},
|
|
106
|
+
...
|
|
107
|
+
]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 其他功能完善中
|
|
111
|
+
|
|
112
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
qubitclient/__init__.py,sha256=-B4dKmyVwertyKu7vo8A6tZhG5klzGlqcSCrITk3JPw,290
|
|
2
|
+
qubitclient/nnscope/nnscope.py,sha256=AuvJSb8HY3uzUJ14go16_5Y8jeyytGFJR8qi3KCP6Dk,1684
|
|
3
|
+
qubitclient/nnscope/task.py,sha256=4M8N_VeGjGg3ptkQtyhODSOt3tpMCuD0_UGYGmSz9fc,4465
|
|
4
|
+
qubitclient/nnscope/nnscope_api/QubitSeg.py,sha256=vdH02IiLjJwU0Zihzq07vpIFDdt-yqy6v9oPiyrer8o,2617
|
|
5
|
+
qubitclient/nnscope/nnscope_api/curve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
qubitclient/nnscope/nnscope_api/curve/curve_type.py,sha256=Qi1vTjzK6eJWMpaT9QkJtSM9486fEp4Sd27hAHi1LnM,473
|
|
7
|
+
qubitclient/nnscope/utils/data_convert.py,sha256=YdvRneYGNVy_Yetpw_9xfu2CSMW3pXLu-X2e6owuGgs,4295
|
|
8
|
+
qubitclient/nnscope/utils/data_parser.py,sha256=2CnrVTRhrg67nrei8wthNhakzUjIBwUh5gJJv6vpg_U,1280
|
|
9
|
+
qubitclient/nnscope/utils/request_tool.py,sha256=SToOpaOJ0GKH0YK428t9s7fReAC9Piae18sJngxctxo,1694
|
|
10
|
+
qubitclient/nnscope/utils/result_parser.py,sha256=5ymB5JSlU1-mqQ3U4fZBGDQdF3CH7NEp4IMt6rDj2uM,2039
|
|
11
|
+
qubitclient/scope/scope.py,sha256=4wJ4t55QiKtPEJ-l-ADNLliGg04SPFW-SBRho0kiHLQ,1635
|
|
12
|
+
qubitclient/scope/task.py,sha256=jBSsPpWhVoI4SVpaSVQoxSBYu_8esegdhioEZVm1NGE,6868
|
|
13
|
+
qubitclient/scope/scope_api/__init__.py,sha256=qUheje2C4lZ8b26EUHXHRJ3dWuzKiExv_JVOdVCFAek,150
|
|
14
|
+
qubitclient/scope/scope_api/client.py,sha256=o_mdLqyBCQstu5tS1WZFwqIEbGwkvWQ7eQjuCJw_5VY,12419
|
|
15
|
+
qubitclient/scope/scope_api/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
|
|
16
|
+
qubitclient/scope/scope_api/types.py,sha256=AX4orxQZQJat3vZrgjJ-TYb2sNBL8kNo9yqYDT-n8y8,1391
|
|
17
|
+
qubitclient/scope/scope_api/api/__init__.py,sha256=zTSiG_ujSjAqWPyc435YXaX9XTlpMjiJWBbV-f-YtdA,45
|
|
18
|
+
qubitclient/scope/scope_api/api/defined_tasks/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
|
|
19
|
+
qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_demo_pk_get.py,sha256=mWzJoBh2EmCF-iX4jTlN5msvI6L3CzLixel2S-vu_Qc,3908
|
|
20
|
+
qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_scope_pk_get.py,sha256=6SqRkNWS631gZ_zSuhRVfzQQSqab8S4vBNdgxQCpE0A,3909
|
|
21
|
+
qubitclient/scope/scope_api/api/defined_tasks/optpipulse_api_v1_tasks_scope_optpipulse_post.py,sha256=LBZvC5WH7qosti6CodqI5l_7ka9kOu_zKwOjfJEDWQE,6062
|
|
22
|
+
qubitclient/scope/scope_api/api/defined_tasks/rabi_api_v1_tasks_scope_rabi_post.py,sha256=OjJPbwk8wzaBQH5pKdBXu1lu77C9YRTI6u88kyA8Rgk,5686
|
|
23
|
+
qubitclient/scope/scope_api/api/defined_tasks/rabicos_api_v1_tasks_scope_rabicospeak_post.py,sha256=VRZQAQVloC1E066bpFlp3VOndU84WyV4e-TxrPlxgPI,5926
|
|
24
|
+
qubitclient/scope/scope_api/api/defined_tasks/s21peak_api_v1_tasks_scope_s21peak_post.py,sha256=1tajlqSAPJ0Z9JrK9iFvf9hW_-lXmwyrNt8BmyOs4g0,5848
|
|
25
|
+
qubitclient/scope/scope_api/api/defined_tasks/s21vflux_api_v1_tasks_scope_s21vflux_post.py,sha256=hHGS24N_2ZGQlsW4XFnVuN5asje3Z6Hh9rdScKmPdKQ,5940
|
|
26
|
+
qubitclient/scope/scope_api/api/defined_tasks/singleshot_api_v1_tasks_scope_singleshot_post.py,sha256=SZz6OuGsLQMHdT-anFPMcUcEAc99rRhzSB5QX0VAk1k,5942
|
|
27
|
+
qubitclient/scope/scope_api/api/defined_tasks/spectrum2d_api_v1_tasks_scope_spectrum2d_post.py,sha256=Ku2yJA1W9M3ybQGZ4WgGjDfX-qh4QyVizEwLGHj4uFk,5924
|
|
28
|
+
qubitclient/scope/scope_api/api/defined_tasks/spectrum_api_v1_tasks_scope_spectrum_post.py,sha256=f2vjj-xjWVachjXRb7vtWBXItII0ECWVs-dHIeqDJlU,5914
|
|
29
|
+
qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t1fit_post.py,sha256=yC5nJh4vmNvx4CLOoFAHj2pai4pLlSlJov6gz3mkOhM,5716
|
|
30
|
+
qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t2fit_post.py,sha256=SRbaUDoR5b0nA12ix0RTGapiybnoq5c1MJ48wFIydFg,5716
|
|
31
|
+
qubitclient/scope/scope_api/models/__init__.py,sha256=RzudaJYyMnTqf5f7TxagPAG2Emp3BfFGHxYi4m_l9f4,1681
|
|
32
|
+
qubitclient/scope/scope_api/models/body_optpipulse_api_v1_tasks_scope_optpipulse_post.py,sha256=jA4fcZ7KwhH7L74kvoxFkmqTPcAqBZA2WQglJAYrrtk,2369
|
|
33
|
+
qubitclient/scope/scope_api/models/body_rabi_api_v1_tasks_scope_rabi_post.py,sha256=zWGZyxNpb7KYquXYEylGeSVFJLiiR2jM03bJBbMRMRw,2309
|
|
34
|
+
qubitclient/scope/scope_api/models/body_rabicos_api_v1_tasks_scope_rabicospeak_post.py,sha256=tUaq3bDWVWQafVN7hPsIjjDWpfqtl3V2fnJEpos5TZw,2359
|
|
35
|
+
qubitclient/scope/scope_api/models/body_s21_peak_api_v1_tasks_scope_s21_peak_post.py,sha256=K4_hwbLYw6Fqn7OVF_VFzhl6WWF702PDsb4iMZ_yPqM,2345
|
|
36
|
+
qubitclient/scope/scope_api/models/body_s21_vflux_api_v1_tasks_scope_s21_vflux_post.py,sha256=i3Z7BD2T0-7eoNNH_LVOHBosyYW3ZBQvjtRPm7GaYKE,2355
|
|
37
|
+
qubitclient/scope/scope_api/models/body_singleshot_api_v1_tasks_scope_singleshot_post.py,sha256=iso7Wrq6EERyGzHnEvScZ7sBzgNNb_mLEeB1yqVSgQA,2369
|
|
38
|
+
qubitclient/scope/scope_api/models/body_spectrum_2d_api_v1_tasks_scope_spectrum_2d_post.py,sha256=e8aQqZdvwd7zZk1BmQMzjfMlznz-os41KYr9la0_5g4,2375
|
|
39
|
+
qubitclient/scope/scope_api/models/body_spectrum_api_v1_tasks_scope_spectrum_post.py,sha256=xCKF1NeRs0FgPstiku6qyT_w0IxBI8Xc5BdLo8E4sfg,2349
|
|
40
|
+
qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t1_fit_post.py,sha256=_dMiMzrEkUPA1lY1sMqN7tMC2FkFFffRovh72LPPYIE,2325
|
|
41
|
+
qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t2_fit_post.py,sha256=wURlSeo12Yr8kX1SPN71bnLjZw2SUFAsDVUS38n3Vw0,2325
|
|
42
|
+
qubitclient/scope/scope_api/models/http_validation_error.py,sha256=OvQ-alRPbtXXwrQunI1Cp1-BWf7ZkVHkigk-YVMFXN0,2213
|
|
43
|
+
qubitclient/scope/scope_api/models/validation_error.py,sha256=ZlK9hbhWr4zSC-dxZh9giERvMiYf9s2k8e1O9Rch_NI,2181
|
|
44
|
+
qubitclient/scope/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
+
qubitclient/scope/utils/data_parser.py,sha256=pVMR_NdvkmdWS6IEtV326YOejrOSigFwu7Kgezi4wzw,639
|
|
46
|
+
qubitclient-0.0.3.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
47
|
+
qubitclient-0.0.3.0.dist-info/METADATA,sha256=gackaPyWrJ6lIFcRqX36rMRdP1wSepdaPlZksSwUiS4,2122
|
|
48
|
+
qubitclient-0.0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
49
|
+
qubitclient-0.0.3.0.dist-info/top_level.txt,sha256=WykSPDNRJemNN2fgAgiuCxzU4ohtegELAvBMnpgMq4g,12
|
|
50
|
+
qubitclient-0.0.3.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
51
|
+
qubitclient-0.0.3.0.dist-info/RECORD,,
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: qubitclient
|
|
3
|
-
Version: 0.0.0.1
|
|
4
|
-
Summary: Qubit client
|
|
5
|
-
Home-page: https://github.com/yaqiangsun/QubitClient
|
|
6
|
-
Author: Yaqiang Sun
|
|
7
|
-
License: GPL v3
|
|
8
|
-
Keywords: Qubit client
|
|
9
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Programming Language :: Python
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
20
|
-
Classifier: Operating System :: Unix
|
|
21
|
-
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
-
Requires-Python: >=3.8
|
|
23
|
-
Description-Content-Type: text/x-rst
|
|
24
|
-
License-File: LICENSE
|
|
25
|
-
Requires-Dist: numpy>=1.26.4
|
|
26
|
-
Dynamic: author
|
|
27
|
-
Dynamic: classifier
|
|
28
|
-
Dynamic: description-content-type
|
|
29
|
-
Dynamic: home-page
|
|
30
|
-
Dynamic: keywords
|
|
31
|
-
Dynamic: license
|
|
32
|
-
Dynamic: license-file
|
|
33
|
-
Dynamic: requires-dist
|
|
34
|
-
Dynamic: requires-python
|
|
35
|
-
Dynamic: summary
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
qubitclient/QubitSeg.py,sha256=LS7OhSaQT62C5zAHo_hRA1EnKDpEWaHVLa811rXTnf0,2619
|
|
2
|
-
qubitclient/__init__.py,sha256=yTQtOeTgUXLXbyVbFE8FLg_QYOvfOQ5WBt_xsIwT4pA,54
|
|
3
|
-
qubitclient-0.0.0.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
4
|
-
qubitclient-0.0.0.1.dist-info/METADATA,sha256=VWpCZ-wT8grYkzezbzLSy1dKPTeLbV4hWuZJO_E0iLk,1174
|
|
5
|
-
qubitclient-0.0.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
6
|
-
qubitclient-0.0.0.1.dist-info/top_level.txt,sha256=WykSPDNRJemNN2fgAgiuCxzU4ohtegELAvBMnpgMq4g,12
|
|
7
|
-
qubitclient-0.0.0.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
8
|
-
qubitclient-0.0.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|