ndscope 0.22.1__tar.gz → 0.22.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 (122) hide show
  1. {ndscope-0.22.1 → ndscope-0.22.3}/PKG-INFO +1 -1
  2. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/__version__.py +3 -3
  3. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/channel_select.py +12 -6
  4. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/configuration/configuration.py +3 -1
  5. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_util.py +7 -0
  6. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/PKG-INFO +1 -1
  7. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/scm_version.json +2 -2
  8. {ndscope-0.22.1 → ndscope-0.22.3}/CHANGELOG.md +0 -0
  9. {ndscope-0.22.1 → ndscope-0.22.3}/COPYING +0 -0
  10. {ndscope-0.22.1 → ndscope-0.22.3}/COPYING-GPL-3 +0 -0
  11. {ndscope-0.22.1 → ndscope-0.22.3}/MANIFEST.in +0 -0
  12. {ndscope-0.22.1 → ndscope-0.22.3}/NEWS.md +0 -0
  13. {ndscope-0.22.1 → ndscope-0.22.3}/README.md +0 -0
  14. {ndscope-0.22.1 → ndscope-0.22.3}/RELEASE.md +0 -0
  15. {ndscope-0.22.1 → ndscope-0.22.3}/bad.sh +0 -0
  16. {ndscope-0.22.1 → ndscope-0.22.3}/bad2.yaml +0 -0
  17. {ndscope-0.22.1 → ndscope-0.22.3}/bad_legend.yaml +0 -0
  18. {ndscope-0.22.1 → ndscope-0.22.3}/bad_ndscope.yaml +0 -0
  19. {ndscope-0.22.1 → ndscope-0.22.3}/bad_times.yaml +0 -0
  20. {ndscope-0.22.1 → ndscope-0.22.3}/big.yaml +0 -0
  21. {ndscope-0.22.1 → ndscope-0.22.3}/biglive.yaml +0 -0
  22. {ndscope-0.22.1 → ndscope-0.22.3}/calib.sh +0 -0
  23. {ndscope-0.22.1 → ndscope-0.22.3}/calib.yaml +0 -0
  24. {ndscope-0.22.1 → ndscope-0.22.3}/calib_arrakis.sh +0 -0
  25. {ndscope-0.22.1 → ndscope-0.22.3}/calib_arrakis.yaml +0 -0
  26. {ndscope-0.22.1 → ndscope-0.22.3}/dev.sh +0 -0
  27. {ndscope-0.22.1 → ndscope-0.22.3}/dts1 +0 -0
  28. {ndscope-0.22.1 → ndscope-0.22.3}/install_wheel +0 -0
  29. {ndscope-0.22.1 → ndscope-0.22.3}/live.sh +0 -0
  30. {ndscope-0.22.1 → ndscope-0.22.3}/live.yaml +0 -0
  31. {ndscope-0.22.1 → ndscope-0.22.3}/manual_tests/manual_test.yaml +0 -0
  32. {ndscope-0.22.1 → ndscope-0.22.3}/manual_tests/manual_test_live.yaml +0 -0
  33. {ndscope-0.22.1 → ndscope-0.22.3}/manual_tests/ndscope-test.txt +0 -0
  34. {ndscope-0.22.1 → ndscope-0.22.3}/manual_tests/old_manual_test.yaml +0 -0
  35. {ndscope-0.22.1 → ndscope-0.22.3}/manual_tests/test_results_2025_10_23.txt +0 -0
  36. {ndscope-0.22.1 → ndscope-0.22.3}/maturin.sh +0 -0
  37. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/__init__.py +0 -0
  38. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/__main__.py +0 -0
  39. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/_qt.py +0 -0
  40. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/axis.py +0 -0
  41. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/axisCtrlTemplate.ui +0 -0
  42. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/base_plot.py +0 -0
  43. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/cache.py +0 -0
  44. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/channel_config.ui +0 -0
  45. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/channel_config_dialog.ui +0 -0
  46. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/channel_list.ui +0 -0
  47. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/channel_select_dialog.ui +0 -0
  48. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/configuration/__init__.py +0 -0
  49. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/const.py +0 -0
  50. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/crosshair.py +0 -0
  51. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/cursors.py +0 -0
  52. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/data.py +0 -0
  53. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/data_source_determination.py +0 -0
  54. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dialog.py +0 -0
  55. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dialog_nds_auth.ui +0 -0
  56. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dialog_nds_ontape.ui +0 -0
  57. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dtt/__init__.py +0 -0
  58. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dtt/channel_trend_id.py +0 -0
  59. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/dtt/dtt.py +0 -0
  60. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/exceptions.py +0 -0
  61. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/export.py +0 -0
  62. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/kerberos.py +0 -0
  63. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/legend.py +0 -0
  64. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/markers.py +0 -0
  65. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/math_config.py +0 -0
  66. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/math_config.ui +0 -0
  67. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/__init__.py +0 -0
  68. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/dtt_messages.py +0 -0
  69. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/has_issues.py +0 -0
  70. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/message_windows/__init__.py +0 -0
  71. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/message_windows/log_list.py +0 -0
  72. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/message_windows/message_window.py +0 -0
  73. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/messages/messages.py +0 -0
  74. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/nds.py +0 -0
  75. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/plot.py +0 -0
  76. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/plotMenu.py +0 -0
  77. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/primary_view.py +0 -0
  78. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/result.py +0 -0
  79. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/ruff.toml +0 -0
  80. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/scatterPlotMenu.py +0 -0
  81. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/scatter_plot.py +0 -0
  82. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/scope.py +0 -0
  83. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/scope.ui +0 -0
  84. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/template.py +0 -0
  85. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/__init__.py +0 -0
  86. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test.yaml +0 -0
  87. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test0.yaml +0 -0
  88. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test1-1.yaml +0 -0
  89. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test1-2.yaml +0 -0
  90. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test1-3.yaml +0 -0
  91. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test1.yaml +0 -0
  92. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test2.stp +0 -0
  93. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test2.yaml +0 -0
  94. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test3.txt +0 -0
  95. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test3.yaml +0 -0
  96. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test4.xml +0 -0
  97. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/templates/test4.yaml +0 -0
  98. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_cache.py +0 -0
  99. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_cli.py +0 -0
  100. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_data_flow.py +0 -0
  101. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_layout.py +0 -0
  102. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_plot.py +0 -0
  103. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/test/test_window.py +0 -0
  104. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/trigger.py +0 -0
  105. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope/util.py +0 -0
  106. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/SOURCES.txt +0 -0
  107. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/dependency_links.txt +0 -0
  108. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/entry_points.txt +0 -0
  109. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/requires.txt +0 -0
  110. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/scm_file_list.json +0 -0
  111. {ndscope-0.22.1 → ndscope-0.22.3}/ndscope.egg-info/top_level.txt +0 -0
  112. {ndscope-0.22.1 → ndscope-0.22.3}/newdaq.sh +0 -0
  113. {ndscope-0.22.1 → ndscope-0.22.3}/past.sh +0 -0
  114. {ndscope-0.22.1 → ndscope-0.22.3}/past.yaml +0 -0
  115. {ndscope-0.22.1 → ndscope-0.22.3}/past2.yaml +0 -0
  116. {ndscope-0.22.1 → ndscope-0.22.3}/pidcheck.py +0 -0
  117. {ndscope-0.22.1 → ndscope-0.22.3}/pyproject.toml +0 -0
  118. {ndscope-0.22.1 → ndscope-0.22.3}/setup.cfg +0 -0
  119. {ndscope-0.22.1 → ndscope-0.22.3}/teststand_arrakis.sh +0 -0
  120. {ndscope-0.22.1 → ndscope-0.22.3}/teststand_arrakis.yaml +0 -0
  121. {ndscope-0.22.1 → ndscope-0.22.3}/trend.sh +0 -0
  122. {ndscope-0.22.1 → ndscope-0.22.3}/trend.yaml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndscope
