mwxlib 0.95.4__py3-none-any.whl → 0.95.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
@@ -896,6 +896,18 @@ 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=(16,16), radius=4):
901
+ bmp = wx.Bitmap(size)
902
+ with wx.MemoryDC(bmp) as dc:
903
+ dc.SetBackground(wx.Brush('black'))
904
+ dc.Clear()
905
+ dc.SetPen(wx.Pen(ec, style=wx.PENSTYLE_SOLID))
906
+ dc.SetBrush(wx.Brush(colour, style=wx.BRUSHSTYLE_SOLID))
907
+ dc.DrawCircle(size[0]//2, size[1]//2, radius)
908
+ bmp.SetMaskColour('black')
909
+ return bmp
910
+
899
911
  @staticmethod
900
912
  def iconify(icon, w, h):
901
913
  ## if wx.VERSION >= (4,1,0):
@@ -914,46 +926,48 @@ class Icon(wx.Bitmap):
914
926
  Icon2 = Icon # for backward compatibility
915
927
 
916
928
 
917
- def _getBitmap1(key, size=None):
929
+ def _getBitmap1(key, size=(16,16)):
930
+ if isinstance(key, wx.Bitmap):
931
+ if key.Size != size:
932
+ key = (key.ConvertToImage()
933
+ .Scale(*size, wx.IMAGE_QUALITY_NEAREST)
934
+ .ConvertToBitmap())
935
+ return key
918
936
  if key:
919
937
  try:
920
- art = _custom_images.get(key) # None => AttributeError
921
- if not size:
922
- bmp = art.GetBitmap()
923
- else:
924
- bmp = (art.GetImage()
925
- .Scale(*size, wx.IMAGE_QUALITY_NEAREST)
926
- .ConvertToBitmap())
938
+ art = _custom_images.get(key)
939
+ bmp = (art.GetImage()
940
+ .Scale(*size, wx.IMAGE_QUALITY_NEAREST)
941
+ .ConvertToBitmap())
927
942
  except Exception:
928
- art = _provided_arts.get(key) or key
929
- bmp = wx.ArtProvider.GetBitmap(art, wx.ART_OTHER, size or (16,16))
943
+ art = _provided_arts.get(key)
944
+ bmp = wx.ArtProvider.GetBitmap(art or key, wx.ART_OTHER, size)
930
945
  return bmp
931
946
 
932
947
  ## Note: null (0-shaped) bitmap fails with AssertionError from 4.1.1
933
- if key == '':
934
- bmp = wx.Bitmap(size or (16,16))
935
- if 1:
936
- dc = wx.MemoryDC(bmp)
948
+ elif key == '':
949
+ bmp = wx.Bitmap(size)
950
+ with wx.MemoryDC(bmp) as dc:
937
951
  dc.SetBackground(wx.Brush('black'))
938
952
  dc.Clear()
939
- del dc
940
953
  bmp.SetMaskColour('black') # return dummy-sized blank bitmap
941
954
  return bmp
955
+
942
956
  return wx.NullBitmap # The standard wx controls accept this,
943
957
 
944
958
 
945
- def _getBitmap2(back, fore, size=None, subsize=3/4):
946
- if not size:
947
- size = (16,16)
959
+ def _getBitmap2(back, fore, size=(16,16), subsize=3/4):
948
960
  if isinstance(subsize, float):
949
961
  subsize = wx.Size(size) * subsize
950
962
  back = _getBitmap1(back, size)
951
963
  fore = _getBitmap1(fore, subsize)
952
964
  x = size[0] - subsize[0]
953
965
  y = size[1] - subsize[1]
954
- dc = wx.MemoryDC(back)
955
- dc.DrawBitmap(fore, x, y, useMask=True)
956
- del dc
966
+ with wx.MemoryDC(back) as dc:
967
+ ## dc = wx.GCDC(dc)
968
+ ## dc.DrawBitmap(fore, x, y, useMask=True)
969
+ gc = wx.GraphicsContext.Create(dc)
970
+ gc.DrawBitmap(fore, x, y, *subsize)
957
971
  return back
958
972
 
959
973
 
mwx/framework.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #! python3
2
2
  """mwxlib framework.
3
3
  """
4
- __version__ = "0.95.4"
4
+ __version__ = "0.95.6"
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
@@ -1152,10 +1156,6 @@ class ShellFrame(MiniFrame):
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))
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/nutshell.py CHANGED
@@ -539,6 +539,7 @@ class EditorInterface(CtrlInterface):
539
539
  lsty = self.get_style(p-1)
540
540
  rsty = self.get_style(p)
541
541
  if lsty == rsty == 'moji': # inside string
542
+ ## styles = {'moji'}
542
543
  return ''
543
544
  elif lsty == 'suji' or rsty == 'suji':
544
545
  styles = {'suji'}
@@ -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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mwxlib
3
- Version: 0.95.4
3
+ Version: 0.95.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
@@ -1,14 +1,14 @@
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=UMmTHqx85SQPI84alNKx0AMQx9amB4qxj6sypFtIXMs,75655
5
- mwx/graphman.py,sha256=PacQF1Of6oaqw26uFoXaAK9IrwggGRwoJe9uCP5JZ28,70373
3
+ mwx/controls.py,sha256=9nxVBNXcyZjZT4XBtBJfuzRqTB5X5rkZR3pnHPE9WaI,48289
4
+ mwx/framework.py,sha256=bEb_aHtPTFowVMELMmlFvdm2Edmkw8mfPvRQJ907ulQ,75669
5
+ mwx/graphman.py,sha256=OMO2HQGfeCCGON8MwabmhLYsA-YHKueKaepsJkTDP0c,70489
6
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=ENxoeqSfVaogh2dz43fk3MQaCePKyoz1YzucwiCojxI,137070
11
+ mwx/nutshell.py,sha256=xI5o9os0wxgkY5LFz1wztM36l-4nl2j1iAdzJ11BMv0,137104
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
@@ -17,12 +17,12 @@ 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
19
  mwx/plugins/fft_view.py,sha256=HcnBr-y_yFdSfASPRzMLANta4SwSDShd65QWnCU3XhM,2665
20
- mwx/plugins/frame_listview.py,sha256=fY27r_8ttf2hi-T0CPgY_LGbH9xKkQmSIqgaALMyVCM,10112
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.4.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
- mwxlib-0.95.4.dist-info/METADATA,sha256=jkWKBPw5LwejFe36g5StdBMWOdRLw3DQ7-wY3ZMlATA,1925
26
- mwxlib-0.95.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
27
- mwxlib-0.95.4.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
- mwxlib-0.95.4.dist-info/RECORD,,
24
+ mwxlib-0.95.6.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
25
+ mwxlib-0.95.6.dist-info/METADATA,sha256=oWMpii7LOaEx62rOLP7IERjo59bWV0VLVEBt2Ju2xa0,1925
26
+ mwxlib-0.95.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
27
+ mwxlib-0.95.6.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
+ mwxlib-0.95.6.dist-info/RECORD,,