syd 0.1.0__tar.gz → 0.1.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: syd
3
- Version: 0.1.0
3
+ Version: 0.1.2
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>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "syd"
7
- version = "0.1.0"
7
+ version = "0.1.2"
8
8
  authors = [
9
9
  {name = "Andrew Landau", email = "andrew+tyler+landau+getridofthisanddtheplusses@gmail.com"},
10
10
  ]
@@ -0,0 +1 @@
1
+ __version__ = "0.1.2"
@@ -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
@@ -62,7 +62,7 @@ def validate_parameter_operation(operation: str, parameter_type: ParameterType)
62
62
 
63
63
 
64
64
  class InteractiveViewer:
65
- def __new__(cls):
65
+ def __new__(cls, *args, **kwargs):
66
66
  instance = super().__new__(cls)
67
67
  instance.parameters = {}
68
68
  instance.callbacks = {}
@@ -122,47 +122,45 @@ class InteractiveViewer:
122
122
  self.parameters[name] = ParameterType.text.value(name, default)
123
123
 
124
124
  @validate_parameter_operation("add", ParameterType.selection)
125
- def add_selection(self, name: str, options: List[Any], default: str = None) -> None:
125
+ def add_selection(self, name: str, options: List[Any], default: Any = None) -> None:
126
126
  self.parameters[name] = ParameterType.selection.value(name, options, default)
127
127
 
128
128
  @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)
129
+ def add_multiple_selection(self, name: str, options: List[Any], default: List[Any] = None) -> None:
130
+ self.parameters[name] = ParameterType.multiple_selection.value(name, options, default)
131
131
 
132
132
  @validate_parameter_operation("add", ParameterType.boolean)
133
- def add_boolean(self, name: str, default: bool = False) -> None:
133
+ def add_boolean(self, name: str, default: bool = True) -> None:
134
134
  self.parameters[name] = ParameterType.boolean.value(name, default)
135
135
 
136
136
  @validate_parameter_operation("add", ParameterType.integer)
137
- def add_integer(self, name: str, min_value: int, max_value: int, default: int = None) -> None:
137
+ def add_integer(self, name: str, min_value: int = None, max_value: int = None, default: int = 0) -> None:
138
138
  self.parameters[name] = ParameterType.integer.value(name, min_value, max_value, default)
139
139
 
140
140
  @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)
141
+ def add_float(self, name: str, min_value: float = None, max_value: float = None, default: float = 0.0, step: float = 0.1) -> None:
142
+ self.parameters[name] = ParameterType.float.value(name, min_value, max_value, default, step)
143
143
 
144
144
  @validate_parameter_operation("add", ParameterType.integer_pair)
145
145
  def add_integer_pair(
146
146
  self,
147
147
  name: str,
148
- min_value: int,
149
- max_value: int,
150
- default_low: int = None,
151
- default_high: int = None,
148
+ default: Tuple[int, int],
149
+ min_value: int = None,
150
+ max_value: int = None,
152
151
  ) -> None:
153
- self.parameters[name] = ParameterType.integer_pair.value(name, min_value, max_value, default_low, default_high)
152
+ self.parameters[name] = ParameterType.integer_pair.value(name, default, min_value, max_value)
154
153
 
155
154
  @validate_parameter_operation("add", ParameterType.float_pair)
156
155
  def add_float_pair(
157
156
  self,
158
157
  name: str,
159
- min_value: float,
160
- max_value: float,
158
+ default: Tuple[float, float],
159
+ min_value: float = None,
160
+ max_value: float = None,
161
161
  step: float = 0.1,
162
- default_low: float = None,
163
- default_high: float = None,
164
162
  ) -> None:
165
- self.parameters[name] = ParameterType.float_pair.value(name, min_value, max_value, step, default_low, default_high)
163
+ self.parameters[name] = ParameterType.float_pair.value(name, default, min_value, max_value, step)
166
164
 
167
165
  # -------------------- parameter update methods --------------------
168
166
  @validate_parameter_operation("update", ParameterType.text)
@@ -170,44 +168,42 @@ class InteractiveViewer:
170
168
  self.parameters[name] = ParameterType.text.value(name, default)
171
169
 
172
170
  @validate_parameter_operation("update", ParameterType.selection)
173
- def update_selection(self, name: str, options: List[Any], default: str = None) -> None:
171
+ def update_selection(self, name: str, options: List[Any], default: Any = None) -> None:
174
172
  self.parameters[name] = ParameterType.selection.value(name, options, default)
175
173
 
176
174
  @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)
175
+ def update_multiple_selection(self, name: str, options: List[Any], default: List[Any] = None) -> None:
176
+ self.parameters[name] = ParameterType.multiple_selection.value(name, options, default)
179
177
 
180
178
  @validate_parameter_operation("update", ParameterType.boolean)
181
- def update_boolean(self, name: str, default: bool = False) -> None:
179
+ def update_boolean(self, name: str, default: bool = True) -> None:
182
180
  self.parameters[name] = ParameterType.boolean.value(name, default)
183
181
 
184
182
  @validate_parameter_operation("update", ParameterType.integer)
185
- def update_integer(self, name: str, min_value: int, max_value: int, default: int = None) -> None:
183
+ def update_integer(self, name: str, min_value: int = None, max_value: int = None, default: int = 0) -> None:
186
184
  self.parameters[name] = ParameterType.integer.value(name, min_value, max_value, default)
187
185
 
188
186
  @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)
187
+ def update_float(self, name: str, min_value: float = None, max_value: float = None, default: float = 0.0, step: float = 0.1) -> None:
188
+ self.parameters[name] = ParameterType.float.value(name, min_value, max_value, default, step)
191
189
 
192
190
  @validate_parameter_operation("update", ParameterType.integer_pair)
193
191
  def update_integer_pair(
194
192
  self,
195
193
  name: str,
196
- min_value: int,
197
- max_value: int,
198
- default_low: int = None,
199
- default_high: int = None,
194
+ default: Tuple[int, int],
195
+ min_value: int = None,
196
+ max_value: int = None,
200
197
  ) -> None:
201
- self.parameters[name] = ParameterType.integer_pair.value(name, min_value, max_value, default_low, default_high)
198
+ self.parameters[name] = ParameterType.integer_pair.value(name, default, min_value, max_value)
202
199
 
203
200
  @validate_parameter_operation("update", ParameterType.float_pair)
204
201
  def update_float_pair(
205
202
  self,
206
203
  name: str,
207
- min_value: float,
208
- max_value: float,
204
+ default: Tuple[float, float],
205
+ min_value: float = None,
206
+ max_value: float = None,
209
207
  step: float = 0.1,
210
- default_low: float = None,
211
- default_high: float = None,
212
208
  ) -> None:
213
- self.parameters[name] = ParameterType.float_pair.value(name, min_value, max_value, step, default_low, default_high)
209
+ self.parameters[name] = ParameterType.float_pair.value(name, default, min_value, max_value, step)
@@ -1,4 +1,4 @@
1
- from typing import Dict, Any
1
+ from typing import Dict, Any, Tuple
2
2
  import matplotlib.pyplot as plt
3
3
  import ipywidgets as widgets
4
4
  from IPython.display import display
@@ -22,7 +22,7 @@ class NotebookDeployment:
22
22
  Includes enhanced layout control and figure size management.
23
23
  """
24
24
 
25
- def __init__(self, viewer: InteractiveViewer):
25
+ def __init__(self, viewer: InteractiveViewer, figsize: Tuple[float, float] = (8, 6), controls_width: float = 30, continuous=False):
26
26
  """Initialize with an InteractiveViewer instance."""
27
27
  self.viewer = viewer
28
28
  self.widgets: Dict[str, widgets.Widget] = {}
@@ -30,8 +30,10 @@ class NotebookDeployment:
30
30
  self._current_figure = None
31
31
 
32
32
  # Default figure size
33
- self.fig_width = 8
34
- self.fig_height = 6
33
+ self.fig_width = figsize[0]
34
+ self.fig_height = figsize[1]
35
+ self.controls_width = controls_width
36
+ self.continuous = continuous
35
37
 
36
38
  def _create_text_widget(self, param: TextParameter) -> widgets.Text:
37
39
  """Create a text input widget."""
@@ -72,6 +74,7 @@ class NotebookDeployment:
72
74
  min=param.min_value,
73
75
  max=param.max_value,
74
76
  description=param.name,
77
+ continuous_update=self.continuous,
75
78
  layout=widgets.Layout(width="95%"),
76
79
  style={"description_width": "initial"},
77
80
  )
@@ -85,6 +88,7 @@ class NotebookDeployment:
85
88
  max=param.max_value,
86
89
  step=param.step,
87
90
  description=param.name,
91
+ continuous_update=self.continuous,
88
92
  layout=widgets.Layout(width="95%"),
89
93
  style={"description_width": "initial"},
90
94
  )
@@ -149,6 +153,7 @@ class NotebookDeployment:
149
153
  max=20,
150
154
  step=0.5,
151
155
  description="Figure Width",
156
+ continuous_update=True,
152
157
  layout=widgets.Layout(width="95%"),
153
158
  style={"description_width": "initial"},
154
159
  )
@@ -159,6 +164,7 @@ class NotebookDeployment:
159
164
  max=15,
160
165
  step=0.5,
161
166
  description="Figure Height",
167
+ continuous_update=True,
162
168
  layout=widgets.Layout(width="95%"),
163
169
  style={"description_width": "initial"},
164
170
  )
@@ -168,6 +174,7 @@ class NotebookDeployment:
168
174
  min=20,
169
175
  max=80,
170
176
  description="Controls Width %",
177
+ continuous_update=True,
171
178
  layout=widgets.Layout(width="95%"),
172
179
  style={"description_width": "initial"},
173
180
  )
syd-0.1.0/syd/__init__.py DELETED
@@ -1 +0,0 @@
1
- __version__ = "0.1.0"
File without changes
File without changes
File without changes
File without changes