3
- Version: 0.22.1
3
+ Version: 0.22.3
4
4
  Summary: Next-generation NDS time series plotting
5
5
  Author-email: Jameson Graef Rollins <jameson.rollins@ligo.org>, Patrick Thomas <patrick.thomas@ligo.org>, Erik von Reis <erik.vonreis@ligo.org>
6
6
  Maintainer-email: Jameson Graef Rollins <jameson.rollins@ligo.org>, Patrick Thomas <patrick.thomas@ligo.org>, Erik von Reis <erik.vonreis@ligo.org>
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.22.1'
22
- __version_tuple__ = version_tuple = (0, 22, 1)
21
+ __version__ = version = '0.22.3'
22
+ __version_tuple__ = version_tuple = (0, 22, 3)
23
23
 
24
- __commit_id__ = commit_id = 'g390176927'
24
+ __commit_id__ = commit_id = 'g4ca9d3562'
@@ -13,6 +13,12 @@ from qtpy.QtCore import Signal # type: ignore
13
13
  from ndscope.math_config import MathConfigDialog
14
14
 
15
15
  from ._qt import load_ui
16
+ from .configuration.configuration import load_config
17
+ from .data_source_determination import (
18
+ parse_data_source_args,
19
+ add_data_source_args,
20
+ get_first_data_source,
21
+ )
16
22
  from .plot import NDScopePlotChannel
