Skip to content

Commit

Permalink
reduce code duplication between stringwidget and filenamewidget
Browse files Browse the repository at this point in the history
  • Loading branch information
nvaytet committed Nov 28, 2024
1 parent 87bf0e1 commit 9870ce5
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 56 deletions.
23 changes: 1 addition & 22 deletions src/ess/reduce/widgets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from ._linspace_widget import LinspaceWidget
from ._vector_widget import VectorWidget
from ._bounds_widget import BoundsWidget
from ._string_widget import StringWidget, MultiStringWidget
from ._string_widget import MultiStringWidget, StringWidget
from ._switchable_widget import SwitchWidget
from ._optional_widget import OptionalWidget

Expand Down Expand Up @@ -102,27 +102,6 @@ def boolean_parameter_widget(param: BooleanParameter):
)


# @create_parameter_widget.register(StringParameter)
# def string_parameter_widget(param: StringParameter):
# name = param.name
# description = param.description
# if param.switchable:
# return widgets.Text(
# description=name,
# tooltip=description,
# layout=default_layout,
# style=default_style,
# )
# else:
# return widgets.Text(
# value=param.default,
# description=name,
# tooltip=description,
# layout=default_layout,
# style=default_style,
# )


@create_parameter_widget.register(StringParameter)
def string_parameter_widget(param: StringParameter):
return StringWidget(
Expand Down
36 changes: 3 additions & 33 deletions src/ess/reduce/widgets/_filename_widget.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
# import scipp as sc
from ipywidgets import HBox, Text, ValueWidget

from ._config import default_layout
from ._string_widget import MultiStringWidget, StringWidget


class FilenameWidget(HBox, ValueWidget):
def __init__(self, description: str, value: str | None = None, **kwargs):
super().__init__(layout=default_layout)
self.text_widget = Text(description=description, value=value, **kwargs)
self.children = [self.text_widget]
class FilenameWidget(StringWidget): ...

@property
def value(self) -> str | None:
v = self.text_widget.value.strip()
if not v:
return None
return v

@value.setter
def value(self, value: str | None):
if value is None:
self.text_widget.value = ''
else:
self.text_widget.value = value


class MultiFilenameWidget(FilenameWidget):
@property
def value(self) -> tuple[str, ...]:
v = super().value
if v is None:
return ()
return tuple(s.strip() for s in v.split(','))

@value.setter
def value(self, value: tuple[str, ...]):
self.text_widget.value = ', '.join(value)
class MultiFilenameWidget(MultiStringWidget): ...
1 change: 0 additions & 1 deletion src/ess/reduce/widgets/_string_widget.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
# import scipp as sc
from ipywidgets import HBox, Text, ValueWidget

from ._config import default_layout
Expand Down

0 comments on commit 9870ce5

Please sign in to comment.