mwxlib 0.81.1__py3-none-any.whl → 0.81.2__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/__init__.py CHANGED
@@ -26,18 +26,6 @@ from .framework import Frame, MiniFrame, ShellFrame
26
26
  ## from .mgplt import Gnuplot
27
27
  ## from .mgplt import GnuplotFrame
28
28
 
29
- from importlib import reload
30
- import contextlib
31
- import wx
32
-
33
-
34
- @contextlib.contextmanager
35
- def app(loop=True):
36
- app = wx.GetApp() or wx.App()
37
- yield app
38
- if loop and not app.GetMainLoop():
39
- app.MainLoop()
40
-
41
29
 
42
30
  def deb(target=None, loop=True, locals=None, **kwargs):
43
31
  """Dive into the process.
@@ -60,6 +48,8 @@ def deb(target=None, loop=True, locals=None, **kwargs):
60
48
  Note:
61
49
  This will execute the startup script $(PYTHONSTARTUP).
62
50
  """
51
+ import wx
52
+
63
53
  quote_unqoute = """
64
54
  Anything one man can imagine, other man can make real.
65
55
  --- Jules Verne (1828--1905)
@@ -68,11 +58,17 @@ def deb(target=None, loop=True, locals=None, **kwargs):
68
58
  "mwx {}".format(__version__) + quote_unqoute)
69
59
  kwargs.setdefault("execStartupScript", True)
70
60
  kwargs.setdefault("ensureClose", True)
71
- with app(loop):
72
- frame = ShellFrame(None, target, **kwargs)
73
- frame.Show()
74
- shell = frame.rootshell
75
- shell.SetFocus()
76
- if locals:
77
- shell.locals.update(locals)
78
- return frame
61
+
62
+ app = wx.GetApp() or wx.App()
63
+ frame = ShellFrame(None, target, **kwargs)
64
+ frame.Show()
65
+ shell = frame.rootshell
66
+ shell.SetFocus()
67
+ if locals:
68
+ shell.locals.update(locals)
69
+ if loop:
70
+ if not app.GetMainLoop():
71
+ app.MainLoop()
72
+ else:
73
+ pass # The mainloop is already running.
74
+ return frame
mwx/framework.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Author: Kazuya O'moto <komoto@jeol.co.jp>
6
6
  """
7
- __version__ = "0.81.1"
7
+ __version__ = "0.81.2"
8
8
  __author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
9
9
 
10
10
  from functools import wraps, partial
@@ -388,9 +388,8 @@ def pack(self, items, orient=wx.HORIZONTAL, style=None, label=None):
388
388
  Args:
389
389
  items : wx objects (with some packing parameters)
390
390
 
391
- - (obj, 1) -> sized with ratio 1 (orient と同方向)
392
- 他に 0 以外を指定しているオブジェクトとエリアを分け合う
393
- - (obj, 1, wx.EXPAND) -> expanded with ratio 1 (orient と垂直方向)
391
+ - (obj, 1) -> sized with ratio 1 (parallel to `orient`)
392
+ - (obj, 1, wx.EXPAND) -> expanded with ratio 1 (perpendicular to `orient`)
394
393
  - (obj, 0, wx.ALIGN_CENTER | wx.LEFT, 4) -> center with 4 pixel at wx.LEFT
395
394
  - ((-1,-1), 1, wx.EXPAND) -> stretched space
396
395
  - (-1,-1) -> padding space
@@ -466,9 +465,9 @@ class Menu(wx.Menu):
466
465
  menu_item.SetBitmaps(*icons)
467
466
  self.Append(menu_item)
468
467
  try:
469
- owner.Bind(wx.EVT_MENU, handlers[0], id=id)
470
- owner.Bind(wx.EVT_UPDATE_UI, handlers[1], id=id)
471
- owner.Bind(wx.EVT_MENU_HIGHLIGHT, handlers[2], id=id)
468
+ owner.Bind(wx.EVT_MENU, handlers[0], menu_item)
469
+ owner.Bind(wx.EVT_UPDATE_UI, handlers[1], menu_item)
470
+ owner.Bind(wx.EVT_MENU_HIGHLIGHT, handlers[2], menu_item)
472
471
  except IndexError:
473
472
  pass
474
473
  else:
@@ -479,8 +478,8 @@ class Menu(wx.Menu):
479
478
  if icons:
480
479
  submenu_item.SetBitmaps(*icons)
481
480
  self.Append(submenu_item)
482
- self.Enable(submenu_item.Id, len(subitems)) # Disable an empty menu
483
- submenu.Id = submenu_item.Id # <- ID_ANY
481
+ self.Enable(submenu_item.Id, len(subitems)) # Disable an empty menu.
482
+ submenu.Id = submenu_item.Id # <- ID_ANY (dummy to check empty sbumenu)
484
483
 
485
484
  @staticmethod
486
485
  def Popup(parent, menu, *args, **kwargs):
@@ -521,14 +520,14 @@ class MenuBar(wx.MenuBar, TreeList):
521
520
  """
522
521
  if self.Parent:
523
522
  menu = self.getmenu(key)
524
- if not menu: # 新規のメニューアイテムを挿入する
525
- self.reset() # リセットして終了
523
+ if not menu:
524
+ self.reset()
526
525
  return
527
526
 
528
527
  for item in menu.MenuItems: # delete all items
529
- self.Parent.Unbind(wx.EVT_MENU, id=item.Id)
530
- self.Parent.Unbind(wx.EVT_UPDATE_UI, id=item.Id)
531
- self.Parent.Unbind(wx.EVT_MENU_HIGHLIGHT, id=item.Id)
528
+ self.Parent.Unbind(wx.EVT_MENU, item)
529
+ self.Parent.Unbind(wx.EVT_UPDATE_UI, item)
530
+ self.Parent.Unbind(wx.EVT_MENU_HIGHLIGHT, item)
532
531
  menu.Delete(item)
533
532
 
534
533
  menu2 = Menu(self.Parent, self[key]) # new menu2 to swap menu
@@ -536,7 +535,7 @@ class MenuBar(wx.MenuBar, TreeList):
536
535
  menu.Append(menu2.Remove(item)) # 重複しないようにいったん切り離して追加する
537
536
 
538
537
  if hasattr(menu, 'Id'):
539
- self.Enable(menu.Id, menu.MenuItemCount > 0) # 空のサブメニューは無効にする
538
+ self.Enable(menu.Id, menu.MenuItemCount > 0) # Disable empty submenu.
540
539
 
541
540
  def reset(self):
542
541
  """Recreates menubar if the Parent were attached by SetMenuBar.
@@ -546,16 +545,16 @@ class MenuBar(wx.MenuBar, TreeList):
546
545
  for j in range(self.GetMenuCount()): # remove and del all top-level menu
547
546
  menu = self.Remove(0)
548
547
  for item in menu.MenuItems: # delete all items
549
- self.Parent.Unbind(wx.EVT_MENU, id=item.Id)
550
- self.Parent.Unbind(wx.EVT_UPDATE_UI, id=item.Id)
551
- self.Parent.Unbind(wx.EVT_MENU_HIGHLIGHT, id=item.Id)
548
+ self.Parent.Unbind(wx.EVT_MENU, item)
549
+ self.Parent.Unbind(wx.EVT_UPDATE_UI, item)
550
+ self.Parent.Unbind(wx.EVT_MENU_HIGHLIGHT, item)
552
551
  menu.Destroy()
553
552
 
554
553
  for j, (key, values) in enumerate(self):
555
- menu = Menu(self.Parent, values) # 空のメインメニューでも表示に追加する
554
+ menu = Menu(self.Parent, values)
556
555
  self.Append(menu, key)
557
556
  if not values:
558
- self.EnableTop(j, False) # 空のメインメニューは無効にする
557
+ self.EnableTop(j, False) # Disable empty main menu.
559
558
 
560
559
 
561
560
  class StatusBar(wx.StatusBar):
@@ -1213,8 +1212,7 @@ class ShellFrame(MiniFrame):
1213
1212
  self.Log.default_buffer.SaveFile(self.LOGGING_FILE)
1214
1213
  self.History.default_buffer.SaveFile(self.HISTORY_FILE)
1215
1214
  self.save_session()
