mwxlib 0.96.4__py3-none-any.whl → 0.96.6__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.

Potentially problematic release.


This version of mwxlib might be problematic. Click here for more details.

mwx/controls.py CHANGED
@@ -44,7 +44,7 @@ class Param(object):
44
44
  - underflow -> when value underflows
45
45
  """
46
46
  def __init__(self, name, range=None, value=None, fmt=None,
47
- handler=None, updater=None, tip=None):
47
+ handler=None, updater=None):
48
48
  self.knobs = []
49
49
  self.name = name
50
50
  self.range = range
@@ -66,7 +66,7 @@ class Param(object):
66
66
  'overflow' : [],
67
67
  'underflow' : [],
68
68
  })
69
- self._tooltip = _Tip(tip, handler.__doc__, updater.__doc__)
69
+ self._tooltip = _Tip(handler.__doc__, updater.__doc__)
70
70
 
71
71
  def __str__(self, v=None):
72
72
  v = self.value if v is None else v
@@ -1000,15 +1000,14 @@ class Button(pb.PlateButton):
1000
1000
  self.SetBitmap(_Icon(v))
1001
1001
  self.Refresh()
1002
1002
 
1003
- def __init__(self, parent, label='',
1004
- handler=None, icon=None, tip='', **kwargs):
1003
+ def __init__(self, parent, label='', handler=None, icon=None, **kwargs):
1005
1004
  kwargs.setdefault('style', pb.PB_STYLE_DEFAULT | pb.PB_STYLE_SQUARE)
1006
1005
  pb.PlateButton.__init__(self, parent, -1, label, **kwargs)
1007
1006
 
1008
1007
  if handler:
1009
1008
  self.Bind(wx.EVT_BUTTON, _F(handler))
1010
1009
 
1011
- self.ToolTip = _Tip(tip, handler.__doc__)
1010
+ self.ToolTip = _Tip(handler.__doc__)
1012
1011
  self.icon = icon
1013
1012
 
1014
1013
  def SetBitmap(self, bmp):
@@ -1048,14 +1047,13 @@ class ToggleButton(wx.ToggleButton):
1048
1047
  self.SetBitmap(_Icon(v))
1049
1048
  self.Refresh()
1050
1049
 
1051
- def __init__(self, parent, label='',
1052
- handler=None, icon=None, tip='', **kwargs):
1050
+ def __init__(self, parent, label='', handler=None, icon=None, **kwargs):
1053
1051
  wx.ToggleButton.__init__(self, parent, -1, label, **kwargs)
1054
1052
 
1055
1053
  if handler:
1056
1054
  self.Bind(wx.EVT_TOGGLEBUTTON, _F(handler))
1057
1055
 
1058
- self.ToolTip = _Tip(tip, handler.__doc__)
1056
+ self.ToolTip = _Tip(handler.__doc__)
1059
1057
  self.icon = icon
1060
1058
 
1061
1059
 
@@ -1087,20 +1085,20 @@ class TextCtrl(wx.Control):
1087
1085
  def icon(self, v):
1088
1086
  self._btn.icon = v
1089
1087
 
1090
- def __init__(self, parent, label='',
1091
- handler=None, updater=None, size=(-1,-1),
1092
- icon=None, tip='', readonly=False, **kwargs):
1088
+ def __init__(self, parent, label='', handler=None, updater=None,
1089
+ icon=None, readonly=False, size=(-1,-1), **kwargs):
1093
1090
  wx.Control.__init__(self, parent, size=size, style=wx.BORDER_NONE)
1094
1091
 
1095
1092
  kwargs['style'] = (kwargs.get('style', 0)
1096
1093
  | wx.TE_PROCESS_ENTER
1097
1094
  | (wx.TE_READONLY if readonly else 0))
1098
1095
 
1099
- tooltip = _Tip(tip, handler.__doc__, updater.__doc__)
1100
-
1101
1096
  self._ctrl = wx.TextCtrl(self, **kwargs)
1102
- self._btn = Button(self, label, None, icon, tooltip,
1097
+ self._btn = Button(self, label, None, icon,
1103
1098
  size=(-1,-1) if label or icon else (0,0))
1099
+ self._ctrl.ToolTip = _Tip(handler.__doc__)
1100
+ self._btn.ToolTip = _Tip(updater.__doc__)
1101
+
1104
1102
  self.SetSizer(
1105
1103
  pack(self, (
1106
1104
  (self._btn, 0, wx.ALIGN_CENTER | wx.LEFT | wx.RIGHT, 0),
@@ -1164,20 +1162,20 @@ class Choice(wx.Control):
1164
1162
  def icon(self, v):
1165
1163
  self._btn.icon = v
1166
1164
 
1167
- def __init__(self, parent, label='',
1168
- handler=None, updater=None, size=(-1,-1),
1169
- icon=None, tip='', readonly=False, **kwargs):
1165
+ def __init__(self, parent, label='', handler=None, updater=None,
1166
+ icon=None, readonly=False, size=(-1,-1), **kwargs):
1170
1167
  wx.Control.__init__(self, parent, size=size, style=wx.BORDER_NONE)
1171
1168
 
1172
1169
  kwargs['style'] = (kwargs.get('style', 0)
1173
1170
  | wx.TE_PROCESS_ENTER
1174
1171
  | (wx.CB_READONLY if readonly else 0))
1175
1172
 
1176
- tooltip = _Tip(tip, handler.__doc__, updater.__doc__)
1177
-
1178
1173
  self._ctrl = wx.ComboBox(self, **kwargs)
1179
- self._btn = Button(self, label, None, icon, tooltip,
1174
+ self._btn = Button(self, label, None, icon,
1180
1175
  size=(-1,-1) if label or icon else (0,0))
1176
+ self._ctrl.ToolTip = _Tip(handler.__doc__)
1177
+ self._btn.ToolTip = _Tip(updater.__doc__)
1178
+
1181
1179
  self.SetSizer(
1182
1180
  pack(self, (
1183
1181
  (self._btn, 0, wx.ALIGN_CENTER | wx.LEFT | wx.RIGHT, 0),
mwx/framework.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #! python3
2
2
  """mwxlib framework.