17
23
 
18
24
  from typing import TYPE_CHECKING, Set, List, Dict
@@ -1415,10 +1421,7 @@ def main():
1415
1421
  description=DESCRIPTION,
1416
1422
  formatter_class=argparse.RawDescriptionHelpFormatter,
1417
1423
  )
1418
- parser.add_argument("--url", metavar="URL:PORT", help=f"Data source URL")
1419
- parser.add_argument(
1420
- "--nds", metavar="HOST[:PORT]", help=f"NDS server [{const.NDSSERVER}]"
1421
- )
1424
+ add_data_source_args(parser)
1422
1425
  parser.add_argument(
1423
1426
  "glob",
1424
1427
  nargs="?",
@@ -1428,7 +1431,10 @@ def main():
1428
1431
 
1429
1432
  args = parser.parse_args()
1430
1433
 
1431
- url_text = util.resolve_data_source(args.nds, args.url)
1434
+ args_conf = parse_data_source_args(args)
1435
+ load_config(args_conf)
1436
+
1437
+ url_text = get_first_data_source()
1432
1438
 
1433
1439
  server, server_formatted = util.format_nds_server_string(url_text)
1434
1440
 
@@ -1447,7 +1453,7 @@ def main():
1447
1453
  logger.debug("done transform")
1448
1454
 
1449
1455
  dtt = dttlib.DTT(chans_callback)
1450
- cache = dttlib.NDS2Cache(1 << 30, "").as_ref()
1456
+ cache = dttlib.NDS2Cache(1 << 30, "", url_text, dttlib.Replay.NoReplay()).as_ref()
1451
1457
  dtt.set_data_source(cache)
1452
1458
  logger.debug(
1453
1459
  f"Fetching channel list from {server} (channel glob: '{args.glob}')... "
@@ -73,7 +73,9 @@ def _handle_environment() -> TOMLDocument:
73
73
  env_config = TOMLDocument()
74
74
 
75
75
  if "NDSSERVER" in os.environ:
76
- env_config["data_source"] = {"urls": [f"nds://{os.environ['NDSSERVER']}"]}
76
+ env_config["data_source"] = {
77
+ "urls": [f"nds://{n}" for n in os.environ["NDSSERVER"].split(",")]
78
+ }
77
79
  elif "ARRAKIS_SERVER" in os.environ:
78
80
  env_config["data_source"] = {"urls": [os.environ["ARRAKIS_SERVER"]]}
79
81
 
@@ -285,6 +285,13 @@ class TestResolveDataSource:
285
285
  result = self.resolve_data_source("--nds", "test.server.com:31200")
286
286
  assert "test.server.com" in result
287
287
 
288
+ def test_multiple_ndsserver(self):
289
+ """only first nds server should be used"""
290
+ env = {"NDSSERVER": "nds.test:8088,nds2.test:8088"}
291
+ with patch.dict(os.environ, env, clear=True):
292
+ result = self.resolve_data_source()
293
+ assert result == "nds://nds.test:8088"
294
+
288
295
  def test_alias_cit(self):
289
296
  """'cit' alias should resolve to caltech server"""
290
297
  result = self.resolve_data_source("--nds", "cit")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndscope
3
- Version: 0.22.1
3
+ Version: 0.22.3
4
4
  Summary: Next-generation NDS time series plotting
5
5
  Author-email: Jameson Graef Rollins <jameson.rollins@ligo.org>, Patrick Thomas <patrick.thomas@ligo.org>, Erik von Reis <erik.vonreis@ligo.org>
6
6
  Maintainer-email: Jameson Graef Rollins <jameson.rollins@ligo.org>, Patrick Thomas <patrick.thomas@ligo.org>, Erik von Reis <erik.vonreis@ligo.org>
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.22.1",
2
+ "tag": "0.22.3",
3
3
  "distance": 0,
4
- "node": "g39017692733ca857960a68c369ef7132b95c6ce5",
4
+ "node": "g4ca9d356298b88804a3bfffab2f7f37e415836db",
5
5
  "dirty": false,
6
6
  "branch": "master",
7
7
  "node_date": "2026-09-08"
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
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes