mccode-plumber 0.13.1__tar.gz → 0.13.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.
- {mccode_plumber-0.13.1/src/mccode_plumber.egg-info → mccode_plumber-0.13.3}/PKG-INFO +3 -3
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/pyproject.toml +2 -2
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/orchestrate.py +2 -2
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/splitrun.py +1 -1
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3/src/mccode_plumber.egg-info}/PKG-INFO +3 -3
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/requires.txt +2 -2
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/tests/test_splitrun.py +28 -15
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/.github/workflows/pip.yml +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/.github/workflows/wheels.yml +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/.gitignore +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/README.md +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/setup.cfg +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/__init__.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/conductor.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/epics.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/CommandChannel.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/CommandHandler.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/CommandStatus.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/InThreadStatusTracker.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/JobHandler.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/JobStatus.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/KafkaTopicUrl.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/StateExtractor.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/WorkerFinder.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/WorkerJobPool.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/WorkerStatus.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/WriteJob.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/__init__.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/forwarder.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/kafka.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/__init__.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/efu.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/ensure.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/epics.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/forwarder.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/manager.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/manage/writer.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/mccode.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/utils.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/writer.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/SOURCES.txt +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/dependency_links.txt +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/entry_points.txt +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/top_level.txt +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/tests/test_epics.py +0 -0
- {mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/tests/test_writer.py +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mccode-plumber
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.3
|
|
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
|
|
7
7
|
Requires-Dist: p4p
|
|
8
8
|
Requires-Dist: kafka-python>=2.2.11
|
|
9
9
|
Requires-Dist: ess-streaming-data-types>=0.14.0
|
|
10
|
-
Requires-Dist: restage>=0.8.
|
|
10
|
+
Requires-Dist: restage>=0.8.2
|
|
11
11
|
Requires-Dist: mccode-to-kafka>=0.2.2
|
|
12
|
-
Requires-Dist: moreniius>=0.5.
|
|
12
|
+
Requires-Dist: moreniius>=0.5.1
|
|
13
13
|
Requires-Dist: icecream
|
|
14
14
|
Requires-Dist: ephemeral-port-reserve
|
|
15
15
|
|
|
@@ -357,9 +357,9 @@ def main():
|
|
|
357
357
|
from restage.splitrun import parse_splitrun
|
|
358
358
|
from mccode_plumber.splitrun import monitors_to_kafka_callback_with_arguments
|
|
359
359
|
args, parameters, precision = parse_splitrun(make_splitrun_nexus_parser())
|
|
360
|
-
instr = get_mcstas_instr(args.instrument
|
|
360
|
+
instr = get_mcstas_instr(args.instrument)
|
|
361
361
|
|
|
362
|
-
structure = load_file_json(args.structure if args.structure else Path(args.instrument
|
|
362
|
+
structure = load_file_json(args.structure if args.structure else Path(args.instrument).with_suffix('.json'))
|
|
363
363
|
broker = 'localhost:9092'
|
|
364
364
|
monitor_source = 'mccode-to-kafka'
|
|
365
365
|
callback_topics = get_topics_json(structure) # all structure-topics might be monitor topics?
|
|
@@ -27,6 +27,6 @@ def main():
|
|
|
27
27
|
from .mccode import get_mcstas_instr
|
|
28
28
|
from restage.splitrun import splitrun_args, parse_splitrun
|
|
29
29
|
args, parameters, precision = parse_splitrun(make_parser())
|
|
30
|
-
instr = get_mcstas_instr(args.instrument
|
|
30
|
+
instr = get_mcstas_instr(args.instrument)
|
|
31
31
|
callback, callback_args = monitors_to_kafka_callback_with_arguments(args.broker, args.source, args.topic)
|
|
32
32
|
return splitrun_args(instr, parameters, precision, args, callback=callback, callback_arguments=callback_args)
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mccode-plumber
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.3
|
|
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
|
|
7
7
|
Requires-Dist: p4p
|
|
8
8
|
Requires-Dist: kafka-python>=2.2.11
|
|
9
9
|
Requires-Dist: ess-streaming-data-types>=0.14.0
|
|
10
|
-
Requires-Dist: restage>=0.8.
|
|
10
|
+
Requires-Dist: restage>=0.8.2
|
|
11
11
|
Requires-Dist: mccode-to-kafka>=0.2.2
|
|
12
|
-
Requires-Dist: moreniius>=0.5.
|
|
12
|
+
Requires-Dist: moreniius>=0.5.1
|
|
13
13
|
Requires-Dist: icecream
|
|
14
14
|
Requires-Dist: ephemeral-port-reserve
|
|
15
15
|
|
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
import unittest
|
|
2
|
+
from mccode_plumber.splitrun import make_parser
|
|
3
|
+
from restage.splitrun import args_fixup
|
|
2
4
|
|
|
3
|
-
# FIXME These tests exercise internal details of the splitrun parser,
|
|
4
|
-
# which we don't depend on since we _always_ call `parse_splitrun({our parser}`)
|
|
5
|
-
# which rearranges ArgParse's results before returning
|
|
6
|
-
# (args, parameters, precision) therefore, directly checking the ArgParse result
|
|
7
|
-
# is fraught and these tests may fail at any internal change in restage
|
|
8
|
-
# TODO A future restage release will include an `args_fixup` function that can be used
|
|
9
|
-
# to get the correct output args of `parse_splitrun` in our testing here.
|
|
10
5
|
|
|
11
6
|
class SplitrunTestCase(unittest.TestCase):
|
|
12
7
|
def test_parsing(self):
|
|
13
|
-
from mccode_plumber.splitrun import make_parser
|
|
14
8
|
parser = make_parser()
|
|
15
|
-
args = parser.parse_args(['--broker', 'l:9092', '--source', 'm', '-n', '10000', 'inst.h5', '--', 'a=1:4', 'b=2:5'])
|
|
9
|
+
args = args_fixup(parser.parse_args(['--broker', 'l:9092', '--source', 'm', '-n', '10000', 'inst.h5', '--', 'a=1:4', 'b=2:5']))
|
|
16
10
|
self.assertEqual(args.instrument, 'inst.h5')
|
|
17
11
|
self.assertEqual(args.broker, 'l:9092')
|
|
18
12
|
self.assertEqual(args.source, 'm')
|
|
19
|
-
self.assertEqual(args.ncount,
|
|
13
|
+
self.assertEqual(args.ncount, 10000)
|
|
20
14
|
self.assertEqual(args.parameters, ['a=1:4', 'b=2:5'])
|
|
21
15
|
self.assertFalse(args.parallel)
|
|
22
16
|
|
|
23
17
|
def test_mixed_order_throws(self):
|
|
24
|
-
from mccode_plumber.splitrun import make_parser
|
|
25
18
|
parser = make_parser()
|
|
26
19
|
parser.prog = "{{This failed before but works now? Why did it stop throwing?}}"
|
|
27
20
|
pa = parser.parse_args
|
|
@@ -39,18 +32,38 @@ class SplitrunTestCase(unittest.TestCase):
|
|
|
39
32
|
self.assertEqual(sort_args(['inst.h5', '-n', '10000', 'a=1:4', 'b=2:5']), ['-n', '10000', 'inst.h5', 'a=1:4', 'b=2:5'])
|
|
40
33
|
|
|
41
34
|
def test_sorted_mixed_order_does_not_throw(self):
|
|
42
|
-
from mccode_plumber.splitrun import make_parser
|
|
43
35
|
from mccode_antlr.run.runner import sort_args
|
|
44
36
|
parser = make_parser()
|
|
45
|
-
args = parser.parse_args(sort_args(['inst.h5', '--broker', 'www.github.com:9093', '--source', 'dev/null',
|
|
46
|
-
'-n', '123', '--parallel', '--', 'a=1:4', 'b=2:5']))
|
|
37
|
+
args = args_fixup(parser.parse_args(sort_args(['inst.h5', '--broker', 'www.github.com:9093', '--source', 'dev/null',
|
|
38
|
+
'-n', '123', '--parallel', '--', 'a=1:4', 'b=2:5'])))
|
|
47
39
|
self.assertEqual(args.instrument, 'inst.h5')
|
|
48
40
|
self.assertEqual(args.broker, 'www.github.com:9093')
|
|
49
41
|
self.assertEqual(args.source, 'dev/null')
|
|
50
|
-
self.assertEqual(args.ncount,
|
|
42
|
+
self.assertEqual(args.ncount, 123)
|
|
51
43
|
self.assertEqual(args.parameters, ['a=1:4', 'b=2:5'])
|
|
52
44
|
self.assertTrue(args.parallel)
|
|
53
45
|
|
|
46
|
+
def test_ncount_limits(self):
|
|
47
|
+
args = args_fixup(make_parser().parse_args([
|
|
48
|
+
'inst.json', '--broker', 'l:9092', '--source', 'm',
|
|
49
|
+
'-n', '1M', '--nmin', '100k', '--nmax', '1G'
|
|
50
|
+
]))
|
|
51
|
+
self.assertEqual(args.ncount, 10**6)
|
|
52
|
+
self.assertEqual(args.nmin, 100000)
|
|
53
|
+
self.assertEqual(args.nmax, 10**9)
|
|
54
|
+
args = args_fixup(make_parser().parse_args([
|
|
55
|
+
'inst.json', '--broker', 'l:9092', '--source', 'm', '-n', '100k]1M[1G'
|
|
56
|
+
]))
|
|
57
|
+
self.assertEqual(args.ncount, 10 ** 6)
|
|
58
|
+
self.assertEqual(args.nmin, 100000)
|
|
59
|
+
self.assertEqual(args.nmax, 10 ** 9)
|
|
60
|
+
args = args_fixup(make_parser().parse_args([
|
|
61
|
+
'inst.json', '--broker', 'l:9092', '--source', 'm', '-n', '1-1Ki+Mi'
|
|
62
|
+
]))
|
|
63
|
+
self.assertEqual(args.ncount, 2**10)
|
|
64
|
+
self.assertEqual(args.nmin, 1)
|
|
65
|
+
self.assertEqual(args.nmax, 2**20)
|
|
66
|
+
|
|
54
67
|
|
|
55
68
|
if __name__ == '__main__':
|
|
56
69
|
unittest.main()
|
|
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.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/JobHandler.py
RENAMED
|
File without changes
|
{mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/JobStatus.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber/file_writer_control/WriteJob.py
RENAMED
|
File without changes
|
{mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mccode_plumber-0.13.1 → mccode_plumber-0.13.3}/src/mccode_plumber.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|