Skip to content

Commit 0bae719

Browse files
committed
Remove unused name field from Converters
1 parent 34aaa72 commit 0bae719

File tree

7 files changed

+17
-24
lines changed

7 files changed

+17
-24
lines changed

data_prototype/conversion_node.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ def evaluate_pipeline(nodes: Sequence[ConversionNode], input: dict[str, Any]):
1717

1818
@dataclass
1919
class ConversionNode:
20-
name: str
2120
required_keys: tuple[str, ...]
2221
output_keys: tuple[str, ...]
2322
trim_keys: bool
@@ -43,12 +42,12 @@ class UnionConversionNode(ConversionNode):
4342
nodes: tuple[ConversionNode, ...]
4443

4544
@classmethod
46-
def from_nodes(cls, name: str, *nodes: ConversionNode, trim_keys=False):
45+
def from_nodes(cls, *nodes: ConversionNode, trim_keys=False):
4746
required = tuple(set(k for n in nodes for k in n.required_keys))
4847
output = Counter(k for n in nodes for k in n.output_keys)
4948
if duplicate := {k for k, v in output.items() if v > 1}:
5049
raise ValueError(f"Duplicate keys from multiple input nodes: {duplicate}")
51-
return cls(name, required, tuple(output), trim_keys, nodes)
50+
return cls(required, tuple(output), trim_keys, nodes)
5251

5352
def evaluate(self, input: dict[str, Any]) -> dict[str, Any]:
5453
return super().evaluate({k: v for n in self.nodes for k, v in n.evaluate(input).items()})
@@ -59,12 +58,12 @@ class RenameConversionNode(ConversionNode):
5958
mapping: dict[str, str]
6059

6160
@classmethod
62-
def from_mapping(cls, name: str, mapping: dict[str, str], trim_keys=False):
61+
def from_mapping(cls, mapping: dict[str, str], trim_keys=False):
6362
required = tuple(mapping)
6463
output = Counter(mapping.values())
6564
if duplicate := {k for k, v in output.items() if v > 1}:
6665
raise ValueError(f"Duplicate output keys in mapping: {duplicate}")
67-
return cls(name, required, tuple(output), trim_keys, mapping)
66+
return cls(required, tuple(output), trim_keys, mapping)
6867

6968
def evaluate(self, input: dict[str, Any]) -> dict[str, Any]:
7069
return super().evaluate({**input, **{out: input[inp] for (inp, out) in self.mapping.items()}})
@@ -79,14 +78,14 @@ def _sigs(self):
7978
return {k: (f, inspect.signature(f)) for k, f in self.funcs.items()}
8079

8180
@classmethod
82-
def from_funcs(cls, name: str, funcs: dict[str, Callable], trim_keys=False):
81+
def from_funcs(cls, funcs: dict[str, Callable], trim_keys=False):
8382
sigs = {k: inspect.signature(f) for k, f in funcs.items()}
8483
output = tuple(sigs)
8584
input = []
8685
for v in sigs.values():
8786
input.extend(v.parameters.keys())
8887
input = tuple(set(input))
89-
return cls(name, input, output, trim_keys, funcs)
88+
return cls(input, output, trim_keys, funcs)
9089

9190
def evaluate(self, input: dict[str, Any]) -> dict[str, Any]:
9291
return super().evaluate(
@@ -102,8 +101,8 @@ class LimitKeysConversionNode(ConversionNode):
102101
keys: set[str]
103102

104103
@classmethod
105-
def from_keys(cls, name: str, keys: Sequence[str]):
106-
return cls(name, (), tuple(keys), trim_keys=True, keys=set(keys))
104+
def from_keys(cls, keys: Sequence[str]):
105+
return cls((), tuple(keys), trim_keys=True, keys=set(keys))
107106

108107
def evaluate(self, input: dict[str, Any]) -> dict[str, Any]:
109108
return {k: v for k, v in input.items() if k in self.keys}

data_prototype/wrappers.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def __init__(self, data, converters: ConversionNode | list[ConversionNode] | Non
163163
setters = list(self.expected_keys | self.required_keys)
164164
if hasattr(self, "_wrapped_class"):
165165
setters += [f[4:] for f in dir(self._wrapped_class) if f.startswith("set_")]
166-
self._converters.append(LimitKeysConversionNode.from_keys("setters", setters))
166+
self._converters.append(LimitKeysConversionNode.from_keys(setters))
167167
self.stale = True
168168

169169

@@ -196,9 +196,9 @@ class LineWrapper(ProxyWrapper):
196196
def __init__(self, data: DataContainer, converters=None, /, **kwargs):
197197
super().__init__(data, converters)
198198
self._wrapped_instance = self._wrapped_class(np.array([]), np.array([]), **kwargs)
199-
self._converters.insert(-1, RenameConversionNode.from_mapping("xydata", {"x": "xdata", "y": "ydata"}))
199+
self._converters.insert(-1, RenameConversionNode.from_mapping({"x": "xdata", "y": "ydata"}))
200200
setters = [f[4:] for f in dir(self._wrapped_class) if f.startswith("set_")]
201-
self._converters[-1] = LimitKeysConversionNode.from_keys("setters", setters)
201+
self._converters[-1] = LimitKeysConversionNode.from_keys(setters)
202202

203203
@_stale_wrapper
204204
def draw(self, renderer):
@@ -261,9 +261,7 @@ def __init__(self, data: DataContainer, converters=None, /, cmap=None, norm=None
261261
cmap = mpl.colormaps["viridis"]
262262
if norm is None:
263263
raise ValueError("not sure how to do autoscaling yet")
264-
converters.append(
265-
FunctionConversionNode.from_funcs("map colors", {"image": lambda image: cmap(norm(image))})
266-
)
264+
converters.append(FunctionConversionNode.from_funcs({"image": lambda image: cmap(norm(image))}))
267265
super().__init__(data, converters)
268266
kwargs.setdefault("origin", "lower")
269267
self._wrapped_instance = self._wrapped_class(None, **kwargs)

examples/2Dfunc.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from data_prototype.wrappers import ImageWrapper
1414
from data_prototype.containers import FuncContainer
1515

16-
import matplotlib as mpl
1716
from matplotlib.colors import Normalize
1817

1918

@@ -25,9 +24,8 @@
2524
"image": (("N", "M"), lambda x, y: np.sin(x).reshape(1, -1) * np.cos(y).reshape(-1, 1)),
2625
},
2726
)
28-
cmap = mpl.colormaps["viridis"]
29-
norm = Normalize(-1, 1)
30-
im = ImageWrapper(fc)
27+
norm = Normalize(vmin=-1, vmax=1)
28+
im = ImageWrapper(fc, norm=norm)
3129

3230
fig, ax = plt.subplots()
3331
ax.add_artist(im)

examples/animation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def update(frame, art):
6565
fc = FormatedText(
6666
sot_c,
6767
FunctionConversionNode.from_funcs(
68-
"fmt", {"text": lambda phase: f"ϕ={phase:.2f}", "x": lambda: 2 * np.pi, "y": lambda: 1}
68+
{"text": lambda phase: f"ϕ={phase:.2f}", "x": lambda: 2 * np.pi, "y": lambda: 1}
6969
),
7070
ha="right",
7171
)

examples/mapped.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
norm = Normalize(1, 8)
2323

2424
line_converter = FunctionConversionNode.from_funcs(
25-
"line converter",
2625
{
2726
# arbitrary functions
2827
"lw": lambda lw: min(1 + lw, 5),
@@ -34,7 +33,6 @@
3433
)
3534

3635
text_converter = FunctionConversionNode.from_funcs(
37-
"text converter",
3836
{
3937
"text": lambda j, cat: f"index={j[()]} class={cat[()]!r}",
4038
"y": lambda j: j,

examples/mulivariate_cmap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def image_nu(image):
4141
},
4242
)
4343

44-
im = ImageWrapper(fc, FunctionConversionNode.from_funcs("bivariate", {"image": image_nu}))
44+
im = ImageWrapper(fc, FunctionConversionNode.from_funcs({"image": image_nu}))
4545

4646
fig, ax = plt.subplots()
4747
ax.add_artist(im)

examples/widgets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def _query_hash(self, coord_transform, size):
118118
lw = LineWrapper(
119119
fc,
120120
# color map phase (scaled to 2pi and wrapped to [0, 1])
121-
FunctionConversionNode.from_funcs("cmap", {"color": lambda color: cmap((color / (2 * np.pi)) % 1)}),
121+
FunctionConversionNode.from_funcs({"color": lambda color: cmap((color / (2 * np.pi)) % 1)}),
122122
lw=5,
123123
)
124124
ax.add_artist(lw)

0 commit comments

Comments
 (0)