QuLab 2.9.8__tar.gz → 2.9.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {qulab-2.9.8 → qulab-2.9.10}/PKG-INFO +1 -1
  2. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/PKG-INFO +1 -1
  3. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/analyze.py +31 -7
  4. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/load.py +13 -12
  5. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/storage.py +1 -1
  6. qulab-2.9.10/qulab/version.py +1 -0
  7. qulab-2.9.8/qulab/version.py +0 -1
  8. {qulab-2.9.8 → qulab-2.9.10}/LICENSE +0 -0
  9. {qulab-2.9.8 → qulab-2.9.10}/MANIFEST.in +0 -0
  10. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/SOURCES.txt +0 -0
  11. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/dependency_links.txt +0 -0
  12. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/entry_points.txt +0 -0
  13. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/requires.txt +0 -0
  14. {qulab-2.9.8 → qulab-2.9.10}/QuLab.egg-info/top_level.txt +0 -0
  15. {qulab-2.9.8 → qulab-2.9.10}/README.md +0 -0
  16. {qulab-2.9.8 → qulab-2.9.10}/pyproject.toml +0 -0
  17. {qulab-2.9.8 → qulab-2.9.10}/qulab/__init__.py +0 -0
  18. {qulab-2.9.8 → qulab-2.9.10}/qulab/__main__.py +0 -0
  19. {qulab-2.9.8 → qulab-2.9.10}/qulab/cli/__init__.py +0 -0
  20. {qulab-2.9.8 → qulab-2.9.10}/qulab/cli/commands.py +0 -0
  21. {qulab-2.9.8 → qulab-2.9.10}/qulab/cli/config.py +0 -0
  22. {qulab-2.9.8 → qulab-2.9.10}/qulab/dicttree.py +0 -0
  23. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/__init__.py +0 -0
  24. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/cli.py +0 -0
  25. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/schedule.py +0 -0
  26. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/template.py +0 -0
  27. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/transform.py +0 -0
  28. {qulab-2.9.8 → qulab-2.9.10}/qulab/executor/utils.py +0 -0
  29. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/__init__.py +0 -0
  30. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/__main__.py +0 -0
  31. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/config.py +0 -0
  32. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/dataset.py +0 -0
  33. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/event_queue.py +0 -0
  34. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/mainwindow.py +0 -0
  35. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/monitor.py +0 -0
  36. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/ploter.py +0 -0
  37. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/qt_compat.py +0 -0
  38. {qulab-2.9.8 → qulab-2.9.10}/qulab/monitor/toolbar.py +0 -0
  39. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/__init__.py +0 -0
  40. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/curd.py +0 -0
  41. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/expression.py +0 -0
  42. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/models.py +0 -0
  43. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/optimize.py +0 -0
  44. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/query.py +0 -0
  45. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/record.py +0 -0
  46. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/scan.py +0 -0
  47. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/server.py +0 -0
  48. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/space.py +0 -0
  49. {qulab-2.9.8 → qulab-2.9.10}/qulab/scan/utils.py +0 -0
  50. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/__init__.py +0 -0
  51. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/__main__.py +0 -0
  52. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/backend/__init__.py +0 -0
  53. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/backend/redis.py +0 -0
  54. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/base_dataset.py +0 -0
  55. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/chunk.py +0 -0
  56. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/dataset.py +0 -0
  57. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/file.py +0 -0
  58. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/__init__.py +0 -0
  59. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/base.py +0 -0
  60. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/config.py +0 -0
  61. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/file.py +0 -0
  62. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/ipy.py +0 -0
  63. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/models.py +0 -0
  64. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/record.py +0 -0
  65. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/report.py +0 -0
  66. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/models/tag.py +0 -0
  67. {qulab-2.9.8 → qulab-2.9.10}/qulab/storage/storage.py +0 -0
  68. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/__init__.py +0 -0
  69. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/chat.py +0 -0
  70. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/device/__init__.py +0 -0
  71. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/device/basedevice.py +0 -0
  72. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/device/loader.py +0 -0
  73. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/device/utils.py +0 -0
  74. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/drivers/FakeInstrument.py +0 -0
  75. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/drivers/__init__.py +0 -0
  76. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/ipy_events.py +0 -0
  77. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/__init__.py +0 -0
  78. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/bencoder.py +0 -0
  79. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/cli.py +0 -0
  80. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/dhcp.py +0 -0
  81. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/dhcpd.py +0 -0
  82. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/kad.py +0 -0
  83. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/kcp.py +0 -0
  84. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/net/nginx.py +0 -0
  85. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/progress.py +0 -0
  86. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/__init__.py +0 -0
  87. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/client.py +0 -0
  88. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/exceptions.py +0 -0
  89. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/msgpack.py +0 -0
  90. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/msgpack.pyi +0 -0
  91. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/router.py +0 -0
  92. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/rpc.py +0 -0
  93. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/serialize.py +0 -0
  94. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/server.py +0 -0
  95. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/socket.py +0 -0
  96. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/utils.py +0 -0
  97. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/worker.py +0 -0
  98. {qulab-2.9.8 → qulab-2.9.10}/qulab/sys/rpc/zmq_socket.py +0 -0
  99. {qulab-2.9.8 → qulab-2.9.10}/qulab/tools/__init__.py +0 -0
  100. {qulab-2.9.8 → qulab-2.9.10}/qulab/tools/connection_helper.py +0 -0
  101. {qulab-2.9.8 → qulab-2.9.10}/qulab/typing.py +0 -0
  102. {qulab-2.9.8 → qulab-2.9.10}/qulab/utils.py +0 -0
  103. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/__init__.py +0 -0
  104. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/__main__.py +0 -0
  105. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/_autoplot.py +0 -0
  106. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/plot_circ.py +0 -0
  107. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/plot_layout.py +0 -0
  108. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/plot_seq.py +0 -0
  109. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/qdat.py +0 -0
  110. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/rot3d.py +0 -0
  111. {qulab-2.9.8 → qulab-2.9.10}/qulab/visualization/widgets.py +0 -0
  112. {qulab-2.9.8 → qulab-2.9.10}/setup.cfg +0 -0
  113. {qulab-2.9.8 → qulab-2.9.10}/setup.py +0 -0
  114. {qulab-2.9.8 → qulab-2.9.10}/src/qulab.h +0 -0
  115. {qulab-2.9.8 → qulab-2.9.10}/tests/test_kad.py +0 -0
  116. {qulab-2.9.8 → qulab-2.9.10}/tests/test_scan.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: QuLab
