mccode-plumber 0.13.1__tar.gz → 0.13.2__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 (46) hide show
  1. {mccode_plumber-0.13.1/src/mccode_plumber.egg-info → mccode_plumber-0.13.2}/PKG-INFO +3 -3
  2. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/pyproject.toml +2 -2
  3. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2/src/mccode_plumber.egg-info}/PKG-INFO +3 -3
  4. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber.egg-info/requires.txt +2 -2
  5. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/tests/test_splitrun.py +28 -15
  6. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/.github/workflows/pip.yml +0 -0
  7. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/.github/workflows/wheels.yml +0 -0
  8. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/.gitignore +0 -0
  9. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/README.md +0 -0
  10. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/setup.cfg +0 -0
  11. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/__init__.py +0 -0
  12. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/conductor.py +0 -0
  13. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/epics.py +0 -0
  14. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/CommandChannel.py +0 -0
  15. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/CommandHandler.py +0 -0
  16. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/CommandStatus.py +0 -0
  17. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/InThreadStatusTracker.py +0 -0
  18. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/JobHandler.py +0 -0
  19. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/JobStatus.py +0 -0
  20. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/KafkaTopicUrl.py +0 -0
  21. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/StateExtractor.py +0 -0
  22. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/WorkerFinder.py +0 -0
  23. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/WorkerJobPool.py +0 -0
  24. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/WorkerStatus.py +0 -0
  25. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/WriteJob.py +0 -0
  26. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/file_writer_control/__init__.py +0 -0
  27. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/forwarder.py +0 -0
  28. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/kafka.py +0 -0
  29. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/__init__.py +0 -0
  30. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/efu.py +0 -0
  31. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/ensure.py +0 -0
  32. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/epics.py +0 -0
  33. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/forwarder.py +0 -0
  34. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/manager.py +0 -0
  35. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/orchestrate.py +0 -0
  36. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/manage/writer.py +0 -0
  37. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/mccode.py +0 -0
  38. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/splitrun.py +0 -0
  39. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/utils.py +0 -0
  40. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber/writer.py +0 -0
  41. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber.egg-info/SOURCES.txt +0 -0
  42. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber.egg-info/dependency_links.txt +0 -0
  43. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber.egg-info/entry_points.txt +0 -0
  44. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/src/mccode_plumber.egg-info/top_level.txt +0 -0
  45. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/tests/test_epics.py +0 -0
  46. {mccode_plumber-0.13.1 → mccode_plumber-0.13.2}/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.1
3
+ Version: 0.13.2
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.1
10
+ Requires-Dist: restage>=0.8.2
11
11
  Requires-Dist: mccode-to-kafka>=0.2.2
12
- Requires-Dist: moreniius>=0.5.0
12
+ Requires-Dist: moreniius>=0.5.1
13
13
  Requires-Dist: icecream
14
14
  Requires-Dist: ephemeral-port-reserve
15
15
 
@@ -8,9 +8,9 @@ dependencies = [
8
8
  'p4p',
9
9
  'kafka-python>=2.2.11',
10
10
  'ess-streaming-data-types>=0.14.0',
11
- 'restage>=0.8.1',
11
+ 'restage>=0.8.2',
12
12
  'mccode-to-kafka>=0.2.2',
13
- 'moreniius>=0.5.0',
13
+ 'moreniius>=0.5.1',
14
14
  'icecream',
15
15
  'ephemeral-port-reserve',
16
16
  ]
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mccode-plumber
3
- Version: 0.13.1
3
+ Version: 0.13.2
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.1
10
+ Requires-Dist: restage>=0.8.2
11
11
  Requires-Dist: mccode-to-kafka>=0.2.2
12
- Requires-Dist: moreniius>=0.5.0
12
+ Requires-Dist: moreniius>=0.5.1
13
13
  Requires-Dist: icecream
14
14
  Requires-Dist: ephemeral-port-reserve
15
15
 
@@ -1,8 +1,8 @@
1
1
  p4p
2
2
  kafka-python>=2.2.11
3
3
  ess-streaming-data-types>=0.14.0
4
- restage>=0.8.1
4
+ restage>=0.8.2
5
5
  mccode-to-kafka>=0.2.2
6
- moreniius>=0.5.0
6
+ moreniius>=0.5.1
7
7
  icecream
8
8
  ephemeral-port-reserve
@@ -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, (None, 10000, None))
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, (None, 123, None))
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()