essreduce 24.11.2__tar.gz → 24.11.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 (119) hide show
  1. {essreduce-24.11.2/src/essreduce.egg-info → essreduce-24.11.3}/PKG-INFO +1 -1
  2. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/types.py +4 -0
  3. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/parameter.py +5 -0
  4. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/__init__.py +25 -21
  5. essreduce-24.11.3/src/ess/reduce/widgets/_filename_widget.py +10 -0
  6. essreduce-24.11.3/src/ess/reduce/widgets/_string_widget.py +39 -0
  7. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/workflow.py +1 -4
  8. {essreduce-24.11.2 → essreduce-24.11.3/src/essreduce.egg-info}/PKG-INFO +1 -1
  9. {essreduce-24.11.2 → essreduce-24.11.3}/src/essreduce.egg-info/SOURCES.txt +2 -0
  10. {essreduce-24.11.2 → essreduce-24.11.3}/.copier-answers.ess.yml +0 -0
  11. {essreduce-24.11.2 → essreduce-24.11.3}/.copier-answers.yml +0 -0
  12. {essreduce-24.11.2 → essreduce-24.11.3}/.github/ISSUE_TEMPLATE/blank.md +0 -0
  13. {essreduce-24.11.2 → essreduce-24.11.3}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
  14. {essreduce-24.11.2 → essreduce-24.11.3}/.github/dependabot.yml +0 -0
  15. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/ci.yml +0 -0
  16. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/docs.yml +0 -0
  17. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/nightly_at_main.yml +0 -0
  18. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/nightly_at_release.yml +0 -0
  19. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/python-version-ci +0 -0
  20. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/release.yml +0 -0
  21. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/test.yml +0 -0
  22. {essreduce-24.11.2 → essreduce-24.11.3}/.github/workflows/unpinned.yml +0 -0
  23. {essreduce-24.11.2 → essreduce-24.11.3}/.gitignore +0 -0
  24. {essreduce-24.11.2 → essreduce-24.11.3}/.pre-commit-config.yaml +0 -0
  25. {essreduce-24.11.2 → essreduce-24.11.3}/.python-version +0 -0
  26. {essreduce-24.11.2 → essreduce-24.11.3}/CODE_OF_CONDUCT.md +0 -0
  27. {essreduce-24.11.2 → essreduce-24.11.3}/CONTRIBUTING.md +0 -0
  28. {essreduce-24.11.2 → essreduce-24.11.3}/LICENSE +0 -0
  29. {essreduce-24.11.2 → essreduce-24.11.3}/MANIFEST.in +0 -0
  30. {essreduce-24.11.2 → essreduce-24.11.3}/README.md +0 -0
  31. {essreduce-24.11.2 → essreduce-24.11.3}/conda/meta.yaml +0 -0
  32. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_static/anaconda-icon.js +0 -0
  33. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_static/favicon.svg +0 -0
  34. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_static/logo-dark.svg +0 -0
  35. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_static/logo.svg +0 -0
  36. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_templates/class-template.rst +0 -0
  37. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_templates/doc_version.html +0 -0
  38. {essreduce-24.11.2 → essreduce-24.11.3}/docs/_templates/module-template.rst +0 -0
  39. {essreduce-24.11.2 → essreduce-24.11.3}/docs/about/index.md +0 -0
  40. {essreduce-24.11.2 → essreduce-24.11.3}/docs/api-reference/index.md +0 -0
  41. {essreduce-24.11.2 → essreduce-24.11.3}/docs/conf.py +0 -0
  42. {essreduce-24.11.2 → essreduce-24.11.3}/docs/developer/coding-conventions.md +0 -0
  43. {essreduce-24.11.2 → essreduce-24.11.3}/docs/developer/dependency-management.md +0 -0
  44. {essreduce-24.11.2 → essreduce-24.11.3}/docs/developer/getting-started.md +0 -0
  45. {essreduce-24.11.2 → essreduce-24.11.3}/docs/developer/gui.ipynb +0 -0
  46. {essreduce-24.11.2 → essreduce-24.11.3}/docs/developer/index.md +0 -0
  47. {essreduce-24.11.2 → essreduce-24.11.3}/docs/index.md +0 -0
  48. {essreduce-24.11.2 → essreduce-24.11.3}/docs/user-guide/index.md +0 -0
  49. {essreduce-24.11.2 → essreduce-24.11.3}/docs/user-guide/reduction-workflow-guidelines.md +0 -0
  50. {essreduce-24.11.2 → essreduce-24.11.3}/docs/user-guide/widget.md +0 -0
  51. {essreduce-24.11.2 → essreduce-24.11.3}/pyproject.toml +0 -0
  52. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/base.in +0 -0
  53. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/base.txt +0 -0
  54. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/basetest.in +0 -0
  55. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/basetest.txt +0 -0
  56. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/ci.in +0 -0
  57. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/ci.txt +0 -0
  58. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/dev.in +0 -0
  59. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/dev.txt +0 -0
  60. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/docs.in +0 -0
  61. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/docs.txt +0 -0
  62. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/make_base.py +0 -0
  63. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/mypy.in +0 -0
  64. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/mypy.txt +0 -0
  65. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/nightly.in +0 -0
  66. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/nightly.txt +0 -0
  67. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/static.in +0 -0
  68. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/static.txt +0 -0
  69. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/test.in +0 -0
  70. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/test.txt +0 -0
  71. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/wheels.in +0 -0
  72. {essreduce-24.11.2 → essreduce-24.11.3}/requirements/wheels.txt +0 -0
  73. {essreduce-24.11.2 → essreduce-24.11.3}/resources/logo.svg +0 -0
  74. {essreduce-24.11.2 → essreduce-24.11.3}/setup.cfg +0 -0
  75. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/__init__.py +0 -0
  76. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/data.py +0 -0
  77. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/live/__init__.py +0 -0
  78. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/live/raw.py +0 -0
  79. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/live/workflow.py +0 -0
  80. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/logging.py +0 -0
  81. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/__init__.py +0 -0
  82. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/_nexus_loader.py +0 -0
  83. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/json_generator.py +0 -0
  84. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/json_nexus.py +0 -0
  85. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/nexus/workflow.py +0 -0
  86. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/py.typed +0 -0
  87. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/scripts/grow_nexus.py +0 -0
  88. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/streaming.py +0 -0
  89. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/ui.py +0 -0
  90. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/uncertainty.py +0 -0
  91. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_binedges_widget.py +0 -0
  92. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_bounds_widget.py +0 -0
  93. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_config.py +0 -0
  94. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_linspace_widget.py +0 -0
  95. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_optional_widget.py +0 -0
  96. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_switchable_widget.py +0 -0
  97. {essreduce-24.11.2 → essreduce-24.11.3}/src/ess/reduce/widgets/_vector_widget.py +0 -0
  98. {essreduce-24.11.2 → essreduce-24.11.3}/src/essreduce.egg-info/dependency_links.txt +0 -0
  99. {essreduce-24.11.2 → essreduce-24.11.3}/src/essreduce.egg-info/entry_points.txt +0 -0
  100. {essreduce-24.11.2 → essreduce-24.11.3}/src/essreduce.egg-info/requires.txt +0 -0
  101. {essreduce-24.11.2 → essreduce-24.11.3}/src/essreduce.egg-info/top_level.txt +0 -0
  102. {essreduce-24.11.2 → essreduce-24.11.3}/tests/live/raw_test.py +0 -0
  103. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_generator_test.py +0 -0
  104. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/array_dataset.json +0 -0
  105. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/dataset.json +0 -0
  106. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/detector.json +0 -0
  107. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/entry.json +0 -0
  108. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/event_data.json +0 -0
  109. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/instrument.json +0 -0
  110. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_examples/log.json +0 -0
  111. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/json_nexus_test.py +0 -0
  112. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/nexus_loader_test.py +0 -0
  113. {essreduce-24.11.2 → essreduce-24.11.3}/tests/nexus/workflow_test.py +0 -0
  114. {essreduce-24.11.2 → essreduce-24.11.3}/tests/package_test.py +0 -0
  115. {essreduce-24.11.2 → essreduce-24.11.3}/tests/scripts/test_grow_nexus.py +0 -0
  116. {essreduce-24.11.2 → essreduce-24.11.3}/tests/streaming_test.py +0 -0
  117. {essreduce-24.11.2 → essreduce-24.11.3}/tests/uncertainty_test.py +0 -0
  118. {essreduce-24.11.2 → essreduce-24.11.3}/tests/widget_test.py +0 -0
  119. {essreduce-24.11.2 → essreduce-24.11.3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: essreduce
3
- Version: 24.11.2
3
+ Version: 24.11.3
4
4
  Summary: Common data reduction tools for the ESS facility
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -91,6 +91,8 @@ Monitor4 = NewType('Monitor4', int)
91
91
  """Identifier for an arbitrary monitor"""
92
92
  Monitor5 = NewType('Monitor5', int)
93
93
  """Identifier for an arbitrary monitor"""
94
+ Monitor6 = NewType('Monitor6', int)
95
+ """Identifier for an arbitrary monitor"""
94
96
  IncidentMonitor = NewType('IncidentMonitor', int)
95
97
  """Incident monitor"""
96
98
  TransmissionMonitor = NewType('TransmissionMonitor', int)
@@ -102,6 +104,7 @@ MonitorType = TypeVar(
102
104
  Monitor3,
103
105
  Monitor4,
104
106
  Monitor5,
107
+ Monitor6,
105
108
  IncidentMonitor,
106
109
  TransmissionMonitor,
107
110
  )
@@ -119,6 +122,7 @@ Component = TypeVar(
119
122
  Monitor3,
120
123
  Monitor4,
121
124
  Monitor5,
125
+ Monitor6,
122
126
  IncidentMonitor,
123
127
  TransmissionMonitor,
124
128
  )
@@ -126,6 +126,11 @@ class StringParameter(Parameter[str]):
126
126
  pass
127
127
 
128
128
 
129
+ @dataclass
130
+ class MultiStringParameter(Parameter[tuple[str, ...]]):
131
+ """Widget for entering multiple strings."""
132
+
133
+
129
134
  @dataclass(kw_only=True)
130
135
  class ParamWithBounds(Parameter[T]):
131
136
  bounds: tuple[T, T]
@@ -10,6 +10,7 @@ from ..parameter import (
10
10
  BooleanParameter,
11
11
  FilenameParameter,
12
12
  MultiFilenameParameter,
13
+ MultiStringParameter,
13
14
  ParamWithOptions,
14
15
  StringParameter,
15
16
  Parameter,
@@ -21,9 +22,11 @@ from ..parameter import (
21
22
  from ._config import default_layout, default_style
22
23
 
23
24
  from ._binedges_widget import BinEdgesWidget
25
+ from ._filename_widget import FilenameWidget, MultiFilenameWidget
24
26
  from ._linspace_widget import LinspaceWidget
25
27
  from ._vector_widget import VectorWidget
26
28
  from ._bounds_widget import BoundsWidget
29
+ from ._string_widget import MultiStringWidget, StringWidget
27
30
  from ._switchable_widget import SwitchWidget
28
31
  from ._optional_widget import OptionalWidget
29
32
 
@@ -101,42 +104,41 @@ def boolean_parameter_widget(param: BooleanParameter):
101
104
 
102
105
  @create_parameter_widget.register(StringParameter)
103
106
  def string_parameter_widget(param: StringParameter):
104
- name = param.name
105
- description = param.description
106
- if param.switchable:
107
- return widgets.Text(
108
- description=name,
109
- tooltip=description,
110
- layout=default_layout,
111
- style=default_style,
112
- )
113
- else:
114
- return widgets.Text(
115
- value=param.default,
116
- description=name,
117
- tooltip=description,
118
- layout=default_layout,
119
- style=default_style,
120
- )
107
+ return StringWidget(
108
+ description=param.name,
109
+ value=param.default,
110
+ layout=default_layout,
111
+ style=default_style,
112
+ )
113
+
114
+
115
+ @create_parameter_widget.register(MultiStringParameter)
116
+ def multi_string_parameter_widget(param: MultiStringParameter):
117
+ return MultiStringWidget(
118
+ description=param.name,
119
+ value=param.default,
120
+ layout=default_layout,
121
+ style=default_style,
122
+ )
121
123
 
122
124
 
123
125
  @create_parameter_widget.register(FilenameParameter)
124
126
  def filename_parameter_widget(param: FilenameParameter):
125
- return widgets.Text(
127
+ return FilenameWidget(
126
128
  description=param.name,
129
+ value=param.default,
127
130
  layout=default_layout,
128
131
  style=default_style,
129
- value=param.default,
130
132
  )
131
133
 
132
134
 
133
135
  @create_parameter_widget.register(MultiFilenameParameter)
134
136
  def multi_filename_parameter_widget(param: MultiFilenameParameter):
135
- return widgets.Text(
137
+ return MultiFilenameWidget(
136
138
  description=param.name,
139
+ value=param.default,
137
140
  layout=default_layout,
138
141
  style=default_style,
139
- value=param.default,
140
142
  )
141
143
 
142
144
 
@@ -182,7 +184,9 @@ __all__ = [
182
184
  'BinEdgesWidget',
183
185
  'BoundsWidget',
184
186
  'EssWidget',
187
+ 'FilenameWidget',
185
188
  'LinspaceWidget',
189
+ 'MultiFilenameWidget',
186
190
  'OptionalWidget',
187
191
  'SwitchWidget',
188
192
  'VectorWidget',
@@ -0,0 +1,10 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
3
+
4
+ from ._string_widget import MultiStringWidget, StringWidget
5
+
6
+
7
+ class FilenameWidget(StringWidget): ...
8
+
9
+
10
+ class MultiFilenameWidget(MultiStringWidget): ...
@@ -0,0 +1,39 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
3
+ from ipywidgets import HBox, Text, ValueWidget
4
+
5
+ from ._config import default_layout
6
+
7
+
8
+ class StringWidget(HBox, ValueWidget):
9
+ def __init__(self, description: str, value: str | None = None, **kwargs):
10
+ super().__init__(layout=default_layout)
11
+ self.text_widget = Text(description=description, value=value, **kwargs)
12
+ self.children = [self.text_widget]
13
+
14
+ @property
15
+ def value(self) -> str | None:
16
+ v = self.text_widget.value.strip()
17
+ if not v:
18
+ return None
19
+ return v
20
+
21
+ @value.setter
22
+ def value(self, value: str | None):
23
+ if value is None:
24
+ self.text_widget.value = ''
25
+ else:
26
+ self.text_widget.value = value
27
+
28
+
29
+ class MultiStringWidget(StringWidget):
30
+ @property
31
+ def value(self) -> tuple[str, ...]:
32
+ v = super().value
33
+ if v is None:
34
+ return ()
35
+ return tuple(s.strip() for s in v.split(','))
36
+
37
+ @value.setter
38
+ def value(self, value: tuple[str, ...]):
39
+ self.text_widget.value = ', '.join(value)
@@ -86,10 +86,7 @@ def assign_parameter_values(pipeline: Pipeline, values: dict[Key, Any]) -> Pipel
86
86
  """Set a value for a parameter in the pipeline."""
87
87
  pipeline = pipeline.copy()
88
88
  for key, value in values.items():
89
- if (
90
- isinstance(value, tuple)
91
- and (mapper := parameter_mappers.get(key)) is not None
92
- ):
89
+ if (mapper := parameter_mappers.get(key)) is not None:
93
90
  pipeline = mapper(pipeline, value)
94
91
  else:
95
92
  pipeline[key] = value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: essreduce
3
- Version: 24.11.2
3
+ Version: 24.11.3
4
4
  Summary: Common data reduction tools for the ESS facility
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -86,8 +86,10 @@ src/ess/reduce/widgets/__init__.py
86
86
  src/ess/reduce/widgets/_binedges_widget.py
87
87
  src/ess/reduce/widgets/_bounds_widget.py
88
88
  src/ess/reduce/widgets/_config.py
89
+ src/ess/reduce/widgets/_filename_widget.py
89
90
  src/ess/reduce/widgets/_linspace_widget.py
90
91
  src/ess/reduce/widgets/_optional_widget.py
92
+ src/ess/reduce/widgets/_string_widget.py
91
93
  src/ess/reduce/widgets/_switchable_widget.py
92
94
  src/ess/reduce/widgets/_vector_widget.py
93
95
  src/essreduce.egg-info/PKG-INFO
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