mccode-plumber 0.7.0__tar.gz → 0.7.1__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 (38) hide show
  1. {mccode_plumber-0.7.0/src/mccode_plumber.egg-info → mccode_plumber-0.7.1}/PKG-INFO +1 -1
  2. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/epics.py +25 -11
  3. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1/src/mccode_plumber.egg-info}/PKG-INFO +1 -1
  4. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.github/workflows/pip.yml +0 -0
  5. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.github/workflows/wheels.yml +0 -0
  6. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.gitignore +0 -0
  7. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/README.md +0 -0
  8. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/pyproject.toml +0 -0
  9. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/setup.cfg +0 -0
  10. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/__init__.py +0 -0
  11. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/conductor.py +0 -0
  12. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandChannel.py +0 -0
  13. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandHandler.py +0 -0
  14. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandStatus.py +0 -0
  15. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/InThreadStatusTracker.py +0 -0
  16. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobHandler.py +0 -0
  17. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobStatus.py +0 -0
  18. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/KafkaTopicUrl.py +0 -0
  19. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/StateExtractor.py +0 -0
  20. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerFinder.py +0 -0
  21. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerJobPool.py +0 -0
  22. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerStatus.py +0 -0
  23. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WriteJob.py +0 -0
  24. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/__init__.py +0 -0
  25. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/forwarder.py +0 -0
  26. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/kafka.py +0 -0
  27. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/mccode.py +0 -0
  28. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/splitrun.py +0 -0
  29. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/utils.py +0 -0
  30. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/writer.py +0 -0
  31. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/SOURCES.txt +0 -0
  32. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/dependency_links.txt +0 -0
  33. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/entry_points.txt +0 -0
  34. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/requires.txt +0 -0
  35. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/top_level.txt +0 -0
  36. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_epics.py +0 -0
  37. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_splitrun.py +0 -0
  38. {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mccode-plumber
3
- Version: 0.7.0
3
+ Version: 0.7.1
4
4
  Author-email: Gregory Tucker <gregory.tucker@ess.eu>
5
5
  Classifier: License :: OSI Approved :: BSD License
6
6
  Description-Content-Type: text/markdown
@@ -72,6 +72,7 @@ def main(names: dict[str, NTScalar], prefix: str = None):
72
72
  for name, value in names.items():
73
73
  pv = SharedPV(initial=value, handler=MailboxHandler())
74
74
  provider.add(f'{prefix}{name}' if prefix else name, pv)
75
+ print(f'Add mailbox for {prefix}{name}')
75
76
  pvs.append(pv)
76
77
 
77
78
  print(f'Start mailbox server for {len(pvs)} PVs with prefix {prefix}')
@@ -101,20 +102,33 @@ def update():
101
102
  from argparse import ArgumentParser
102
103
  from p4p.client.thread import Context
103
104
  parser = ArgumentParser(description="Update the mailbox server with new values")
104
- parser.add_argument('address', type=str, help='The mailbox address of the value to be updated')
105
- parser.add_argument('value', type=str, help='The new value to be assigned to the mailbox')
105
+ parser.add_argument('address value', type=str, nargs='+', help='The mailbox address and value to be updated')
106
106
  args = parser.parse_args()
107
+ addresses_values = getattr(args, 'address value')
108
+
109
+ if len(addresses_values) == 0:
110
+ parser.print_help()
111
+ return
112
+
113
+ addresses = addresses_values[::2]
114
+ values = addresses_values[1::2]
115
+
116
+ if len(addresses_values) % 2:
117
+ print(f'Please provide address-value pairs. Provided {addresses=} {values=}')
107
118
 
108
119
  ctx = Context('pva')
109
- pv = ctx.get(args.address, throw=False)
110
- if isinstance(pv, float):
111
- ctx.put(args.address, float(args.value))
112
- elif isinstance(pv, int):
113
- ctx.put(args.address, int(args.value))
114
- elif isinstance(pv, str):
115
- ctx.put(args.address, str(args.value))
116
- else:
117
- raise ValueError(f'Unknown type {type(pv)} (this is likely a vector that I can not handle yet?)')
120
+ for address, value in zip(addresses, values):
121
+ pv = ctx.get(address, throw=False)
122
+ if isinstance(pv, float):
123
+ ctx.put(address, float(value))
124
+ elif isinstance(pv, int):
125
+ ctx.put(address, int(value))
126
+ elif isinstance(pv, str):
127
+ ctx.put(address, str(value))
128
+ elif isinstance(pv, TimeoutError):
129
+ print(f'[Timeout] Failed to update {address} with {value} (Unknown to EPICS?)')
130
+ else:
131
+ raise ValueError(f'Address {address} has unknown type {type(pv)}')
118
132
 
119
133
  ctx.disconnect()
120
134
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mccode-plumber
3
- Version: 0.7.0
3
+ Version: 0.7.1
4
4
  Author-email: Gregory Tucker <gregory.tucker@ess.eu>
5
5
  Classifier: License :: OSI Approved :: BSD License
6
6
  Description-Content-Type: text/markdown
File without changes
File without changes