ewoksdata 0.4.1__tar.gz → 0.4.3__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 (36) hide show
  1. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/PKG-INFO +1 -1
  2. ewoksdata-0.4.3/pyproject.toml +6 -0
  3. ewoksdata-0.4.3/src/ewoksdata/__init__.py +1 -0
  4. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/blissdata/blissdatav1.py +26 -19
  5. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/blissdata/blissdatavid31.py +25 -17
  6. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata.egg-info/PKG-INFO +1 -1
  7. ewoksdata-0.4.1/pyproject.toml +0 -6
  8. ewoksdata-0.4.1/src/ewoksdata/__init__.py +0 -1
  9. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/LICENSE.md +0 -0
  10. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/README.md +0 -0
  11. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/setup.cfg +0 -0
  12. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/setup.py +0 -0
  13. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/__init__.py +0 -0
  14. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/bliss.py +0 -0
  15. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/blissdata/__init__.py +0 -0
  16. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/blissdata/blissdatav0.py +0 -0
  17. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/blissdata/exceptions.py +0 -0
  18. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/hdf5/__init__.py +0 -0
  19. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/hdf5/config.py +0 -0
  20. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/hdf5/dataset_writer.py +0 -0
  21. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/hdf5/types.py +0 -0
  22. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/nexus.py +0 -0
  23. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/url.py +0 -0
  24. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/data/utils.py +0 -0
  25. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/__init__.py +0 -0
  26. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/conftest.py +0 -0
  27. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/data/__init__.py +0 -0
  28. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/data/bliss_scans.py +0 -0
  29. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/test_data_bliss.py +0 -0
  30. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/test_data_hdf5.py +0 -0
  31. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/test_data_nexus.py +0 -0
  32. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata/tests/test_dataset_writer.py +0 -0
  33. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata.egg-info/SOURCES.txt +0 -0
  34. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata.egg-info/dependency_links.txt +0 -0
  35. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata.egg-info/requires.txt +0 -0
  36. {ewoksdata-0.4.1 → ewoksdata-0.4.3}/src/ewoksdata.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ewoksdata
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: Ewoks tasks for data access
5
5
  Home-page: https://gitlab.esrf.fr/workflow/ewoksapps/ewoksdata/
6
6
  Author: ESRF
@@ -0,0 +1,6 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=46.4,<63",
4
+ "wheel",
5
+ ]
6
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1 @@
1
+ __version__ = "0.4.3"
@@ -1,4 +1,5 @@
1
1
  from numbers import Number
2
+ from collections import Counter
2
3
  from typing import List, Optional
3
4
 
4
5
  from numpy.typing import ArrayLike
