QuLab 2.11.9__tar.gz → 2.11.11__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 (114) hide show
  1. {qulab-2.11.9 → qulab-2.11.11}/PKG-INFO +2 -1
  2. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/PKG-INFO +2 -1
  3. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/requires.txt +1 -0
  4. {qulab-2.11.9 → qulab-2.11.11}/pyproject.toml +1 -0
  5. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/cli.py +5 -1
  6. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/schedule.py +17 -6
  7. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/template.py +6 -1
  8. qulab-2.11.11/qulab/version.py +1 -0
  9. qulab-2.11.9/qulab/version.py +0 -1
  10. {qulab-2.11.9 → qulab-2.11.11}/LICENSE +0 -0
  11. {qulab-2.11.9 → qulab-2.11.11}/MANIFEST.in +0 -0
  12. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/SOURCES.txt +0 -0
  13. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/dependency_links.txt +0 -0
  14. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/entry_points.txt +0 -0
  15. {qulab-2.11.9 → qulab-2.11.11}/QuLab.egg-info/top_level.txt +0 -0
  16. {qulab-2.11.9 → qulab-2.11.11}/README.md +0 -0
  17. {qulab-2.11.9 → qulab-2.11.11}/qulab/__init__.py +0 -0
  18. {qulab-2.11.9 → qulab-2.11.11}/qulab/__main__.py +0 -0
  19. {qulab-2.11.9 → qulab-2.11.11}/qulab/cli/__init__.py +0 -0
  20. {qulab-2.11.9 → qulab-2.11.11}/qulab/cli/commands.py +0 -0
  21. {qulab-2.11.9 → qulab-2.11.11}/qulab/cli/config.py +0 -0
  22. {qulab-2.11.9 → qulab-2.11.11}/qulab/cli/decorators.py +0 -0
  23. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/__init__.py +0 -0
  24. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/analyze.py +0 -0
  25. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/load.py +0 -0
  26. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/registry.py +0 -0
  27. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/storage.py +0 -0
  28. {qulab-2.11.9 → qulab-2.11.11}/qulab/executor/utils.py +0 -0
  29. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/__init__.py +0 -0
  30. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/__main__.py +0 -0
  31. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/config.py +0 -0
  32. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/dataset.py +0 -0
  33. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/event_queue.py +0 -0
  34. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/mainwindow.py +0 -0
  35. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/monitor.py +0 -0
  36. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/ploter.py +0 -0
  37. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/qt_compat.py +0 -0
  38. {qulab-2.11.9 → qulab-2.11.11}/qulab/monitor/toolbar.py +0 -0
  39. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/__init__.py +0 -0
  40. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/curd.py +0 -0
  41. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/models.py +0 -0
  42. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/optimize.py +0 -0
  43. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/query.py +0 -0
  44. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/record.py +0 -0
  45. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/scan.py +0 -0
  46. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/server.py +0 -0
  47. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/space.py +0 -0
  48. {qulab-2.11.9 → qulab-2.11.11}/qulab/scan/utils.py +0 -0
  49. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/__init__.py +0 -0
  50. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/__main__.py +0 -0
  51. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/backend/__init__.py +0 -0
  52. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/backend/redis.py +0 -0
  53. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/base_dataset.py +0 -0
  54. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/chunk.py +0 -0
  55. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/dataset.py +0 -0
  56. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/file.py +0 -0
  57. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/__init__.py +0 -0
  58. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/base.py +0 -0
  59. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/config.py +0 -0
  60. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/file.py +0 -0
  61. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/ipy.py +0 -0
  62. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/models.py +0 -0
  63. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/record.py +0 -0
  64. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/report.py +0 -0
  65. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/models/tag.py +0 -0
  66. {qulab-2.11.9 → qulab-2.11.11}/qulab/storage/storage.py +0 -0
  67. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/__init__.py +0 -0
  68. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/chat.py +0 -0
  69. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/device/__init__.py +0 -0
  70. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/device/basedevice.py +0 -0
  71. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/device/loader.py +0 -0
  72. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/device/utils.py +0 -0
  73. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/drivers/FakeInstrument.py +0 -0
  74. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/drivers/__init__.py +0 -0
  75. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/ipy_events.py +0 -0
  76. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/__init__.py +0 -0
  77. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/bencoder.py +0 -0
  78. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/cli.py +0 -0
  79. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/dhcp.py +0 -0
  80. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/dhcpd.py +0 -0
  81. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/kad.py +0 -0
  82. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/kcp.py +0 -0
  83. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/net/nginx.py +0 -0
  84. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/progress.py +0 -0
  85. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/__init__.py +0 -0
  86. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/client.py +0 -0
  87. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/exceptions.py +0 -0
  88. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/msgpack.py +0 -0
  89. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/msgpack.pyi +0 -0
  90. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/router.py +0 -0
  91. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/rpc.py +0 -0
  92. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/serialize.py +0 -0
  93. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/server.py +0 -0
  94. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/socket.py +0 -0
  95. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/utils.py +0 -0
  96. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/worker.py +0 -0
  97. {qulab-2.11.9 → qulab-2.11.11}/qulab/sys/rpc/zmq_socket.py +0 -0
  98. {qulab-2.11.9 → qulab-2.11.11}/qulab/tools/__init__.py +0 -0
  99. {qulab-2.11.9 → qulab-2.11.11}/qulab/tools/connection_helper.py +0 -0
  100. {qulab-2.11.9 → qulab-2.11.11}/qulab/typing.py +0 -0
  101. {qulab-2.11.9 → qulab-2.11.11}/qulab/utils.py +0 -0
  102. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/__init__.py +0 -0
  103. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/__main__.py +0 -0
  104. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/_autoplot.py +0 -0
  105. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/plot_circ.py +0 -0
  106. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/plot_layout.py +0 -0
  107. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/plot_seq.py +0 -0
  108. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/qdat.py +0 -0
  109. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/rot3d.py +0 -0
  110. {qulab-2.11.9 → qulab-2.11.11}/qulab/visualization/widgets.py +0 -0
  111. {qulab-2.11.9 → qulab-2.11.11}/setup.cfg +0 -0
  112. {qulab-2.11.9 → qulab-2.11.11}/setup.py +0 -0
  113. {qulab-2.11.9 → qulab-2.11.11}/src/qulab.h +0 -0
  114. {qulab-2.11.9 → qulab-2.11.11}/tests/test_scan.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: QuLab
