QuLab 2.0.8__tar.gz → 2.0.9__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 (94) hide show
  1. {qulab-2.0.8 → qulab-2.0.9}/PKG-INFO +1 -1
  2. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/PKG-INFO +1 -1
  3. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/recorder.py +17 -8
  4. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/scan.py +6 -5
  5. qulab-2.0.9/qulab/version.py +1 -0
  6. qulab-2.0.8/qulab/version.py +0 -1
  7. {qulab-2.0.8 → qulab-2.0.9}/LICENSE +0 -0
  8. {qulab-2.0.8 → qulab-2.0.9}/MANIFEST.in +0 -0
  9. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/SOURCES.txt +0 -0
  10. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/dependency_links.txt +0 -0
  11. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/entry_points.txt +0 -0
  12. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/requires.txt +0 -0
  13. {qulab-2.0.8 → qulab-2.0.9}/QuLab.egg-info/top_level.txt +0 -0
  14. {qulab-2.0.8 → qulab-2.0.9}/README.md +0 -0
  15. {qulab-2.0.8 → qulab-2.0.9}/pyproject.toml +0 -0
  16. {qulab-2.0.8 → qulab-2.0.9}/qulab/__init__.py +0 -0
  17. {qulab-2.0.8 → qulab-2.0.9}/qulab/__main__.py +0 -0
  18. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/__init__.py +0 -0
  19. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/__main__.py +0 -0
  20. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/config.py +0 -0
  21. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/dataset.py +0 -0
  22. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/event_queue.py +0 -0
  23. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/mainwindow.py +0 -0
  24. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/monitor.py +0 -0
  25. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/ploter.py +0 -0
  26. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/qt_compat.py +0 -0
  27. {qulab-2.0.8 → qulab-2.0.9}/qulab/monitor/toolbar.py +0 -0
  28. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/__init__.py +0 -0
  29. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/curd.py +0 -0
  30. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/expression.py +0 -0
  31. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/models.py +0 -0
  32. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/optimize.py +0 -0
  33. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/query_record.py +0 -0
  34. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/server.py +0 -0
  35. {qulab-2.0.8 → qulab-2.0.9}/qulab/scan/utils.py +0 -0
  36. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/__init__.py +0 -0
  37. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/__main__.py +0 -0
  38. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/backend/__init__.py +0 -0
  39. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/backend/redis.py +0 -0
  40. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/base_dataset.py +0 -0
  41. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/chunk.py +0 -0
  42. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/dataset.py +0 -0
  43. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/file.py +0 -0
  44. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/__init__.py +0 -0
  45. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/base.py +0 -0
  46. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/config.py +0 -0
  47. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/file.py +0 -0
  48. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/ipy.py +0 -0
  49. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/models.py +0 -0
  50. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/record.py +0 -0
  51. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/report.py +0 -0
  52. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/models/tag.py +0 -0
  53. {qulab-2.0.8 → qulab-2.0.9}/qulab/storage/storage.py +0 -0
  54. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/__init__.py +0 -0
  55. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/chat.py +0 -0
  56. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/device/__init__.py +0 -0
  57. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/device/basedevice.py +0 -0
  58. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/device/loader.py +0 -0
  59. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/device/utils.py +0 -0
  60. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/drivers/FakeInstrument.py +0 -0
  61. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/drivers/__init__.py +0 -0
  62. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/ipy_events.py +0 -0
  63. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/__init__.py +0 -0
  64. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/bencoder.py +0 -0
  65. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/cli.py +0 -0
  66. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/dhcp.py +0 -0
  67. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/dhcpd.py +0 -0
  68. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/kad.py +0 -0
  69. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/kcp.py +0 -0
  70. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/net/nginx.py +0 -0
  71. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/progress.py +0 -0
  72. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/__init__.py +0 -0
  73. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/client.py +0 -0
  74. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/exceptions.py +0 -0
  75. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/msgpack.py +0 -0
  76. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/msgpack.pyi +0 -0
  77. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/rpc.py +0 -0
  78. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/serialize.py +0 -0
  79. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/server.py +0 -0
  80. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/socket.py +0 -0
  81. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/utils.py +0 -0
  82. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/worker.py +0 -0
  83. {qulab-2.0.8 → qulab-2.0.9}/qulab/sys/rpc/zmq_socket.py +0 -0
  84. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/__init__.py +0 -0
  85. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/__main__.py +0 -0
  86. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/_autoplot.py +0 -0
  87. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/plot_layout.py +0 -0
  88. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/plot_seq.py +0 -0
  89. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/qdat.py +0 -0
  90. {qulab-2.0.8 → qulab-2.0.9}/qulab/visualization/widgets.py +0 -0
  91. {qulab-2.0.8 → qulab-2.0.9}/setup.cfg +0 -0
  92. {qulab-2.0.8 → qulab-2.0.9}/setup.py +0 -0
  93. {qulab-2.0.8 → qulab-2.0.9}/src/qulab.h +0 -0
  94. {qulab-2.0.8 → qulab-2.0.9}/tests/test_scan.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: QuLab