3
3
  """
4
- __version__ = "0.96.4"
4
+ __version__ = "0.96.6"
5
5
  __author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
6
6
 
7
7
  from functools import wraps, partial
@@ -1594,7 +1594,7 @@ class ShellFrame(MiniFrame):
1594
1594
  if isinstance(editor, str):
1595
1595
  editor = getattr(self, editor, None)
1596
1596
  if editor:
1597
- return editor.load_file(filename, lineno, verbose=0)
1597
+ return editor.load_file(filename, lineno)
1598
1598
 
1599
1599
  def load(self, filename, lineno=0, show=True):
1600
1600
  """Load file @where the object is defined.
@@ -1615,7 +1615,7 @@ class ShellFrame(MiniFrame):
1615
1615
  filename, ln = m.groups()
1616
1616
  lineno = int(ln)
1617
1617
  editor = self.find_editor(filename) or self.Log
1618
- ret = editor.load_file(filename, lineno, verbose=1)
1618
+ ret = editor.load_file(filename, lineno)
1619
1619
  if ret:
1620
1620
  self.popup_window(editor, show)
1621
1621
  return ret
mwx/graphman.py CHANGED
@@ -1268,8 +1268,8 @@ class Frame(mwx.Frame):
1268
1268
  .Name(title).Caption(title)
1269
1269
  .FloatingSize(size).MinSize(size).Show(0))
1270
1270
  j = nb.GetPageIndex(plug)
1271
- tip = "[{}]\n{}".format(plug.__module__, plug.__doc__)
1272
- nb.SetPageToolTip(j, tip.strip())
1271
+ tips = "[{}]\n{}".format(plug.__module__, plug.__doc__)
1272
+ nb.SetPageToolTip(j, tips.strip())
1273
1273
  else:
1274
1274
  nb = None
1275
1275
  size = plug.GetSize()
mwx/images.py CHANGED
@@ -178,6 +178,23 @@ colour_grey = PyEmbeddedImage(
178
178
  b'r7rzc2YUF8aOx3m0NYJWAPe76VmttzK1bzsbW0dAKwAAAID/tYu/URIDsoEAAAAASUVORK5C'
179
179
  b'YII=')
180
180
 
181
+ #----------------------------------------------------------------------
182
+ connect = PyEmbeddedImage(
183
+ b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
184
+ b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ+SURBVBgZlcFLSBRhAAfw/858'
185
+ b's860aygiptIp9NChoDzkxYNUYIcO0TUIOghFUNElvEad6lBkdEqCIugi3QQfLR2yQumBaPh+'
186
+ b'7Li7o/uanfmes1972IOEQv5+Ma01DuPRh+U+StlEhSsZUnElprXGQd6kdomUsoOJaiflojXk'
187
+ b'4mIM+pZjaXCp8GslTwkOMDLlOVyoCamiXhkpVCOJRDyGpG2CCYlsgSPvh4TgACGVt21L97Y0'
188
+ b'meBCg0kNyiW28wHiJrC8VYAo0wsE+3g1vtRdquYeHyXHUfAldkohKJcIuUSjbWI5XYKXLQ5/'
189
+ b'fnk1RbDHyJTnSKHeCbF6SbVMGCteH5pxAk7cQLbAQZmAGbOQccuQZTqGGoK615M5woX6aRPd'
190
+ b'ZTkn4a+7kehMmdOzMmptaDOTNkEuzxE3gaAcQITMQ42BugpVHUzIrqRjwCJVOA3nzPLvMzKS'
191
+ b'cujPxnK04RbRdIQgYBxhIYSs0DRqDNSFnHUKIUG5xKZXQTweg5Potmyde9hz/quZ9RbgukWs'
192
+ b'LWQQlvxFFQkXNQbqKgFvDRhHyCRCKrC27cOxYmhrPksyP5rQMzAPd3FJZVdzoyrip+cn7yvU'
193
+ b'ENSVQnajvclCSAUqlIMyCa8oYVsmoPsxM/pJRVVxam7ywTz2IKi5+WLmXqNjXI4TA5lCgIRt'
194
+ b'wjI1GqwYhJBY39hFLt0+NPtxcB7/IIPPvt9N2MaTRNwAZQKWqbGeLmFnxwf1GZhPwXz+RXH2'
195
+ b'HPsgPuVP25qT0DrCZtbHpltEwQuGlRBjEedexFVaCenOjd9R2Acp+RQb2xFMaKS3iiju+v3T'
196
+ b'b69N4T8RGtBjK/lSRoWKKsYGvr2/nsIh/AUG0IfiieuuUQAAAABJRU5ErkJggg==')
197
+
181
198
  #----------------------------------------------------------------------