3
- Version: 2.9.8
3
+ Version: 2.9.10
4
4
  Summary: contral instruments and manage data
5
5
  Author-email: feihoo87 <feihoo87@gmail.com>
6
6
  Maintainer-email: feihoo87 <feihoo87@gmail.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: QuLab
3
- Version: 2.9.8
3
+ Version: 2.9.10
4
4
  Summary: contral instruments and manage data
5
5
  Author-email: feihoo87 <feihoo87@gmail.com>
6
6
  Maintainer-email: feihoo87 <feihoo87@gmail.com>
@@ -18,8 +18,13 @@ report, history = get_report_{server_port}("tcp://{server_address}:{server_port}
18
18
  """
19
19
 
20
20
  analysis_code = """
21
+ # report.state = 'OK'
21
22
  # report.parameters = {}
22
23
  # report.oracle = {}
24
+ # report.other_infomation = {}
25
+
26
+ report.parameters
27
+
23
28
  """
24
29
 
25
30
 
@@ -86,11 +91,16 @@ class ServerThread(threading.Thread):
86
91
 
87
92
 
88
93
  # 进入分析流程,启动服务并打印等待提示
89
- def get_result_or_wait_until_timeout(data: tuple[Report, Report | None],
94
+ def get_result_or_wait_until_timeout(report: Report, history: Report | None,
90
95
  timeout: float) -> Report:
91
- server = ServerThread(data, timeout)
96
+ server = ServerThread((report, history), timeout)
92
97
  server.start()
93
98
 
99
+ parameters = report.parameters
100
+ oracle = report.oracle
101
+ other_infomation = report.other_infomation
102
+ state = report.state
103
+
94
104
  # 格式化代码模板
95
105
  code = clip_template.format(server_address="127.0.0.1",
96
106
  server_port=server.port,
@@ -116,12 +126,20 @@ def get_result_or_wait_until_timeout(data: tuple[Report, Report | None],
116
126
  break
117
127
 
118
128
  result = server.wait_for_result()
119
- return result if result is not None else data
129
+ if result is None:
130
+ return (state, parameters, oracle, other_infomation, code)
131
+ else:
132
+ return result
120
133
 
121
134
 
122
135
  def manual_analysis(report: Report, history=None, timeout=3600):
123
136
  try:
124
- report = get_result_or_wait_until_timeout((report, history), timeout)
137
+ (state, parameters, oracle, other_infomation,
138
+ code) = get_result_or_wait_until_timeout(report, history, timeout)
139
+ report.parameters = parameters
140
+ report.oracle = oracle
141
+ report.state = state
142
+ report.other_infomation = other_infomation
125
143
  except Exception as e:
126
144
  pass
127
145
  return report
@@ -152,13 +170,19 @@ def submit_report(report: Report, address: str):
152
170
  ipy = IPython.get_ipython()
153
171
  if ipy is None:
154
172
  raise RuntimeError("请在 Jupyter Notebook 中运行此函数。")
155
-
156
- # ipy.user_ns['In'][-2]
173
+
174
+ code = ipy.user_ns['In'][-2]
175
+
176
+ parameters = report.parameters
177
+ oracle = report.oracle
178
+ other_infomation = report.other_infomation
179
+ state = report.state
157
180
 
158
181
  context = zmq.Context()
159
182
  sock = context.socket(zmq.REQ)
160
183
  sock.connect(address)
161
184
  # 提交处理后的结果
162
- sock.send(pickle.dumps(report))
185
+ sock.send(pickle.dumps(
186
+ (state, parameters, oracle, other_infomation, code)))
163
187
  ack = sock.recv()
164
188
  print("结果已提交。")
@@ -1,7 +1,7 @@
1
- import graphlib
1
+ import atexit
2
2
  import inspect
3
3
  import pickle
4
- import sys
4
+ import tempfile
5
5
  import warnings
6
6
  from importlib.util import module_from_spec, spec_from_file_location
7
7
  from pathlib import Path
@@ -333,17 +333,18 @@ def load_workflow_from_file(file_name: str,
333
333
  def load_workflow_from_source_code(workflow_id: str,
334
334
  source_code: str,
335
335
  package='workflows') -> WorkflowType:
336
- path = Path(workflow_id)
337
- module_name = f"{package}.{'.'.join([*path.parts[:-1], path.stem])}"
336
+ workflow_path = Path(workflow_id)
337
+ module_name = f"{package}.{'.'.join([*workflow_path.parts[:-1], workflow_path.stem])}"
338
+
339
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.py').name
340
+ with open(temp_file, 'w') as f:
341
+ f.write(source_code)
342
+
343
+ atexit.register(lambda f=temp_file: Path(f).unlink(missing_ok=True))
338
344
 
339
- # 创建一个新的模块对象
340
- module = ModuleType(module_name)
341
- # 将模块注册到sys.modules中
342
- sys.modules[module_name] = module
343
- # 将源代码编译成字节码
344
- code = compile(source_code, '<string>', 'exec')
345
- # 在模块的命名空间中执行字节码
346
- exec(code, module.__dict__)
345
+ spec = spec_from_file_location(module_name, temp_file)
346
+ module = module_from_spec(spec)
347
+ spec.loader.exec_module(module)
347
348
 
348
349
  module.__source__ = source_code
349
350
  module.__mtime__ = 0
@@ -65,7 +65,7 @@ class Report():
65
65
 
66
66
  def __getstate__(self):
67
67
  state = self.__dict__.copy()
68
- state.pop('base_path')
68
+ state.pop('base_path', None)
69
69
  for k in ['path', 'previous_path', 'config_path', 'script_path']:
70
70
  if state[k] is not None:
71
71
  state[k] = str(state[k])
@@ -0,0 +1 @@
1
+ __version__ = "2.9.10"
@@ -1 +0,0 @@
1
- __version__ = "2.9.8"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes