syd 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.whl

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.
syd/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.1"
1
+ __version__ = "0.1.3"
syd/interactive_viewer.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import List, Any, Callable, Dict
1
+ from typing import List, Any, Callable, Dict, Tuple
2
2
  from functools import wraps
3
3
  from contextlib import contextmanager
4
4
  from matplotlib.figure import Figure
@@ -76,7 +76,7 @@ class InteractiveViewer:
76
76
  self.state = {}
77
77
  self._app_deployed = False
78
78
 
79
- def param_dict(self) -> Dict[str, Any]:
79
+ def get_state(self) -> Dict[str, Any]:
80
80
  return {name: param.value for name, param in self.parameters.items()}
81
81
 
82
82
  def plot(self, **kwargs) -> Figure:
@@ -94,8 +94,9 @@ class InteractiveViewer:
94
94
  def perform_callbacks(self, name: str) -> bool:
95
95
  """Perform callbacks for all parameters that have changed"""
96
96
  if name in self.callbacks:
97
+ state = self.get_state()
97
98
  for callback in self.callbacks[name]:
98
- callback(self.parameters[name].value)
99
+ callback(state)
99
100
 
100
101
  def on_change(self, parameter_name: str, callback: Callable):
101
102
  """Register a function to be called when a parameter changes."""
@@ -122,47 +123,45 @@ class InteractiveViewer:
122
123
  self.parameters[name] = ParameterType.text.value(name, default)
123
124
 
124
125
  @validate_parameter_operation("add", ParameterType.selection)
125
- def add_selection(self, name: str, options: List[Any], default: str = None) -> None:
126
+ def add_selection(self, name: str, options: List[Any], default: Any = None) -> None:
126
127
  self.parameters[name] = ParameterType.selection.value(name, options, default)
127
128
 
128
129
  @validate_parameter_operation("add", ParameterType.multiple_selection)
129
- def add_multiple_selection(self, name: str, options: List[Any], defaults: List[Any] = None) -> None:
130
- self.parameters[name] = ParameterType.multiple_selection.value(name, options, defaults)
130
+ def add_multiple_selection(self, name: str, options: List[Any], default: List[Any] = None) -> None:
131
+ self.parameters[name] = ParameterType.multiple_selection.value(name, options, default)
131
132
 
132
133
  @validate_parameter_operation("add", ParameterType.boolean)
133
- def add_boolean(self, name: str, default: bool = False) -> None:
134
+ def add_boolean(self, name: str, default: bool = True) -> None:
134
135
  self.parameters[name] = ParameterType.boolean.value(name, default)
135
136
 
136
137
  @validate_parameter_operation("add", ParameterType.integer)
137
- def add_integer(self, name: str, min_value: int, max_value: int, default: int = None) -> None:
138
+ def add_integer(self, name: str, min_value: int = None, max_value: int = None, default: int = 0) -> None:
138
139
  self.parameters[name] = ParameterType.integer.value(name, min_value, max_value, default)
139
140
 
140
141
  @validate_parameter_operation("add", ParameterType.float)
141
- def add_float(self, name: str, min_value: float, max_value: float, step: float = 0.1, default: float = None) -> None:
142
- self.parameters[name] = ParameterType.float.value(name, min_value, max_value, step, default)
142
+ def add_float(self, name: str, min_value: float = None, max_value: float = None, default: float = 0.0, step: float = 0.1) -> None:
143
+ self.parameters[name] = ParameterType.float.value(name, min_value, max_value, default, step)
143
144
 
144
145
  @validate_parameter_operation("add", ParameterType.integer_pair)
145
146
  def add_integer_pair(
146
147
  self,
147
148
  name: str,
148
- min_value: int,
149
- max_value: int,
150
- default_low: int = None,
151
- default_high: int = None,
149
+ default: Tuple[int, int],
150
+ min_value: int = None,
151
+ max_value: int = None,
152
152
  ) -> None:
153
- self.parameters[name] = ParameterType.integer_pair.value(name, min_value, max_value, default_low, default_high)
153
+ self.parameters[name] = ParameterType.integer_pair.value(name, default, min_value, max_value)
154
154
 
155
155
  @validate_parameter_operation("add", ParameterType.float_pair)