182
199
  copy = PyEmbeddedImage(
183
200
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAA'
@@ -209,6 +226,24 @@ core = PyEmbeddedImage(
209
226
  b'AQgglIQEcp6GhgaDtrY22JmgAAT5HRQOnz9/BqsB5Y2dO3eCNHOAYh8ggOAGgJyKbhgygAUa'
210
227
  b'VDMjTBwggMAGTJ48+flvIJCWlpYjlH2RNYMAQIABANLKHICUilYLAAAAAElFTkSuQmCC')
211
228
 
229
+ #----------------------------------------------------------------------
230
+ disconnect = PyEmbeddedImage(
231
+ b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
232
+ b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKuSURBVDjLlZLLS5RRGMbf7zrz'
233
+ b'ebdw8FaSqJAbF0GgRBvptinoPxDKRdDKQjBw2TKClgVJCwmUyMBKydDKS9TCME2tRhs1cZwZ'
234
+ b'57ud853bfB0HiiAVOvBuDuf5ve/7nEcJwxAOOgPTtk4Fr6ZU1OCAVyBCm2Td9jEdcxG5pBwE'
235
+ b'eDyZtaRwjAvWSpkAxjkITsGKqJBIuvB903upH9QdE3rd1MLW0gIVCMsBoYq8U8H2CUQNBdJZ'
236
+ b'p33fCe6PbJo+4XZVmRHFhEDKCXaB4Accii0NFlfT8GNt56a6X/er56qog/Cd1aQjRRQictas'
237
+ b'R8B2EXgIQyblAbX95X9WeDSRPiriz3oZY1pvZ2dH590Z7GB+q7LcjBZHVdhMBaCpEfBsCXDR'
238
+ b'9p8V+t9lLGlUP7PXLxyJbkUMw4DZ2dm+rq6ujjPdz09xTEZrY8VWYZEh/WAwNxWHwEV1eYDs'
239
+ b'qsuOCxFDaYRQwGZ8ljeUE31+fr4PY3xFVulM5mQzC4LRypoSy037kEykvuZytDnvAQ5oNSa8'
240
+ b'scAE0JQcGIeb9LcrJl02Tj+U4gcIoanG8MU35qKzK58SaCux9ZSLoGVxvJvnPfAQrQEQEhTC'
241
+ b'RhpBYVQB61CNyZY+v6qvrzdisRgMDg6O1+kjbUt+23EpTPz2LA9wMa7QFJBuhxIWQHKHQWmB'
242
+ b'DrXHGozJuTfQ4sWBEDI9NDSUkc8zf5ueB9gubiqyVJBacBDZXQm2MhSiugZW7QkYfj/NuGi5'
243
+ b'ttd3a9uxi6bM9FhFmak5fgCmHEXqQFcVEDkBiZVt+edhz8fh7om9AHrWxV5JgWoImXMfE1jb'
244
+ b'sMHd8QF7AQQyONjxp4UQ9/YLnJ710JgaGucXUi6sr2cY84MeQfmyCOg2p3RD5PjPL69v8H0B'
245
+ b'yEWXnSR7IoPSzjEt+jDQQeE/zi9kq6pv7shelwAAAABJRU5ErkJggg==')
246
+
212
247
  #----------------------------------------------------------------------
213
248
  exit = PyEmbeddedImage(
214
249
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
mwx/nutshell.py CHANGED
@@ -9,6 +9,7 @@ from bdb import BdbQuit
9
9
  import traceback
10
10
  import inspect
11
11
  import builtins
12
+ import operator
12
13
  import dis
13
14
  import pydoc
14
15
  import keyword
@@ -163,10 +164,19 @@ class EditorInterface(CtrlInterface):
163
164
  ## This avoids sending the `EVT_STC_NEEDSHOWN` notification.
164
165
  self.SetAutomaticFold(stc.STC_AUTOMATICFOLD_SHOW)
165
166
 
167
+ def _dunders(*objects):
168
+ ss = set()
169
+ for obj in objects:
170
+ ss |= set(x for x in dir(obj) if x.startswith('__'))
171
+ return ss
172
+
166
173
  ## Keyword(2) setting
167
174
  self.SetLexer(stc.STC_LEX_PYTHON)
168
175
  self.SetKeyWords(0, ' '.join(keyword.kwlist))
169
- self.SetKeyWords(1, ' '.join(builtins.__dict__) + ' self this')
176
+ self.SetKeyWords(1, ' '.join(builtins.__dict__)
177
+ + ' '.join(_dunders(type, int, float, str, bytes,
178
+ tuple, list, range, operator,))
179
+ + ' self this')
170
180
 
171
181
  ## AutoComp setting
172
182
  self.AutoCompSetAutoHide(False)
@@ -106,7 +106,7 @@ class Plugin(Layer):
106
106
  updater=self.get_crop,
107
107
  )
108
108
 
109
- self.snp = Button(self, handler=self.snapshot, icon='clock')
109
+ self.snp = Button(self, handler=self.snapshot, icon='clip')
110
110
  self.exp = Button(self, handler=self.export, icon='save')
111
111
 
112
112
  self.rw = Button(self, handler=lambda v: self.seekdelta(-100), icon='|<-')
mwx/plugins/fft_view.py CHANGED
@@ -4,12 +4,18 @@
4
4
  import wx
5
5
  import numpy as np
6
6
  from numpy.fft import fft2,ifft2,fftshift,ifftshift
7
- ## from scipy.fftpack import fft,ifft,fft2,ifft2 Memory Leak? <scipy 0.16.1>
8
- ## import cv2
9
7
 
10
8
  from mwx.graphman import Layer
11
9
  from mwx.controls import Param
12
- import editor as edi
10
+
11
+
12
+ def fftcrop(src):
13
+ """Crop src image in 2**N square ROI centered at (x, y)."""
14
+ h, w = src.shape
15
+ m = min(h, w)
16
+ n = 1 if m < 2 else 2 ** int(np.log2(m) - 1) # +-m/2
17
+ x, y = w//2, h//2
18
+ return src[y-n:y+n, x-n:x+n]
13
19
 
14
20
 
15
21
  class Plugin(Layer):
@@ -45,7 +51,7 @@ class Plugin(Layer):
45
51
  frame = self.graph.frame
46
52
  if frame:
47
53
  self.message("FFT execution...")
48
- src = edi.fftcrop(frame.roi)
54
+ src = fftcrop(frame.roi)
49
55
  h, w = src.shape
50
56
 
51
57
  dst = fftshift(fft2(src))
@@ -233,10 +233,11 @@ class CheckList(wx.ListCtrl, ListCtrlAutoWidthMixin, CtrlInterface):
233
233
  self.Select(j, False)
234
234
 
235
235
  def on_frames_removed(self, indices):
236
- for j in reversed(indices):
237
- self.DeleteItem(j)
238
- for k in range(self.ItemCount): # id(0) を更新する
239
- self.SetItem(k, 0, str(k))
236
+ with wx.FrozenWindow(self):
237
+ for j in reversed(indices):
238
+ self.DeleteItem(j)
239
+ for k in range(self.ItemCount): # id(0) を更新する
240
+ self.SetItem(k, 0, str(k))
240
241
 
241
242
 
242
243
  class Plugin(Layer):
mwx/utilus.py CHANGED
@@ -444,7 +444,7 @@ def find_modules(force=False, verbose=True):
444
444
  lm = eval(o.read()) # read and evaluate module list
445
445
 
446
446
  ## Check additional packages and modules
447
- ## verbose = False
447
+ verbose = False
448
448
  for info in walk_packages_no_import(['.']):
449
449
  _callback('.', info.name)
450
450
  else:
@@ -692,7 +692,8 @@ class FSM(dict):
692
692
  " to : {}".format(self.__state),
693
693
  " action : {}".format(typename(act)),
694
694
  " args : {}".format(args),
695
- " kwargs : {}".format(kwargs))
695
+ " kwargs : {}".format(kwargs),
696
+ "")
696
697
  self.__matched_pattern = None
