mwxlib 0.95.3__py3-none-any.whl → 0.95.5__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
@@ -896,6 +896,20 @@ class Icon(wx.Bitmap):
896
896
  bmp = _getBitmap2(*args, **kwargs)
897
897
  wx.Bitmap.__init__(self, bmp)
898
898
 
899
+ @staticmethod
900
+ def bullet(colour, ec=None, size=None, radius=4):
901
+ if not size:
902
+ size = (16,16)
903
+ bmp = wx.Bitmap(size)
904
+ with wx.MemoryDC(bmp) as dc:
905
+ dc.SetBackground(wx.Brush('black'))
906
+ dc.Clear()
907
+ dc.SetPen(wx.Pen(ec, style=wx.PENSTYLE_SOLID))
908
+ dc.SetBrush(wx.Brush(colour, style=wx.BRUSHSTYLE_SOLID))
909
+ dc.DrawCircle(size[0]//2, size[0]//2, radius)
910
+ bmp.SetMaskColour('black')
911
+ return bmp
912
+
899
913
  @staticmethod
900
914
  def iconify(icon, w, h):
901
915
  ## if wx.VERSION >= (4,1,0):
@@ -930,15 +944,14 @@ def _getBitmap1(key, size=None):
930
944
  return bmp
931
945
 
932
946
  ## Note: null (0-shaped) bitmap fails with AssertionError from 4.1.1
933
- if key == '':
947
+ elif key == '':
934
948
  bmp = wx.Bitmap(size or (16,16))
935
- if 1:
936
- dc = wx.MemoryDC(bmp)
949
+ with wx.MemoryDC(bmp) as dc:
937
950
  dc.SetBackground(wx.Brush('black'))
938
951
  dc.Clear()
939
- del dc
940
952
  bmp.SetMaskColour('black') # return dummy-sized blank bitmap
941
953
  return bmp
954
+
942
955
  return wx.NullBitmap # The standard wx controls accept this,
943
956
 
944
957
 
@@ -951,9 +964,8 @@ def _getBitmap2(back, fore, size=None, subsize=3/4):
951
964
  fore = _getBitmap1(fore, subsize)
952
965
  x = size[0] - subsize[0]
953
966
  y = size[1] - subsize[1]
954
- dc = wx.MemoryDC(back)
955
- dc.DrawBitmap(fore, x, y, useMask=True)
956
- del dc
967
+ with wx.MemoryDC(back) as dc:
968
+ dc.DrawBitmap(fore, x, y, useMask=True)
957
969
  return back
958
970
 
959
971
 
mwx/framework.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #! python3
2
2
  """mwxlib framework.
3
3
  """
4
- __version__ = "0.95.3"
4
+ __version__ = "0.95.5"
5
5
  __author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
6
6
 
7
7
  from functools import wraps, partial
@@ -1116,6 +1116,10 @@ class ShellFrame(MiniFrame):
1116
1116
  self.Log = EditorBook(self, name="Log")
1117
1117
  self.Help = EditorBook(self, name="Help")
1118
1118
 
1119
+ self.Bookshelf = EditorTreeCtrl(self, name="Bookshelf",
1120
+ style=wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT)
1121
+ wx.CallAfter(self.Bookshelf.attach, self)
1122
+
1119
1123
  from .wxpdb import Debugger
1120
1124
  from .wxwit import Inspector
1121
1125
  from .wxmon import EventMonitor
@@ -1147,15 +1151,11 @@ class ShellFrame(MiniFrame):
1147
1151
  self.console.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnConsolePageChanged)
1148
1152
 
1149
1153
  self.ghost = AuiNotebook(self, size=(600,400))
1150
- self.ghost.AddPage(self.Scratch, "Scratch")
1154
+ self.ghost.AddPage(self.Scratch, "Scratch", bitmap=Icon('ghost'))
1151
1155
  self.ghost.AddPage(self.Log, "Log")
1152
1156
  self.ghost.AddPage(self.Help, "Help")
1153
1157
  self.ghost.Name = "ghost"
1154
1158
 
1155
- self.Bookshelf = EditorTreeCtrl(self, name="Bookshelf",
1156
- style=wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT)
1157
- self.Bookshelf.attach(self)
1158
-
1159
1159
  self.ghost.AddPage(self.Bookshelf, "Bookshelf", bitmap=Icon('book'))
1160
1160
 
1161
1161
  self.ghost.SetDropTarget(FileDropLoader(self.Scratch))
@@ -1163,7 +1163,7 @@ class ShellFrame(MiniFrame):
1163
1163
  self.watcher = AuiNotebook(self, size=(300,200))
1164
1164
  self.watcher.AddPage(self.ginfo, "globals")
1165
1165
  self.watcher.AddPage(self.linfo, "locals")