156
156
  def add_float_pair(
157
157
  self,
158
158
  name: str,
159
- min_value: float,
160
- max_value: float,
159
+ default: Tuple[float, float],
160
+ min_value: float = None,
161
+ max_value: float = None,
161
162
  step: float = 0.1,
162
- default_low: float = None,
163
- default_high: float = None,
164
163
  ) -> None:
165
- self.parameters[name] = ParameterType.float_pair.value(name, min_value, max_value, step, default_low, default_high)
164
+ self.parameters[name] = ParameterType.float_pair.value(name, default, min_value, max_value, step)
166
165
 
167
166
  # -------------------- parameter update methods --------------------
168
167
  @validate_parameter_operation("update", ParameterType.text)
@@ -170,44 +169,42 @@ class InteractiveViewer:
170
169
  self.parameters[name] = ParameterType.text.value(name, default)
171
170
 
172
171
  @validate_parameter_operation("update", ParameterType.selection)
173
- def update_selection(self, name: str, options: List[Any], default: str = None) -> None:
172
+ def update_selection(self, name: str, options: List[Any], default: Any = None) -> None:
174
173
  self.parameters[name] = ParameterType.selection.value(name, options, default)
175
174
 
176
175
  @validate_parameter_operation("update", ParameterType.multiple_selection)
177
- def update_multiple_selection(self, name: str, options: List[Any], defaults: List[Any] = None) -> None:
178
- self.parameters[name] = ParameterType.multiple_selection.value(name, options, defaults)
176
+ def update_multiple_selection(self, name: str, options: List[Any], default: List[Any] = None) -> None:
177
+ self.parameters[name] = ParameterType.multiple_selection.value(name, options, default)
179
178
 
180
179
  @validate_parameter_operation("update", ParameterType.boolean)
181
- def update_boolean(self, name: str, default: bool = False) -> None:
180
+ def update_boolean(self, name: str, default: bool = True) -> None:
182
181
  self.parameters[name] = ParameterType.boolean.value(name, default)
183
182
 
184
183
  @validate_parameter_operation("update", ParameterType.integer)
185
- def update_integer(self, name: str, min_value: int, max_value: int, default: int = None) -> None:
184
+ def update_integer(self, name: str, min_value: int = None, max_value: int = None, default: int = 0) -> None:
186
185
  self.parameters[name] = ParameterType.integer.value(name, min_value, max_value, default)
187
186
 
188
187
  @validate_parameter_operation("update", ParameterType.float)
189
- def update_float(self, name: str, min_value: float, max_value: float, step: float = 0.1, default: float = None) -> None:
190
- self.parameters[name] = ParameterType.float.value(name, min_value, max_value, step, default)
188
+ def update_float(self, name: str, min_value: float = None, max_value: float = None, default: float = 0.0, step: float = 0.1) -> None:
189
+ self.parameters[name] = ParameterType.float.value(name, min_value, max_value, default, step)
191
190
 
192
191
  @validate_parameter_operation("update", ParameterType.integer_pair)
193
192
  def update_integer_pair(
194
193
  self,
195
194
  name: str,
196
- min_value: int,
197
- max_value: int,
198
- default_low: int = None,
199
- default_high: int = None,
195
+ default: Tuple[int, int],
196
+ min_value: int = None,
197
+ max_value: int = None,
200
198
  ) -> None:
201
- self.parameters[name] = ParameterType.integer_pair.value(name, min_value, max_value, default_low, default_high)
199
+ self.parameters[name] = ParameterType.integer_pair.value(name, default, min_value, max_value)
202
200
 
203
201
  @validate_parameter_operation("update", ParameterType.float_pair)
204
202
  def update_float_pair(
205
203
  self,
206
204
  name: str,
207
- min_value: float,
208
- max_value: float,
205
+ default: Tuple[float, float],
206
+ min_value: float = None,
207
+ max_value: float = None,
209
208
  step: float = 0.1,
210
- default_low: float = None,
211
- default_high: float = None,
212
209
  ) -> None:
213
- self.parameters[name] = ParameterType.float_pair.value(name, min_value, max_value, step, default_low, default_high)
210
+ self.parameters[name] = ParameterType.float_pair.value(name, default, min_value, max_value, step)
syd/notebook_deploy.py CHANGED
@@ -220,7 +220,7 @@ class NotebookDeployment:
220
220
  """Update the plot with current parameters and size."""
221
221
  self._current_fig.clear()
222
222
  self._current_fig.set_size_inches(self.fig_width, self.fig_height)
223
- self._current_fig = self.viewer.plot(fig=self._current_fig, state=self.viewer.param_dict())
223
+ self._current_fig = self.viewer.plot(fig=self._current_fig, state=self.viewer.get_state())
224
224
 
225
225
  # Apply tight layout to remove dead space
226
226
  self._current_fig.tight_layout()
@@ -266,7 +266,7 @@ class NotebookDeployment:
266
266
  # Create initial plot
267
267
  self._current_fig = plt.figure(figsize=(self.fig_width, self.fig_height))
268
268
  plt.close(self._current_fig) # close the figure to prevent it from being displayed
269
- self._current_fig = self.viewer.plot(fig=self._current_fig, state=self.viewer.param_dict())
269
+ self._current_fig = self.viewer.plot(fig=self._current_fig, state=self.viewer.get_state())
270
270
  with self.plot_output:
271
271
  display(self._current_fig)
272
272
 
syd/parameters.py CHANGED
@@ -182,7 +182,7 @@ class PairParameter(Parameter[Tuple[T, T]], ABC):
182
182
  raise NotImplementedError("Need to define in subclass for proper IDE support")
183
183
 
184
184
  @abstractmethod
185
- def _validate_value(self, value: Any) -> T:
185
+ def _validate(self, value: Any) -> T:
186
186
  raise NotImplementedError
187
187
 
188
188
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: syd
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: A Python package for making GUIs for data science easy.
5
5
  Project-URL: Homepage, https://github.com/landoskape/syd
6
6
  Author-email: Andrew Landau <andrew+tyler+landau+getridofthisanddtheplusses@gmail.com>
@@ -0,0 +1,8 @@
1
+ syd/__init__.py,sha256=XEqb2aiIn8fzGE68Mph4ck1FtQqsR_am0wRWvrYPffQ,22
2
+ syd/interactive_viewer.py,sha256=33aFY6Q4vg6fP5QVs2RYqfnqmFJzML-Lcnhbb1XwN2g,9353
3
+ syd/notebook_deploy.py,sha256=GAvrWEnvy__N2_0qQTmfoX6UZZKikKCjWn0tGpTUXK8,11696
4
+ syd/parameters.py,sha256=oQSAGM2D2Db4YLzj_nQb6_vPp18ltld7qvFC138lRJw,9885
5
+ syd-0.1.3.dist-info/METADATA,sha256=r6JMz__aTLlirGUqUkki6emZwx9Ywq1HFKhlH2p2mdk,2449
6
+ syd-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
7
+ syd-0.1.3.dist-info/licenses/LICENSE,sha256=YF6QR6Vjxcg5b_sYIyqkME7FZYau5TfEUGTG-0JeRK0,35129
8
+ syd-0.1.3.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- syd/__init__.py,sha256=rnObPjuBcEStqSO0S6gsdS_ot8ITOQjVj_-P1LUUYpg,22
2
- syd/interactive_viewer.py,sha256=aOAes-wbFagnFAzPSw9cYQWg1wNOAY0D0olfm5OkGAg,9438
3
- syd/notebook_deploy.py,sha256=Sc11UdSQIeYqcqJFt1aPX7NVbmeQ2nmQUB3_CfnrWLo,11698
4
- syd/parameters.py,sha256=QMcT4PVSDr6WB4M-f9dbVa1B63RCuPlbMQI0E_JvmKs,9891
5
- syd-0.1.1.dist-info/METADATA,sha256=W9gl3rxYhMTdvD3eMG1cvnErd90tjuFuGigMe3rYvoI,2449
6
- syd-0.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
7
- syd-0.1.1.dist-info/licenses/LICENSE,sha256=YF6QR6Vjxcg5b_sYIyqkME7FZYau5TfEUGTG-0JeRK0,35129
8
- syd-0.1.1.dist-info/RECORD,,
File without changes