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.

Files changed (53) hide show
  1. qubitclient/__init__.py +6 -1
  2. qubitclient/nnscope/nnscope.py +51 -0
  3. qubitclient/{QubitSeg.py → nnscope/nnscope_api/QubitSeg.py} +7 -7
  4. qubitclient/nnscope/nnscope_api/curve/__init__.py +0 -0
  5. qubitclient/nnscope/nnscope_api/curve/curve_type.py +15 -0
  6. qubitclient/nnscope/task.py +130 -0
  7. qubitclient/nnscope/utils/data_convert.py +114 -0
  8. qubitclient/nnscope/utils/data_parser.py +41 -0
  9. qubitclient/nnscope/utils/request_tool.py +41 -0
  10. qubitclient/nnscope/utils/result_parser.py +55 -0
  11. qubitclient/scope/scope.py +51 -0
  12. qubitclient/scope/scope_api/__init__.py +8 -0
  13. qubitclient/scope/scope_api/api/__init__.py +1 -0
  14. qubitclient/scope/scope_api/api/defined_tasks/__init__.py +1 -0
  15. qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_demo_pk_get.py +155 -0
  16. qubitclient/scope/scope_api/api/defined_tasks/get_task_result_api_v1_tasks_scope_pk_get.py +155 -0
  17. qubitclient/scope/scope_api/api/defined_tasks/optpipulse_api_v1_tasks_scope_optpipulse_post.py +218 -0
  18. qubitclient/scope/scope_api/api/defined_tasks/rabi_api_v1_tasks_scope_rabi_post.py +218 -0
  19. qubitclient/scope/scope_api/api/defined_tasks/rabicos_api_v1_tasks_scope_rabicospeak_post.py +218 -0
  20. qubitclient/scope/scope_api/api/defined_tasks/s21peak_api_v1_tasks_scope_s21peak_post.py +218 -0
  21. qubitclient/scope/scope_api/api/defined_tasks/s21vflux_api_v1_tasks_scope_s21vflux_post.py +218 -0
  22. qubitclient/scope/scope_api/api/defined_tasks/singleshot_api_v1_tasks_scope_singleshot_post.py +218 -0
  23. qubitclient/scope/scope_api/api/defined_tasks/spectrum2d_api_v1_tasks_scope_spectrum2d_post.py +218 -0
  24. qubitclient/scope/scope_api/api/defined_tasks/spectrum_api_v1_tasks_scope_spectrum_post.py +218 -0
  25. qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t1fit_post.py +218 -0
  26. qubitclient/scope/scope_api/api/defined_tasks/t1fit_api_v1_tasks_scope_t2fit_post.py +218 -0
  27. qubitclient/scope/scope_api/client.py +268 -0
  28. qubitclient/scope/scope_api/errors.py +16 -0
  29. qubitclient/scope/scope_api/models/__init__.py +29 -0
  30. qubitclient/scope/scope_api/models/body_optpipulse_api_v1_tasks_scope_optpipulse_post.py +83 -0
  31. qubitclient/scope/scope_api/models/body_rabi_api_v1_tasks_scope_rabi_post.py +83 -0
  32. qubitclient/scope/scope_api/models/body_rabicos_api_v1_tasks_scope_rabicospeak_post.py +83 -0
  33. qubitclient/scope/scope_api/models/body_s21_peak_api_v1_tasks_scope_s21_peak_post.py +83 -0
  34. qubitclient/scope/scope_api/models/body_s21_vflux_api_v1_tasks_scope_s21_vflux_post.py +83 -0
  35. qubitclient/scope/scope_api/models/body_singleshot_api_v1_tasks_scope_singleshot_post.py +83 -0
  36. qubitclient/scope/scope_api/models/body_spectrum_2d_api_v1_tasks_scope_spectrum_2d_post.py +83 -0
  37. qubitclient/scope/scope_api/models/body_spectrum_api_v1_tasks_scope_spectrum_post.py +83 -0
  38. qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t1_fit_post.py +83 -0
  39. qubitclient/scope/scope_api/models/body_t1_fit_api_v1_tasks_scope_t2_fit_post.py +83 -0
  40. qubitclient/scope/scope_api/models/http_validation_error.py +75 -0
  41. qubitclient/scope/scope_api/models/validation_error.py +88 -0
  42. qubitclient/scope/scope_api/types.py +54 -0
  43. qubitclient/scope/task.py +147 -0
  44. qubitclient/scope/utils/__init__.py +0 -0
  45. qubitclient/scope/utils/data_parser.py +20 -0
  46. qubitclient-0.0.3.0.dist-info/METADATA +112 -0
  47. qubitclient-0.0.3.0.dist-info/RECORD +51 -0
  48. qubitclient-0.0.0.1.dist-info/METADATA +0 -35
  49. qubitclient-0.0.0.1.dist-info/RECORD +0 -8
  50. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/WHEEL +0 -0
  51. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/licenses/LICENSE +0 -0
  52. {qubitclient-0.0.0.1.dist-info → qubitclient-0.0.3.0.dist-info}/top_level.txt +0 -0
  53. {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,,