1166
- self.watcher.AddPage(self.monitor, "Monitor", bitmap=Icon('ghost'))
1166
+ self.watcher.AddPage(self.monitor, "Monitor", bitmap=Icon('tv'))
1167
1167
  self.watcher.AddPage(self.inspector, "Inspector", bitmap=Icon('inspect'))
1168
1168
  self.watcher.Name = "watcher"
1169
1169
 
@@ -1273,14 +1273,17 @@ class ShellFrame(MiniFrame):
1273
1273
  self.set_hookable(self.Log)
1274
1274
 
1275
1275
  @self.Scratch.define_key('C-j')
1276
- def eval_line():
1276
+ def eval_line(evt):
1277
1277
  shell = self.current_shell
1278
1278
  self.Scratch.buffer.py_eval_line(shell.globals, shell.locals)
1279
+ evt.Skip(False)
1279
1280
 
1280
1281
  @self.Scratch.define_key('C-S-j')
1281
- def eval_buffer():
1282
+ @self.Scratch.define_key('M-j')
1283
+ def eval_buffer(evt):
1282
1284
  shell = self.current_shell
1283
1285
  self.Scratch.buffer.py_exec_region(shell.globals, shell.locals)
1286
+ evt.Skip(False)
1284
1287
 
1285
1288
  ## Session
1286
1289
  self.SESSION_FILE = get_rootpath(".debrc")
mwx/graphman.py CHANGED
@@ -594,7 +594,7 @@ class MyFileDropLoader(wx.FileDropTarget):
594
594
  elif ext == '.jssn':
595
595
  self.loader.load_session(fn)
596
596
  elif ext == '.index':
597
- self.loader.import_index(fn, self.view)
597
+ self.loader.load_index(fn, self.view)
598
598
  else:
599
599
  paths.append(fn) # image file just stacks to be loaded
600
600
  if paths:
@@ -697,10 +697,10 @@ class Frame(mwx.Frame):
697
697
  (),
698
698
  ## ("Index", (
699
699
  ## (mwx.ID_(11), "&Import index\tCtrl+Shift+o", "Import index file", Icon('open'),
700
- ## lambda v: self.import_index()),
700
+ ## lambda v: self.load_index()),
701
701
  ##
702
702
  ## (mwx.ID_(12), "&Export index\tCtrl+Shift+s", "Export index file", Icon('saveas'),
703
- ## lambda v: self.export_index(),
703
+ ## lambda v: self.save_index(),
704
704
  ## lambda v: v.Enable(self.__view.frame is not None)),
705
705
  ## )),