3
- Version: 2.11.9
3
+ Version: 2.11.11
4
4
  Summary: contral instruments and manage data
5
5
  Author-email: feihoo87 <feihoo87@gmail.com>
6
6
  Maintainer-email: feihoo87 <feihoo87@gmail.com>
@@ -49,6 +49,7 @@ Requires-Dist: wath>=1.1.6
49
49
  Requires-Dist: waveforms>=1.9.4
50
50
  Requires-Dist: rich>=14.0.0
51
51
  Provides-Extra: full
52
+ Requires-Dist: paramiko>=3.5.1; extra == "full"
52
53
  Requires-Dist: uvloop>=0.19.0; extra == "full"
53
54
  Dynamic: license-file
54
55
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: QuLab
3
- Version: 2.11.9
3
+ Version: 2.11.11
4
4
  Summary: contral instruments and manage data
5
5
  Author-email: feihoo87 <feihoo87@gmail.com>
6
6
  Maintainer-email: feihoo87 <feihoo87@gmail.com>
@@ -49,6 +49,7 @@ Requires-Dist: wath>=1.1.6
49
49
  Requires-Dist: waveforms>=1.9.4
50
50
  Requires-Dist: rich>=14.0.0
51
51
  Provides-Extra: full
52
+ Requires-Dist: paramiko>=3.5.1; extra == "full"
52
53
  Requires-Dist: uvloop>=0.19.0; extra == "full"
53
54
  Dynamic: license-file
54
55
 
@@ -24,4 +24,5 @@ waveforms>=1.9.4
24
24
  rich>=14.0.0
25
25
 
26
26
  [full]
27
+ paramiko>=3.5.1
27
28
  uvloop>=0.19.0
@@ -57,6 +57,7 @@ dynamic = ["version"]
57
57
 
58
58
  [project.optional-dependencies]
59
59
  full = [
60
+ "paramiko>=3.5.1",
60
61
  "uvloop>=0.19.0"
61
62
  ]
62
63
 
@@ -383,7 +383,11 @@ def parse_dynamic_option_value(value):
383
383
  parsed_value.append(ast.literal_eval(item))
384
384
  except (ValueError, SyntaxError):
385
385
  parsed_value.append(item)
386
- parsed_value = tuple(parsed_value)
386
+ if len(parsed_value) > 1 and isinstance(
387
+ parsed_value[-1], str) and parsed_value[-1] == "":
388
+ parsed_value = tuple(parsed_value[:-1])
389
+ else:
390
+ parsed_value = tuple(parsed_value)
387
391
  else:
388
392
  parsed_value = value
389
393
  return parsed_value
@@ -127,12 +127,23 @@ def check_state(workflow: WorkflowType, code_path: str | Path,
127
127
 
128
128
 
129
129
  @logger.catch(reraise=False)
130
- async def call_plot(node: WorkflowType, report: Report, check=False):
131
- if hasattr(node, 'plot') and callable(node.plot):
132
- if inspect.iscoroutinefunction(node.plot):
133
- await node.plot(report, check=check)
134
- else:
135
- node.plot(report)
130
+ async def call_plot(node: WorkflowType, report: Report):
131
+ if not hasattr(node, 'plot') or not callable(node.plot):
132
+ return
133
+
134
+ if inspect.iscoroutinefunction(node.plot):
135
+ figs = await node.plot(report)
136
+ else:
137
+ figs = node.plot(report)
138
+ if figs is None:
139
+ return
140
+ elif isinstance(figs, (list, tuple)):
141
+ for fig in figs:
142
+ # fig.savefig(report.base_path / f'{node.__workflow_id__}.png')
143
+ fig.close()
144
+ else:
145
+ # figs.savefig(report.base_path / f'{node.__workflow_id__}.png')
146
+ figs.close()
136
147
 
137
148
 
138
149
  async def call_check(workflow: WorkflowType, session_id: str,
@@ -12,7 +12,12 @@ _notset = object()
12
12
 
13
13
 
14
14
  def VAR(name: str, /, *, default: Any = _notset) -> Any:
15
- return name
15
+ if default is _notset:
16
+ raise TemplateKeyError(
17
+ f"The variable '{name}' is not provided in mapping."
18
+ )
19
+ else:
20
+ return default
16
21
 
17
22
 
18
23
  def encode_mapping(mapping):
@@ -0,0 +1 @@
1
+ __version__ = "2.11.11"
@@ -1 +0,0 @@
1
- __version__ = "2.11.9"
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