697
698
  return retvals
698
699
 
@@ -827,17 +828,15 @@ class FSM(dict):
827
828
 
828
829
  if event in context:
829
830
  if state2 != context[event][0]:
830
- warn(f"- FSM transaction may conflict.\n"
831
- f" The state {state2!r} is different from the original state."
832
- f" {event!r} : {state!r} --> {state2!r}")
831
+ warn(f"- FSM transaction may conflict ({event!r} : {state!r} --> {state2!r}).\n"
832
+ f" The state {state2!r} is different from the original state.")
833
833
  pass
834
834
  context[event][0] = state2 # update transition
835
835
  else:
836
- ## if state2 not in self:
837
- ## warn(f"- FSM transaction may contradict\n"
838
- ## f" The state {state2!r} is not found in the contexts."
839
- ## f" {event!r} : {state!r} --> {state2!r}")
840
- ## pass
836
+ if state2 not in self:
837
+ warn(f"- FSM transaction may contradict ({event!r} : {state!r} --> {state2!r}).\n"
838
+ f" The state {state2!r} is not found in the contexts.")
839
+ pass
841
840
  context[event] = [state2] # new event:transaction
842
841
 
843
842
  transaction = context[event]
@@ -848,8 +847,8 @@ class FSM(dict):
848
847
  try:
849
848
  transaction.append(action)
850
849
  except AttributeError:
851
- warn(f"- FSM cannot append new transaction ({state!r} : {event!r})\n"
852
- f" The transaction must be a list, not a tuple")
850
+ warn(f"- FSM cannot append new transaction ({state!r} : {event!r}).\n"
851
+ f" The transaction must be a list, not a tuple.")
853
852
  return action
854
853
 
855
854
  def unbind(self, event, action=None, state=None):
@@ -868,7 +867,7 @@ class FSM(dict):
868
867
 
869
868
  context = self[state]
870
869
  if event not in context:
871
- warn(f"- FSM has no such transaction ({state!r} : {event!r})")
870
+ warn(f"- FSM has no such transaction ({state!r} : {event!r}).")
872
871
  return
873
872
 
874
873
  transaction = context[event]
@@ -882,7 +881,7 @@ class FSM(dict):
882
881
  transaction.remove(action)
883
882
  return True
884
883
  except AttributeError:
885
- warn(f"- FSM removing action from context ({state!r} : {event!r})\n"
884
+ warn(f"- FSM removing action from context ({state!r} : {event!r}).\n"
886
885
  f" The transaction must be a list, not a tuple")
887
886
  return False
888
887
 
@@ -965,7 +964,7 @@ class TreeList(object):
965
964
  else:
966
965
  ls.append([key, value]) # append to items:list
967
966
  except (ValueError, TypeError, AttributeError) as e:
968
- warn(f"- TreeList:warning {e!r}: {key=!r}")
967
+ warn(f"- TreeList {e!r}: {key=!r}")
969
968
 
970
969
  def _delf(self, ls, key):
971
970
  if '/' in key:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mwxlib
3
- Version: 0.96.4
3
+ Version: 0.96.6
4
4
  Summary: A wrapper of matplotlib and wxPython (phoenix)
5
5
  Home-page: https://github.com/komoto48g/mwxlib
6
6
  Author: Kazuya O'moto
@@ -16,11 +16,9 @@ Classifier: Topic :: Scientific/Engineering :: Image Processing
16
16
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
17
  License-File: LICENSE
18
18
  Requires-Dist: wxpython
19
- Requires-Dist: numpy
20
- Requires-Dist: scipy
21
- Requires-Dist: pillow
22
19
  Requires-Dist: matplotlib
23
20
  Requires-Dist: opencv-python
21
+ Requires-Dist: scipy
24
22
 
25
23
  Project description
26
24
  ===================
@@ -1,28 +1,28 @@
1
1
  mwx/__init__.py,sha256=nN62CGTWjME7Zz2h-jIRB8MxwuErIkHPGrlBzydkF0o,643
2
2
  mwx/bookshelf.py,sha256=CjcgtHC33KR5mHp1lW6Bqfndpzr7hC8ICkFihw4kM3g,5134
3
- mwx/controls.py,sha256=JGoDEqfa0m5unISRcAdTxqCXihfuFo1mnLQcMimpGdc,48445
4
- mwx/framework.py,sha256=bP9D868lzBecp1ZRYEv_GupYtior0AoiK6M8B-yxBvw,75249
5
- mwx/graphman.py,sha256=eNL1Uja1m4g8ER3emArTFPZllvxEjvdnZTc1y8QMciE,71267
6
- mwx/images.py,sha256=gyvqW4TLWdJMKmsaWiPiV_PuHJM1GbHgeELERLwGzg8,45291
3
+ mwx/controls.py,sha256=s6yJzQyYnjCzcjXa6nbTJncxzpMI0E5zYWPn3-cFy5Q,48378
4
+ mwx/framework.py,sha256=xo6rnlRMtCtGT3FDJt2dJ8dOdelnPRoN93I1lKQO5lE,75227
5
+ mwx/graphman.py,sha256=XoD_wbt5wrmiRf8Q3lpn_eklakE2K-rLfpzfXG1L-Pc,71269
6
+ mwx/images.py,sha256=_-Eh3xF7Khu42ivkYp97NXIzSNGbjcidqtWjZQFGtqE,47827
7
7
  mwx/matplot2.py,sha256=-G7z0Osozm9NjLfXvX5UcdFviwbNUktjbd904_g-PqQ,33516
8
8
  mwx/matplot2g.py,sha256=22rpdkqJQEJADINPaG5htACutbt8oG1ewO8LMpxaqH4,65237
9
9
  mwx/matplot2lg.py,sha256=MDbkO0vn5yi9rwTBCBJ4rsIHcWyoGXeNTbp0xfrvTdM,27381
10
10
  mwx/mgplt.py,sha256=ITzxA97yDwr_35BUk5OqnyskSuKVDbpf2AQCKY1jHTI,5671
11
- mwx/nutshell.py,sha256=HNo8ZuhLZPKd_Cg4s9NN-KfuSXHRP_jaw1s59GVXkN4,136971
12
- mwx/utilus.py,sha256=jTjeunx_9-HrjdWaceX1Xeq3pHMS4M7M9ma2i4uhKJY,37369
11
+ mwx/nutshell.py,sha256=cdrg3cuF6AVU2OuR3QswSiTWrTsGIVaqrBSMuxJIjdE,137364
12
+ mwx/utilus.py,sha256=8GK_2mGY08DVN5_SGWynLKQEJsCKqvqWTDToar1XozM,37333
13
13
  mwx/wxmon.py,sha256=f3V24EF7kdMlYF7usLYK9QE5KU6fSu0jVqsvwAiA-Ag,12647
14
14
  mwx/wxpdb.py,sha256=lLowkkAgMhPFHAfklD7wZHq0qbSMjRxnBFtSajmVgME,19133
15
15
  mwx/wxwil.py,sha256=0bzSTfMEjllJheKxZPb4p8Luz6Il3V29bCLBty72U2o,5576
16
16
  mwx/wxwit.py,sha256=yU6XeCCWRBP7CLmpphjT072PfXAL30DNaxoChDX2p0I,7322
17
17
  mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
18
- mwx/plugins/ffmpeg_view.py,sha256=wZXRgsiPyIphcA8hvXQoE7NZp4cc_YBOO0ZpuKmUJKE,9369
19
- mwx/plugins/fft_view.py,sha256=HcnBr-y_yFdSfASPRzMLANta4SwSDShd65QWnCU3XhM,2665
20
- mwx/plugins/frame_listview.py,sha256=Li993CV0pPY23Jb8cGQkc3wVeDlHWLEe8RuDbNZeB8s,10351
18
+ mwx/plugins/ffmpeg_view.py,sha256=QjNqnvPEd9vCwfATU2BOO75fIOFD5LQ-Wf-BBhvZNZs,9368
19
+ mwx/plugins/fft_view.py,sha256=HVptnn1dq-Dg7AzXKJXq1dfKiy38catlrMbJkvyLM98,2790
20
+ mwx/plugins/frame_listview.py,sha256=7LDAYbl5NvmD4Ehc690IrTbcRgCALRWeLVVOT9cm9Do,10404
21
21
  mwx/plugins/line_profile.py,sha256=--9NIc3x5EfRB3L59JvD7rzENQHyiYfu7wWJo6AuMkA,820
22
22
  mwx/py/__init__.py,sha256=xykgfOytOwNuvXsfkLoumFZSTN-iBsHOjczYXngjmUE,12
23
23
  mwx/py/filling.py,sha256=KaHooM32hrGGgqw75Cbt8lAvACwC6RXadob9LGgNnEc,16806
24
- mwxlib-0.96.4.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
- mwxlib-0.96.4.dist-info/METADATA,sha256=z1bx81IMuasnA9ZGE1vUidxqqh7cOC_LmB-Rdrqd0xw,1925
26
- mwxlib-0.96.4.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
27
- mwxlib-0.96.4.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
- mwxlib-0.96.4.dist-info/RECORD,,
24
+ mwxlib-0.96.6.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
+ mwxlib-0.96.6.dist-info/METADATA,sha256=8MHmMhq14c6bbvPdH1uCOk-LxYTijq_07e7ACN_bbpQ,1880
26
+ mwxlib-0.96.6.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
27
+ mwxlib-0.96.6.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
+ mwxlib-0.96.6.dist-info/RECORD,,