706
706
  ("Session", (
@@ -1401,7 +1401,7 @@ class Frame(mwx.Frame):
1401
1401
  ## --------------------------------
1402
1402
  ATTRIBUTESFILE = "results.index"
1403
1403
 
1404
- def import_index(self, filename=None, view=None):
1404
+ def load_index(self, filename=None, view=None):
1405
1405
  """Load frames :ref to the Index file.
1406
1406
  """
1407
1407
  if not view:
@@ -1433,7 +1433,7 @@ class Frame(mwx.Frame):
1433
1433
  print(self.message.read())
1434
1434
  return frames
1435
1435
 
1436
- def export_index(self, filename=None, frames=None):
1436
+ def save_index(self, filename=None, frames=None):
1437
1437
  """Save frames :ref to the Index file.
1438
1438
  """
1439
1439
  if not frames:
@@ -1481,6 +1481,9 @@ class Frame(mwx.Frame):
1481
1481
  print(self.message.read())
1482
1482
  return frames
1483
1483
 
1484
+ import_index = load_index # for backward compatibility
1485
+ export_index = save_index # for backward compatibility
1486
+
1484
1487
  ## --------------------------------
1485
1488
  ## load/save frames and attributes
1486
1489
  ## --------------------------------
mwx/images.py CHANGED
@@ -104,21 +104,6 @@ camera = PyEmbeddedImage(
104
104
  b'vhvJZFLusf54PC5lMYHI5XKPqa/P6EP3+XyCry4T8E/2BHDoEIdv6fmH92/9Vvz31/gHd9iU'
105
105
  b'VZFEDKoAAAAASUVORK5CYII=')
106
106
 
107
- #----------------------------------------------------------------------
108
- card = PyEmbeddedImage(
109
- b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlw'
110
- b'SFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA'
111
- b'AAHcSURBVDiNhZM7a5RBGIWf+W4r0SiGKJgIq7ExsfEChiBCLBQECwsbC3vxH9iLIBbqv9Ay'
112
- b'CIKFPyAsFkG8rWA0RmOCQTeb3f32S+Y9Fns3H/GFmWbmPDNzzjtOEmemZ+aAq4Dx/wqAt2Y2'
113
- b'u1Car0QAkq5cujgTBwEECJxaW6UBpXCIgPKnxanlldU5YDbqXz458pzJsa84BoWt1dZc/nkc'
114
- b'768lS99XLgB0ATJjcuwzM9cfErp1ALIsI02bpGmTZrOJOIRKj3mz6rvgLsBkOBxhPEpa/UDa'
115
- b'aFCvV6lt/mDjzzeyrMb4sVsEQTjwtN4NBDhHtbLIr+VX1Gp1Go0MFwyzd3icg4WIfftH2w+x'
116
- b'HIAJSVQqm2ScIxraZuQAJJERxyKJIQnWkDze5wEkFr4cBT0CtzO7Tr1bOoL3vQ1Rx2OT8aJ0'
117
- b'ipevp3BOqD8JdXwCb45iMccDUwtiviNwba0GICDU1269PjAhE6adJ/eDHGDWizHo6Y3V9Q2S'
118
- b'OKAQh62R9MaeJKKQhKz93sTbvyYK5I3QbXP78uE877p171kVKScFM2PLQs7euL8rwD+9ieXE'
119
- b'qC1vnJiY4GP5fe5faF3UUSwW8SZo/1wnidPnpx8g7giG2LUL2hxoAncXSvNP/gJOse/PFpzV'
120
- b'hQAAAABJRU5ErkJggg==')
121
-
122
107
  #----------------------------------------------------------------------
123
108
  clip = PyEmbeddedImage(
124
109
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0'
@@ -150,26 +135,6 @@ clock = PyEmbeddedImage(
150
135
  b'vqHBv3R3pmbxzgwz4Z+EaTXtwqIogrzjxIJ4QVVV1UyihxgjFv3/K09Bu/lEkBgg5rLZH+fT'
151
136
  b'5dvfn7iFAAAAAElFTkSuQmCC')
152
137
 
153
- #----------------------------------------------------------------------
154
- code = PyEmbeddedImage(
155
- b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
156
- b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAL2SURBVDjLVdNNaBx1GMfx78zO'
157
- b'7Lu765qQWIPteqiH+IKCjTmkClIVPHi0pVDSXBT0sGhLUOvJl0OL4AuVBC+CLXpoD1KqweBB'
158
- b'WFFajOChSTU20q2h6e66nX2Znfm/ejCJ8Qff6+fy8DjWWgCmz9f3AR/cV0pPhtIQSoM0hoEy'
159
- b'AdAFmoAG2kAL+Bz41mNzRqmJh0fzk689MczO9YUphsIU25EeExK6sebPZo9v/ugfAKo7gZFC'
160
- b'0gGgflvjOw6eAwkPUr7LvSmXhOviJ+CRsQy7irnyp5fW33e3AC1loWQilIGucAgkdDoRQQRB'
161
- b'BK0B3OppAF4/e53JSo4HhvzhbSAfBiP7v5pHHZ2mH2kqJ2cZ+uxjwqBPNzb0IstAgAEc3eGn'
162
- b'a22WrgfrLoA4Ol2eXfrimZw3QDoeYWyRePh0GZ0/RdTu0o8NfWnAwkYn5sPF1Y4WYtoVR44c'
163
- b'NGH01+iwXzT1FvVj76CApUNVxI2ApNNn77EZUrXviZSDsaB9jRKicv7lxxZdM4jm433jabO0'
164
- b'Asdn6eTLOC7oQpnfX3gFfrmKnBjnnrmTuFJiLag4RotYA7gmHLyY+LoWmcounBNvYm81cLEk'
165
- b'gyaVuXdRe+7GuVijPlPFSfpIren1Q6WE6AC42YsXvjy9e//EtdXbyHyKyqszYOH+946TKHiE'
166
- b'bcOVuXMEUwfI+NDqxahYbCy89awFcAEWhvaKj6YO48WQaDTAcXGbDcIA1k6cQuaKYCHruTTa'
167
- b'A7SI17eu501Vzw4Bbz84OU6veobvlgW5rubHTy6Q9i2+B8nEvxWysFoPUUJsbANaiKeA535e'
168
- b'XqM98OjFFqktsXQQyqC0wVhLuVjkpadHudkK0UI0/gOkfPT5Jx/KvHH48f/9gLYgtUUowMLp'
169
- b'hXWyPnR7IVrK1k5g7WYz4MziMqV8hlIhTSmXophLcUc2SSrpkvJcDk2NkPKg8XcXLeWNbcAo'
170
- b'da52eWWsdnllN3DXZnduVkwnfT+d9inkMpQKWX69Wv8N+GEL+AdfSH+n2ppttwAAAABJRU5E'
171
- b'rkJggg==')
172
-
173
138
  #----------------------------------------------------------------------
174
139
  colour = PyEmbeddedImage(
175
140
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
@@ -244,41 +209,6 @@ core = PyEmbeddedImage(
244
209
  b'AQgglIQEcp6GhgaDtrY22JmgAAT5HRQOnz9/BqsB5Y2dO3eCNHOAYh8ggOAGgJyKbhgygAUa'
245
210
  b'VDMjTBwggMAGTJ48+flvIJCWlpYjlH2RNYMAQIABANLKHICUilYLAAAAAElFTkSuQmCC')
246
211
 
247
- #----------------------------------------------------------------------
248
- edit = PyEmbeddedImage(
249
- b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
250
- b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH8SURBVDjLjZPfS1NhGMdXf0VE'
251
- b'QhDUhdCN4X0IYT8ghIJQM0KoC4vushZddLELKyRhQQkSFIKEGEkUCI2oxVhepG5zi1xbc0u3'
252
- b'cDs7Z+ec/ezT+x62scmmHvhwDrzP93Pe57znsQE2cR0SdAm6d+GwYL/M1LBVBV35fF4plUqV'
253
- b'crlMK8Q6TqdzYrukJuiW4Vwuh67rdbLZLJlMhmQyaUnigVlC05f4+dbB0tQplp92DsnwPimQ'
254
- b'BaZpUigUrLtE0zQURSGVSqHF37DhGkVZeQdagszKLJ7HvZtNAhmuIQWGYaCqKps/ZkivPqCw'
255
- b'Ps/Gp0cYvjnKUTe+F9fMJoFoo96zfJZ9K+sLpP33qRhujPANtr7dJPhqmO/PBxX3+PljTYLt'
256
- b'qImPpH13qZge9LUrmLEB1FU7sZd9jJw5MljNthYk/KLnxdFqeAjzdz9Z/z3Ck2fRE36qx9pa'
257
- b'kAjME1y4Lbb9GTMyTD52GUXsZO3ZadTkL6umrSD4ZZrAezvLH54Q915EjwywtXSH8FQf+t+I'
258
- b'9V12FLwe6wE1SmjyAi77Qb6Kt3rGe9H+hKzwrgLH9eMUPE4K3gm8jpPMjRwlHfNTLBbr7Cjo'
259
- b'7znA2NVOXA/PsThzi2wyah1pI+0E/9rNQQsqMtM4CyfE36fLhb2ERa0mB7BR0CElexjnGnL0'
260
- b'O2T2PyFunSz8jchwAAAAAElFTkSuQmCC')
261
-
262
- #----------------------------------------------------------------------
263
- erase = PyEmbeddedImage(
264
- b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
265
- b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMOSURBVHjaYjx66tobAT4e9n//'
266
- b'/zPAwD8g88ePnwy/f/1mePPuI9Of3//ef/78xYOZheUKExMTw+1bNxkaqjPAagECiIWdjY1b'
267
- b'U02GgwEJ/Aca9uPXP4a/fxgY7t5/zMDDzcl198Hz/U+evQxlZ2c/gKwWIICYGLAARkZGBqBF'
268
- b'DIxM/xiYmJkYJCRFGBysdUXUVeV3srKwhPxDOJYBIIBYsBkAkmcEYjY2Fob7Dx4zvHr5koGL'
269
- b'm4Phz++/bJ8+flj979+/IqB0P0gtQABhdQHYFUxAVwBNERURYvj1j5Hh5YuPDHfuPmZg42Bj'
270
- b'+PLlQxtMHUAAYXUByHYmoDf+/P7DoGugwfDrBzAwP/9kePf8OQMrKxvDqRNH4WoBAgjhgn9/'
271
- b'GRiun2JguHmW4R+Q+wfojz+srAxf7t1jYOoqYmDdu46BlYsb6C1WBmZmZrg2gABCuODJLQaG'
272
- b'4zsYGL5+YPj/6B7DV5sQhv8PbzIITqpiYN+7g4FT7hjDb20zBiYxaWAgI1wLEEAIAySVGRjk'
273
- b'1RkY9qxjYL45n4H7zFEGpjt3GFgPH2T4LaXE8D6nkYFZRJyBlfEf1JMQABBALDD2DyYg0y6E'
274
- b'gfHbTwbWFTMY2K9uZmB49Z7ht5YBw7u6qQy/FTUYmL98YQAmJnA0wwBAALHAAuEPMAgYWZkZ'
275
- b'WJg4GBifvmJgePaageHzDwaGp28ZGIGxwAjyO1AfMyMsoiEAIICY/sFC/vcvBrbFkxnYOysY'
276
- b'GF5/ZPhrZMHwj1uYgfXsDQZhH1cG9m1AF3FyQW1HuAAggOCxwHJkBwPr1A4GhhdvGH5FJjN8'
277
- b'XriT4WvvLIb/fPwMzK9eMQgU5zIwvXrB8B8YjcgAIIAQXjBzYmB08mP4L6PC8CulEJwffvv6'
278
- b'MnxYvZGBq6yA4Wt6FsM/XqBhwLSB7AWAAGKBpWtuQT4GhvbpYClWIP77F5SpgLSLHcOv8+eA'
279
- b'XvzPwP31FwMLCytKIAIEEMvHT5++tnVO/sPExALNB/+APmQCav4HNuA/NGf8B3P+AzUzMXz5'
280
- b'BEyWUAAQYABehgBuH0rveAAAAABJRU5ErkJggg==')
281
-
282
212
  #----------------------------------------------------------------------
283
213
  exit = PyEmbeddedImage(
284
214
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
@@ -437,20 +367,6 @@ load = PyEmbeddedImage(
437
367
  b'n78wcHADSx8ulhsMHEDMzAiK1m+4qiaAAEINij9/GcAuAcUWKHYYwRmFC1g1tQmIcGd8/f33'
438
368
  b'ye/ff7WAEr/AsQjLoWAnQipdWFAABBgAhGIfg4WD5MwAAAAASUVORK5CYII=')
439
369
 
440
- #----------------------------------------------------------------------
441
- memo = PyEmbeddedImage(
442
- b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACEElEQVR4AY2TA5BbUQBFs5mO'
443
- b'2kFt2xrVtm2bw9pGWNu2ubZt24y+cZtX//X9xjnPKhK9UbNOZzhrOaM5iaoO+z9Z9msvVWXR'
444
- b'6s9YC4sKIMsyqoqjoyOuXb/KntWeWmJcrFYrBKQEAtsoK8yWMpSZS1FaVozi0iIUlRSgoCgP'
445
- b'3t5eCAsLw6M9G/gXzRvIjxqqI+80d6j3V0BCBBaruVLJh4/vkR74DW/at0b28ePwGDYYdzo4'
446
- b'fFIIKNqG0LBQUt0Kx2XtTrzTTEPyzYPwnz8bHm3b4mFdlaQQMAxNJP/VxARSk6QIF3zQTkOB'
447
- b'2xFIrmvhOq4VHtVR4WZ3h3UKAcuxCAsPU5T84ekVvDs7BfmuhyF+X4iY871xfX1D6LcvBWEV'
448
- b'Ap7nQCQMS2pCISPeF+81dtjlIETHRYgwdMf1DY1QlBkFwlQQCKKA8PDwXyU/v443pyYi12k/'
449
- b'gRGs6YJrGxojIyEIgFy5QJIkIgHPcXh9fDRyHPcRGP6nO+P21lbISY+EyWwCgMoFZC5ERETg'
450
- b'7X0NnC7Mgei8Ep7HOuDaxhb4/O4pomOiYbZWLfibA5sn4u6ugbi9sSGe7h2A0sIM0AwFG2WD'
451
- b'1WapXsBSJsyf2BOanbORmxQIXuDB/exYhkhAUbaaBGUQWOpvn4ii+FfC2iUsx5CmKgX2lWg1'
452
- b'mUyoTQhcVFwIrf6slbC1Xc6Kg/xLGML+APJWxIkWy8dWAAAAAElFTkSuQmCC')
453
-
454
370
  #----------------------------------------------------------------------
455
371
  paste = PyEmbeddedImage(
456
372
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwY'
@@ -578,6 +494,23 @@ saveall = PyEmbeddedImage(
578
494
  b'lD3/b0B6tPf2byempRFO127T095JQ6wJFBTcJk7VhCRjYItUT/mgrgxOvWtrPtLdEG8gYdcT'
579
495
  b'6gDRGjERWsosrS2TKwbMP78rcth3/gX/0SEvLZFG1QAAAABJRU5ErkJggg==')
580
496
 
497
+ #----------------------------------------------------------------------
498
+ script = PyEmbeddedImage(
499
+ b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
500
+ b'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ+SURBVBgZBcExbFRlAADg7//f'
501
+ b'u7teC3elQEoMgeDkYDQ6oMQQTYyGxMHZuDA6Ypw0cWI20cHJUdl0cJLIiomR6OACGhUCpqGW'
502
+ b'tlzbu/b97/3v9/tCKQVc/e7RRXz+7OrSpUXbW7S9tu8ddv0M+3iCjF1s42v8WAP0XffKi2eO'
503
+ b'Xfro9dMAYJ766SL1092jfDa17DfZgycHfvh7/hau1QB9161PhgE8epoNQlAHqprRIDo3iqoY'
504
+ b'DSpeOjv2zHRl7atfNj6LALltJys1Xc9+CmYtTxtmR8yO2D7kv4MMPr7x0KULK54/NThdA+S2'
505
+ b'XTs+jOYN86MsxqBGVRErKkEV6BHynp//2fXbw9lGDZBTWp+OK7PDzqIpYiyqSMxBFakUVYVS'
506
+ b'2dxrfHHrrz1crQG6lM6vTwZmR0UHhSoHsSBTKeoS9YU8yLrUXfj+w9d2IkBOzfkz05F5KkKk'
507
+ b'CkFERACEQil0TSOnJkMNV67fHNdVHI4GUcpZVFAUZAEExEibs4P5osMeROiadHoUiIEeCgFR'
508
+ b'EAoRBOMB2weNrkmbNz+9UiBCTs1yrVdHqhgIkRL0EOj7QGG5jrZ2D+XUbADEy9dunOpSun7x'
509
+ b'uXMe7xUPNrOd/WyeyKUIoRgOGS8xWWZ7b6FLaROgzim9iXd+vXvf7mHtoCnaXDRtkLpel3t9'
510
+ b'KdamUx+8fcbj7YWc0hZAndv25XffeGH8yfuvAoBcaHOROhS+vLlhecD+wUJu222AOrft/cdP'
511
+ b'Zr65ddfqsbHVyZLVlZHpysjx5aHRMBrV0XuX141qtnb25bb9F6Duu+7b23funb195955nMRJ'
512
+ b'nMAJTJeGg8HS0sBkZWx1suz3Px79iZ8A/gd7ijssEaZF9QAAAABJRU5ErkJggg==')
513
+
581
514
  #----------------------------------------------------------------------
582
515
  tag = PyEmbeddedImage(
583
516
  b'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0'
mwx/nutshell.py CHANGED
@@ -48,8 +48,8 @@ py_where_re = r'> +([^*?"<>|\r\n]+?):([0-9]+)'
48
48
  py_break_re = r'at ([^*?"<>|\r\n]+?):([0-9]+)'
49
49
 
50
50
 
51
- def skip(v):
52
- v.Skip()
51
+ def skip(evt):
52
+ evt.Skip()
53
53
 
54
54
 
55
55
  def can_edit(f):
@@ -2214,8 +2214,8 @@ class Nautilus(Shell, EditorInterface):
2214
2214
 
2215
2215
  C-up : [0] retrieve previous history
2216
2216
  C-down : [0] retrieve next history
2217
- C-j, C-S-j : [0] call tooltip of eval (for the word selected or focused)
2218
- C-h, C-S-h : [0] call tooltip of help (for the func selected or focused)
2217
+ C-j(J), M-j : [0] call tooltip of eval (for the word selected or focused)
2218
+ C-h(H), M-h : [0] call tooltip of help (for the func selected or focused)
2219
2219
  TAB : [1] history-comp-mode
2220
2220
  M-p : [1] retrieve previous history in comp-mode
2221
2221
  M-n : [1] retrieve next history in comp-mode
@@ -2453,8 +2453,10 @@ class Nautilus(Shell, EditorInterface):
2453
2453
  'S-insert pressed' : (0, _F(self.Paste)),
2454
2454
  'C-S-insert pressed' : (0, _F(self.Paste, rectangle=1)),
2455
2455
  'C-j pressed' : (0, self.eval_line),
2456
+ 'M-j pressed' : (0, self.exec_region),
2456
2457
  'C-S-j pressed' : (0, self.exec_region),
2457
2458
  'C-h pressed' : (0, self.call_helpTip),
2459
+ 'M-h pressed' : (0, self.call_helpTip2),
2458
2460
  'C-S-h pressed' : (0, self.call_helpTip2),
2459
2461
  '. pressed' : (2, self.OnEnterDot),
2460
2462
  'tab pressed' : (1, self.call_history_comp),
@@ -2512,8 +2514,10 @@ class Nautilus(Shell, EditorInterface):
2512
2514
  '*backspace released' : (2, self.call_word_autocomp),
2513
2515
  'C-S-backspace pressed' : (2, ),
2514
2516
  'C-j pressed' : (2, self.eval_line),
2517
+ 'M-j pressed' : (2, self.exec_region),
2515
2518
  'C-S-j pressed' : (2, self.exec_region),
2516
2519
  'C-h pressed' : (2, self.call_helpTip),
2520
+ 'M-h pressed' : (2, self.call_helpTip2),
2517
2521
  'C-S-h pressed' : (2, self.call_helpTip2),
2518
2522
  '*alt pressed' : (2, ),
2519
2523
  '*ctrl pressed' : (2, ),
@@ -2543,8 +2547,10 @@ class Nautilus(Shell, EditorInterface):
2543
2547
  '*backspace released' : (3, self.call_apropos_autocomp),
2544
2548
  'C-S-backspace pressed' : (3, ),
2545
2549
  'C-j pressed' : (3, self.eval_line),
2550
+ 'M-j pressed' : (3, self.exec_region),
2546
2551
  'C-S-j pressed' : (3, self.exec_region),
2547
2552
  'C-h pressed' : (3, self.call_helpTip),
2553
+ 'M-h pressed' : (3, self.call_helpTip2),
2548
2554
  'C-S-h pressed' : (3, self.call_helpTip2),
2549
2555
  '*alt pressed' : (3, ),
2550
2556
  '*ctrl pressed' : (3, ),
@@ -2574,8 +2580,10 @@ class Nautilus(Shell, EditorInterface):
2574
2580
  '*backspace released' : (4, self.call_text_autocomp),
2575
2581
  'C-S-backspace pressed' : (4, ),
2576
2582
  'C-j pressed' : (4, self.eval_line),
2583
+ 'M-j pressed' : (4, self.exec_region),
2577
2584
  'C-S-j pressed' : (4, self.exec_region),
2578
2585
  'C-h pressed' : (4, self.call_helpTip),
2586
+ 'M-h pressed' : (4, self.call_helpTip2),
2579
2587
  'C-S-h pressed' : (4, self.call_helpTip2),
2580
2588
  '*alt pressed' : (4, ),
2581
2589
  '*ctrl pressed' : (4, ),
mwx/plugins/fft_view.py CHANGED
@@ -40,7 +40,7 @@ class Plugin(Layer):
40
40
  self.parent.define_key('C-S-f', None)
41
41
  return Layer.Destroy(self)
42
42
 
43
- def newfft(self, evt):
43
+ def newfft(self):
44
44
  """New FFT of graph to output."""
45
45
  frame = self.graph.frame
46
46
  if frame:
@@ -58,7 +58,7 @@ class Plugin(Layer):
58
58
  localunit=u)
59
59
  self.message("\b done")
60
60
 
61
- def newifft(self, evt):
61
+ def newifft(self):
62
62
  """New inverse FFT of output to graph."""
63
63
  frame = self.output.frame
64
64
  if frame:
@@ -180,14 +180,14 @@ class CheckList(wx.ListCtrl, ListCtrlAutoWidthMixin, CtrlInterface):
180
180
  self.Select(j)
181
181
 
182
182
  def OnLoadItems(self, evt):
183
- self.parent.parent.import_index(view=self.Target)
183
+ self.parent.parent.load_index(view=self.Target)
184
184
 
185
185
  def OnSaveItems(self, evt):
186
186
  frames = self.Target.all_frames
187
187
  selected_frames = [frames[j] for j in self.selected_items]
188
188
  if selected_frames:
189
189
  self.parent.message("Exporting {} frames.".format(len(selected_frames)))
190
- self.parent.parent.export_index(frames=selected_frames)
190
+ self.parent.parent.save_index(frames=selected_frames)
191
191
  else:
192
192
  self.parent.message("No frame selected.")
193
193
 
mwx/wxwit.py CHANGED
@@ -157,19 +157,10 @@ class Inspector(it.InspectionTree, CtrlInterface):
157
157
  self.SetFocus()
158
158
  obj = self.target
159
159
  Menu.Popup(self, [
160
- (1, "&Dive into the shell", Icon('core'),
161
- lambda v: dive(obj),
162
- lambda v: v.Enable(obj is not None)),
163
-
164
- (2, "&Watch the event", Icon('ghost'),
165
- lambda v: watch(obj),
166
- lambda v: v.Enable(obj is not None)),
167
-
168
- (),
169
160
  (8, "&Filling View", miniIcon('ShowFilling'),
170
161
  lambda v: filling(obj),
171
162
  lambda v: v.Enable(obj is not None)),
172
-
163
+
173
164
  (10, "&Inspection Tool", Icon('inspect'),
174
165
  lambda v: watchit(obj),
175
166
  lambda v: v.Enable(obj is not None)),
@@ -180,6 +171,14 @@ class Inspector(it.InspectionTree, CtrlInterface):
180
171
 
181
172
  (12, "Refresh\tf5", miniIcon('Refresh'),
182
173
  lambda v: self.BuildTree(obj)),
174
+ (),
175
+ (2, "&Watch event", Icon('tv'),
176
+ lambda v: watch(obj),
177
+ lambda v: v.Enable(obj is not None)),
178
+
179
+ (1, "&Dive into {!r}".format(obj), Icon('core'),
180
+ lambda v: dive(obj),
181
+ lambda v: v.Enable(obj is not None)),
183
182
  ])
184
183
 
185
184
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mwxlib
3
- Version: 0.95.3
3
+ Version: 0.95.5
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
@@ -1,28 +1,28 @@
1
1
  mwx/__init__.py,sha256=SNSLQc0IGuE6LDT5mzaAxXRgcH_k6cRVS3gXzFQqdZM,814
2
2
  mwx/bookshelf.py,sha256=DAhMQk3_J4rdE50adBMFu5wNz3WdMh_zzJ37O9ncceo,5103
3
- mwx/controls.py,sha256=JBMUbDgHFf4Dx0PofCdnoQExBnGjxiAeSGkdS_0Qgo4,47673
4
- mwx/framework.py,sha256=t-d8fgYP_fJ9vTxJ9ZZ7POWK7RNds_-q-iGhEI6IVHU,75531
5
- mwx/graphman.py,sha256=PacQF1Of6oaqw26uFoXaAK9IrwggGRwoJe9uCP5JZ28,70373
6
- mwx/images.py,sha256=mrnUYH12I3XLVSZcEXlpVltX0XMxufbl2yRvDIQJZqc,49957
3
+ mwx/controls.py,sha256=mNSDNuIB6BPZxgd2lZXHBFQz7QaIBLy6bZSrD4dp0LI,48161
4
+ mwx/framework.py,sha256=ygT0sB2hCEDB4ObmJCBYka7pWJrGpINmJ3zqopyleWk,75669
5
+ mwx/graphman.py,sha256=OMO2HQGfeCCGON8MwabmhLYsA-YHKueKaepsJkTDP0c,70489
6
+ mwx/images.py,sha256=gyvqW4TLWdJMKmsaWiPiV_PuHJM1GbHgeELERLwGzg8,45291
7
7
  mwx/matplot2.py,sha256=nA7RLW1tf5kQfrenFnrAF900DbrpOUldc3SGaJgJKi0,32794
8
8
  mwx/matplot2g.py,sha256=faKpuBdp4H_g-HKfRdxV17AwHtXcfRi2F0myE3cjM04,65393
9
9
  mwx/matplot2lg.py,sha256=gI_L_GofQrg5TIgZFMgYu8-7IRoe6VCRG3Ub35ChSpQ,27177
10
10
  mwx/mgplt.py,sha256=ITzxA97yDwr_35BUk5OqnyskSuKVDbpf2AQCKY1jHTI,5671
11
- mwx/nutshell.py,sha256=mGWw2biIKyunTMyrRbLHNdmFLpxVCIP5UTsaeS2m4gw,136594
11
+ mwx/nutshell.py,sha256=ENxoeqSfVaogh2dz43fk3MQaCePKyoz1YzucwiCojxI,137070
12
12
  mwx/utilus.py,sha256=Uwj6vbNUUztwOswPG75xtsT2y_PZqh3QiJraxmA9iT0,37401
13
13
  mwx/wxmon.py,sha256=6es-jVz9Ht7vZnG7VBJcaNYLHY0PnZtij60SXcZRTeY,12727
14
14
  mwx/wxpdb.py,sha256=lLowkkAgMhPFHAfklD7wZHq0qbSMjRxnBFtSajmVgME,19133
15
15
  mwx/wxwil.py,sha256=zP1-5Fpi1wpDQU977229zIH6QRuSkkyfuAlNKWjGoGg,5588
16
- mwx/wxwit.py,sha256=7jR7WPu0-ZxTA6F_SQc7ZjlR9mNO21GFfriTZqV6Ly0,7344
16
+ mwx/wxwit.py,sha256=yU6XeCCWRBP7CLmpphjT072PfXAL30DNaxoChDX2p0I,7322
17
17
  mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
18
18
  mwx/plugins/ffmpeg_view.py,sha256=vUYNybIJsF1JGkDzjBgDyBQvDh8e1oKHlEMY5Fwc8L4,9399
19
- mwx/plugins/fft_view.py,sha256=evj2kCe6N10JQczW8IajgLVrUWOihQaHQ2xiBzAsAl4,2675
20
- mwx/plugins/frame_listview.py,sha256=fY27r_8ttf2hi-T0CPgY_LGbH9xKkQmSIqgaALMyVCM,10112
19
+ mwx/plugins/fft_view.py,sha256=HcnBr-y_yFdSfASPRzMLANta4SwSDShd65QWnCU3XhM,2665
20
+ mwx/plugins/frame_listview.py,sha256=RaYOj-YKrpLqhT8TkBRDX1TQnSPv90V185j8OjrWJTs,10108
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.95.3.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
- mwxlib-0.95.3.dist-info/METADATA,sha256=zRgIwaO-S04HK4GufhqvHET5KYJTKeyIfct8i36pHXw,1925
26
- mwxlib-0.95.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
27
- mwxlib-0.95.3.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
- mwxlib-0.95.3.dist-info/RECORD,,
24
+ mwxlib-0.95.5.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
+ mwxlib-0.95.5.dist-info/METADATA,sha256=VSx9T74u5-4ID0njjolKRXbZSsbYe_UP8HQ9AzCfTQA,1925
26
+ mwxlib-0.95.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
27
+ mwxlib-0.95.5.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
+ mwxlib-0.95.5.dist-info/RECORD,,