@@ -44,32 +45,38 @@ def iter_bliss_scan_data_from_memory(
44
45
  counter_streams[name] = stream
45
46
 
46
47
  client = StreamingClient({**lima_streams, **counter_streams})
48
+ lima_buffer_count = Counter()
47
49
 
48
50
  while True:
49
51
  try:
50
52
  output = client.read()
51
53
  except EndOfStream:
52
54
  break
53
- else:
54
- for stream, data in output.items():
55
- _, payload = data # drop index
56
- if stream.name in lima_streams:
57
- lima_client = lima_clients[stream.name]
58
- prev_len = len(lima_client)
59
- lima_client.update(**payload[-1])
60
- try:
61
- data = lima_client[prev_len - 1 :]
62
- except IndexNoMoreThereError:
63
- continue
64
- buffers[stream.name.split(":")[-2]].extend(data)
65
- else:
66
- buffers[stream.name.split(":")[-1]].extend(payload)
55
+ for stream, (_, payload) in output.items():
56
+ name_parts = stream.name.split(":")
57
+ if stream.name in lima_streams:
58
+ # payload is a sequence of JSON statuses
59
+ ctr_name = name_parts[-2]
60
+ last_status = payload[-1]
61
+ lima_client = lima_clients[stream.name]
62
+ lima_client.update(**last_status)
63
+ n_already_read = lima_buffer_count[ctr_name]
64
+ try:
65
+ data = lima_client[n_already_read:]
66
+ except IndexNoMoreThereError:
67
+ continue
68
+ buffers[ctr_name].extend(data)
69
+ lima_buffer_count[ctr_name] += len(data)
70
+ else:
71
+ # payload is a sequence of data points (0D, 1D, 2D)
72
+ ctr_name = name_parts[-1]
73
+ buffers[ctr_name].extend(payload)
67
74
 
68
- nyield = min(len(v) for v in buffers.values())
69
- if nyield:
70
- for i in range(nyield):
71
- yield {name: values[i] for name, values in buffers.items()}
72
- buffers = {name: values[nyield:] for name, values in buffers.items()}
75
+ nyield = min(len(v) for v in buffers.values())
76
+ if nyield:
77
+ for i in range(nyield):
78
+ yield {name: values[i] for name, values in buffers.items()}
79
+ buffers = {name: values[nyield:] for name, values in buffers.items()}
73
80
 
74
81
 
75
82
  def last_lima_image(channel_info: dict) -> ArrayLike:
@@ -1,4 +1,5 @@
1
1
  from numbers import Number
2
+ from collections import Counter
2
3
  from typing import List, Optional
3
4
 
4
5
  from numpy.typing import ArrayLike
@@ -35,39 +36,46 @@ def iter_bliss_scan_data_from_memory(
35
36
 
36
37
  lima_streams = dict()
37
38
  lima_clients = dict()
39
+ lima_buffer_count = dict()
38
40
  counter_streams = dict()
39
41
  for name, stream in scan.streams.items():
40
42
  if stream.encoding["type"] == "json" and "lima" in stream.info["format"]:
41
43
  if name.split(":")[-2] in lima_names:
42
44
  lima_streams[name] = stream
43
45
  lima_clients[name] = lima_client_factory(stream.info)
46
+ lima_buffer_count[name] = 0
44
47
  elif name.split(":")[-1] in counter_names:
45
48
  counter_streams[name] = stream
46
49
 
47
50
  client = StreamingClient({**lima_streams, **counter_streams})
51
+ lima_buffer_count = Counter()
48
52
 
49
53
  while True:
50
54
  try:
51
55
  output = client.read()
52
56
  except EndOfStream:
53
57
  break
54
- else:
55
- for stream, data in output.items():
56
- _, payload = data # drop index
57
- if stream.name in lima_streams:
58
- lima_client = lima_clients[stream.name]
59
- prev_len = len(lima_client)
60
- lima_client.update(**payload[-1])
61
- data = lima_client[prev_len - 1 :]
62
- buffers[stream.name.split(":")[-2]].extend(data)
63
- else:
64
- buffers[stream.name.split(":")[-1]].extend(payload)
65
-
66
- nyield = min(len(v) for v in buffers.values())
67
- if nyield:
68
- for i in range(nyield):
69
- yield {name: values[i] for name, values in buffers.items()}
70
- buffers = {name: values[nyield:] for name, values in buffers.items()}
58
+ for stream, (_, payload) in output.items():
59
+ name_parts = stream.name.split(":")
60
+ if stream.name in lima_streams:
61
+ # payload is a sequence of JSON statuses
62
+ ctr_name = name_parts[-2]
63
+ lima_client = lima_clients[stream.name]
64
+ lima_client.update(**payload[-1])
65
+ n_already_read = lima_buffer_count[ctr_name]
66
+ data = lima_client[n_already_read:]
67
+ buffers[ctr_name].extend(data)
68
+ lima_buffer_count[ctr_name] += len(data)
69
+ else:
70
+ # payload is a sequence of data points (0D, 1D, 2D)
71
+ ctr_name = name_parts[-1]
72
+ buffers[ctr_name].extend(payload)
73
+
74
+ nyield = min(len(v) for v in buffers.values())
75
+ if nyield:
76
+ for i in range(nyield):
77
+ yield {name: values[i] for name, values in buffers.items()}
78
+ buffers = {name: values[nyield:] for name, values in buffers.items()}
71
79
 
72
80
 
73
81
  def last_lima_image(channel_info: dict) -> ArrayLike:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ewoksdata
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: Ewoks tasks for data access
5
5
  Home-page: https://gitlab.esrf.fr/workflow/ewoksapps/ewoksdata/
6
6
  Author: ESRF
@@ -1,6 +0,0 @@
1
- [build-system]
2
- requires = [
3
- "setuptools>=46.4<63",
4
- "wheel",
5
- ]
6
- build-backend = "setuptools.build_meta"
@@ -1 +0,0 @@
1
- __version__ = "0.4.1"
File without changes
File without changes
File without changes
File without changes