1216
- except Exception:
1217
- traceback.print_exc()
1215
+ self.timer.Stop()
1218
1216
  finally:
1219
1217
  self._mgr.UnInit()
1220
1218
  return MiniFrame.Destroy(self)
mwx/graphman.py CHANGED
@@ -1013,7 +1013,7 @@ class Frame(mwx.Frame):
1013
1013
  IsShown = LayerInterface.IsShown
1014
1014
  Show = LayerInterface.Show
1015
1015
 
1016
- ## Implicit (override) precidence
1016
+ ## Implicit (override) precedence
1017
1017
  ## cls.Init / cls.save_session / cls.load_session
1018
1018
 
1019
1019
  _Plugin.__module__ = cls.__module__ = module.__name__
@@ -1036,6 +1036,8 @@ class Frame(mwx.Frame):
1036
1036
  else:
1037
1037
  rootpath = root
1038
1038
 
1039
+ assert isinstance(rootpath, str)
1040
+
1039
1041
  name = os.path.basename(rootpath)
1040
1042
  if name.endswith(".py"):
1041
1043
  name,_ = os.path.splitext(name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mwxlib
3
- Version: 0.81.1
3
+ Version: 0.81.2
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 <komoto@jeol.co.jp>
@@ -1,7 +1,7 @@
1
- mwx/__init__.py,sha256=CxhKHOhig62F8p6GvP5gii-VvQtSjp9yWJpHvC_Kans,2592
1
+ mwx/__init__.py,sha256=132PKNl-qpvV8godY4iAnHcupnmPTWfFx-j7tantnmA,2521
2
2
  mwx/controls.py,sha256=nK98yYgWczs1xKUbCXyM7A2XXl84iOm65c8DRjMrTPI,43034
3
- mwx/framework.py,sha256=H3UMRLaBWAaowMdD5cHFLBevaXDnG-oa0ZXlWgnQHz4,71710
4
- mwx/graphman.py,sha256=XSTsJQF6Ld4NAJU0KW6iJ5AotCOFBD7NsoT8PA700eE,69670
3
+ mwx/framework.py,sha256=rq5mUn4FYYwPhLT405HODh25rpgfhwytan0MnfIo_dk,71410
4
+ mwx/graphman.py,sha256=zXGOxVVWQJxlMl2TNigfCBIhiPAjlgMb8Qn-D1AxN88,69722
5
5
  mwx/images.py,sha256=9e8X7OpJ6Z3fF3ez17P_qk2D1NMO10-lN8TCtulAqT0,46248
6
6
  mwx/matplot2.py,sha256=mzctMUk00m-tvs268PTwdLln7G3NCl6J-5zFzJkfsVI,36004
7
7
  mwx/matplot2g.py,sha256=yfF4r6juclU1I1k41lGb_VwxRmp0ktuD8az-wQ26MsE,67727
@@ -15,8 +15,8 @@ mwx/wxwil.py,sha256=BUfEF0Nc1E-mVC3Vdz6k1E-2s5J0PO6qEzRQ6lfyePI,5246
15
15
  mwx/wxwit.py,sha256=lJX2A26IcSA_MpdTnlV5QYg1PruE47ckk1yL8E_dYiE,7224
16
16
  mwx/py/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  mwx/py/filling.py,sha256=NnQnfUVol-Nz4QYZUKFIyRX-Yxp54m5n54Yxza3Iwho,16655
18
- mwxlib-0.81.1.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
19
- mwxlib-0.81.1.dist-info/METADATA,sha256=5CI5pM40PwctzPT1Itbmx4jlwjQPSi4fXLg0vDTBVBg,1893
20
- mwxlib-0.81.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
21
- mwxlib-0.81.1.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
22
- mwxlib-0.81.1.dist-info/RECORD,,
18
+ mwxlib-0.81.2.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
19
+ mwxlib-0.81.2.dist-info/METADATA,sha256=_7B7dFMBRvG7kIXyhuUBz8Ntv1Ul0tDDK1Qlv3hYc5Y,1893
20
+ mwxlib-0.81.2.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
21
+ mwxlib-0.81.2.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
22
+ mwxlib-0.81.2.dist-info/RECORD,,