3
- Version: 2.0.8
3
+ Version: 2.0.9
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.1
2
2
  Name: QuLab
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: contral instruments and manage data
5
5
  Author-email: feihoo87 <feihoo87@gmail.com>
6
6
  Maintainer-email: feihoo87 <feihoo87@gmail.com>
@@ -216,6 +216,8 @@ class BufferList():
216
216
  class Record():
217
217
 
218
218
  def __init__(self, id, database, description=None):
219
+ from .scan import OptimizeSpace
220
+
219
221
  self.id = id
220
222
  self.database = database
221
223
  self.description = description
@@ -236,22 +238,29 @@ class Record():
236
238
  self.dims[name] = ()
237
239
  for level, range_list in self.description['loops'].items():
238
240
  for name, iterable in range_list:
239
- if isinstance(iterable, (np.ndarray, list, tuple, range)):
241
+ if isinstance(iterable, OptimizeSpace):
242
+ self.dims[name] = tuple(range(level + 1))
243
+ continue
244
+ elif isinstance(iterable, (np.ndarray, list, tuple, range)):
240
245
  self._items[name] = iterable
241
246
  self.independent_variables[name] = iterable
242
- self.dims[name] = (level, )
247
+ self.dims[name] = (level, )
243
248
 
244
249
  for level, group in self.description['order'].items():
245
250
  for names in group:
246
251
  for name in names:
247
- if name not in self.dims:
248
- if name not in self.description['dependents']:
252
+ if name not in self.description['dependents']:
253
+ if name not in self.dims:
249
254
  self.dims[name] = (level, )
250
- else:
251
- d = set()
252
- for n in self.description['dependents'][name]:
253
- d.update(self.dims[n])
255
+ else:
256
+ d = set()
257
+ for n in self.description['dependents'][name]:
258
+ d.update(self.dims[n])
259
+ if name not in self.dims:
254
260
  self.dims[name] = tuple(sorted(d))
261
+ else:
262
+ self.dims[name] = tuple(
263
+ sorted(set(self.dims[name]) | d))
255
264
 
256
265
  if self.is_local_record():
257
266
  self.database = Path(self.database)
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import copy
2
3
  import datetime
3
4
  import inspect
4
5
  import itertools
@@ -711,18 +712,18 @@ def assymbly(description):
711
712
  except:
712
713
  pass
713
714
 
714
- dependents = description['dependents'].copy()
715
+ dependents = copy.deepcopy(description['dependents'])
715
716
 
716
717
  for level in levels:
717
718
  range_list = description['loops'].get(level, [])
718
719
  if level > 0:
719
720
  if f'#__loop_{level}' not in description['dependents']:
720
- dependents[f'#__loop_{level}'] = []
721
- dependents[f'#__loop_{level}'].append(f'#__loop_{level-1}')
721
+ dependents[f'#__loop_{level}'] = set()
722
+ dependents[f'#__loop_{level}'].add(f'#__loop_{level-1}')
722
723
  for name, _ in range_list:
723
724
  if name not in description['dependents']:
724
- dependents[name] = []
725
- dependents[name].append(f'#__loop_{level}')
725
+ dependents[name] = set()
726
+ dependents[name].add(f'#__loop_{level}')
726
727
 
727
728
  def _get_all_depends(key, graph):
728
729
  ret = set()
@@ -0,0 +1 @@
1
+ __version__ = "2.0.9"
@@ -1 +0,0 @@
1
- __version__ = "2.0.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