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.
- {mccode_plumber-0.7.0/src/mccode_plumber.egg-info → mccode_plumber-0.7.1}/PKG-INFO +1 -1
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/epics.py +25 -11
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1/src/mccode_plumber.egg-info}/PKG-INFO +1 -1
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.github/workflows/pip.yml +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.github/workflows/wheels.yml +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/.gitignore +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/README.md +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/pyproject.toml +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/setup.cfg +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/__init__.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/conductor.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandChannel.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandHandler.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/CommandStatus.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/InThreadStatusTracker.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobHandler.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobStatus.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/KafkaTopicUrl.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/StateExtractor.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerFinder.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerJobPool.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerStatus.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WriteJob.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/__init__.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/forwarder.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/kafka.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/mccode.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/splitrun.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/utils.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/writer.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/SOURCES.txt +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/dependency_links.txt +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/entry_points.txt +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/requires.txt +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/top_level.txt +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_epics.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_splitrun.py +0 -0
- {mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/tests/test_writer.py +0 -0
|
@@ -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
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
|
|
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
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobHandler.py
RENAMED
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/JobStatus.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerFinder.py
RENAMED
|
File without changes
|
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WorkerStatus.py
RENAMED
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/WriteJob.py
RENAMED
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber/file_writer_control/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mccode_plumber-0.7.0 → mccode_plumber-0.7.1}/src/mccode_plumber.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|