mwxlib 1.4.8__py3-none-any.whl → 1.4.11__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
@@ -139,6 +139,10 @@ class Param:
139
139
  for knob in self.knobs:
140
140
  knob.update_ctrl(None)
141
141
  return
142
+ elif v == self.__value:
143
+ for knob in self.knobs:
144
+ knob.update_ctrl()
145
+ return
142
146
 
143
147
  ## If the value is out of range, it will be modified.
144
148
  valid = (self.min <= v <= self.max)
@@ -851,7 +855,7 @@ class Icon(wx.Bitmap):
851
855
  If the key is empty it returns a transparent bitmap, otherwise NullBitmap.
852
856
 
853
857
  Note:
854
- A null (0-shaped) bitmap fails with AssertionError from 4.1.1
858
+ A null (0-shaped) bitmap fails with AssertionError from wx ver 4.1.1.
855
859
  """
856
860
  provided_arts = {
857
861
  'cut' : wx.ART_CUT,
@@ -919,7 +923,7 @@ class Icon(wx.Bitmap):
919
923
  ## Note: The result could be a zero-shaped bitmap.
920
924
  return bmp
921
925
  elif key == '':
922
- ## Note: A zero-shaped bitmap fails with AssertionError since 4.1.1
926
+ ## Note: A zero-shaped bitmap fails with AssertionError since wx ver 4.1.1.
923
927
  bmp = wx.Bitmap(size)
924
928
  with wx.MemoryDC(bmp) as dc:
925
929
  dc.SetBackground(wx.Brush('black'))
mwx/framework.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #! python3
2
2
  """mwxlib framework.
3
3
  """
4
- __version__ = "1.4.8"
4
+ __version__ = "1.4.11"
5
5
  __author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
6
6
 
7
7
  from contextlib import contextmanager
@@ -290,7 +290,7 @@ class KeyCtrlInterfaceMixin:
290
290
  evt.Skip()
291
291
  post_command_hook.__name__ = str('exit')
292
292
 
293
- def define_key(self, keymap, action=None, *args, **kwargs):
293
+ def define_key(self, keymap, action=None, /, *args, **kwargs):
294
294
  """Define [map key (pressed)] action.
295
295
 
296
296
  If no action, it invalidates the key and returns @decor(binder).
@@ -1594,7 +1594,7 @@ class ShellFrame(MiniFrame):
1594
1594
 
1595
1595
  ## Modify the floating position of the pane when displayed.
1596
1596
  ## Note: This is a known bug in wxWidgets 3.17 -- 3.20,
1597
- ## and will be fixed in wxPython 4.2.1.
1597
+ ## and will be fixed in wx ver 4.2.1.
1598
1598
  if wx.Display.GetFromWindow(pane.window) == -1:
1599
1599
  pane.floating_pos = wx.GetMousePosition()
1600
1600
 
mwx/graphman.py CHANGED
@@ -6,7 +6,6 @@ from importlib import reload, import_module
6
6
  from contextlib import contextmanager
7
7
  from bdb import BdbQuit
8
8
  from pprint import pformat
9
- from subprocess import Popen
10
9
  import threading
11
10
  import traceback
12
11
  import inspect
@@ -257,7 +256,6 @@ class LayerInterface(CtrlInterface):
257
256
  caption = True
258
257
  category = None
259
258
  dockable = True
260
- editable = True # deprecated
261
259
  reloadable = True
262
260
  unloadable = True
263
261
 
@@ -381,10 +379,6 @@ class LayerInterface(CtrlInterface):
381
379
  lambda v: reset_params(v, checked_only=wx.GetKeyState(wx.WXK_SHIFT)),
382
380
  lambda v: v.Enable(bool(self.parameters))),
383
381
  (),
384
- ## (wx.ID_EDIT, "&Edit module", "Edit module", Icon('pen'),
385
- ## lambda v: self.parent.edit_plug(self.__module__),
386
- ## lambda v: v.Enable(self.editable)),
387
- ##
388
382
  (mwx.ID_(201), "&Reload module", "Reload module", Icon('load'),
389
383
  lambda v: self.parent.reload_plug(self.__module__),
390
384
  lambda v: v.Enable(self.reloadable
@@ -980,7 +974,7 @@ class Frame(mwx.Frame):
980
974
 
981
975
  ## Modify the floating position of the pane when displayed.
982
976
  ## Note: This is a known bug in wxWidgets 3.17 -- 3.20,
983
- ## and will be fixed in wxPython 4.2.1.
977
+ ## and will be fixed in wx ver 4.2.1.
984
978
  if wx.Display.GetFromWindow(pane.window) == -1:
985
979
  pane.floating_pos = wx.GetMousePosition()
986
980
 
@@ -1336,14 +1330,6 @@ class Frame(mwx.Frame):
1336
1330
  if shell.target is plug:
1337
1331
  shell.handler('shell_activated', shell)
1338
1332
 
1339
- ## Script editor for plugins (external call)
1340
- ## EDITOR = "notepad"
1341
- ##
1342
- ## @ignore(ResourceWarning)
1343
- ## def edit_plug(self, name):
1344
- ## plug = self.get_plug(name)
1345
- ## Popen([self.EDITOR, inspect.getmodule(plug).__file__])
1346
-
1347
1333
  def inspect_plug(self, name):
1348
1334
  """Dive into the process to inspect plugs in the shell.
1349
1335
  """
mwx/matplot2.py CHANGED
@@ -178,12 +178,10 @@ class MatplotPanel(wx.Panel):
178
178
  'axes_enter' : [ None, ],
179
179
  'axes_leave' : [ None, ],
180
180
  'home pressed' : [ None, self.OnHomePosition ],
181
- 'backspace pressed' : [ None, self.OnBackPosition ],
182
- 'M-backspace pressed' : [ None, self.OnForwardPosition ],
181
+ 'left pressed' : [ None, self.OnBackPosition ],
182
+ 'right pressed' : [ None, self.OnForwardPosition ],
183
183
  'Xbutton1 pressed' : [ None, self.OnBackPosition ],
184
184
  'Xbutton2 pressed' : [ None, self.OnForwardPosition ],
185
- 'M-p pressed' : [ None, self.OnBackPosition ],
186
- 'M-n pressed' : [ None, self.OnForwardPosition ],
187
185
  },
188
186
  NORMAL : {
189
187
  'art_picked' : (NORMAL, ),
mwx/matplot2g.py CHANGED
@@ -419,6 +419,8 @@ class GraphPlot(MatplotPanel):
419
419
  'M-down pressed' : [ None, self.OnPageDown ],
420
420
  'pageup pressed' : [ None, self.OnPageUp ],
421
421
  'pagedown pressed' : [ None, self.OnPageDown ],
422
+ 'home pressed' : [ None, _F(self.select, 0) ],
423
+ 'end pressed' : [ None, _F(self.select, -1) ],
422
424
  'M-a pressed' : [ None, _F(self.fit_to_canvas) ],
423
425
  'C-a pressed' : [ None, _F(self.fit_to_axes) ],
424
426
  'C-i pressed' : [ None, _F(self.invert_cmap) ],
@@ -681,7 +683,7 @@ class GraphPlot(MatplotPanel):
681
683
  if j != self.__index and self.__index is not None:
682
684
  self.handler('frame_hidden', self.frame)
683
685
 
684
- if j is not None:
686
+ if j is not None and self.__Arts:
685
687
  art = self.__Arts[j]
686
688
  art.set_visible(1)
687
689
  self.__index = j % len(self)
@@ -692,7 +694,6 @@ class GraphPlot(MatplotPanel):
692
694
  self.draw()
693
695
  self.writeln()
694
696
  self.trace_point(*self.selector)
695
-
696
697
  return self.frame
697
698
 
698
699
  def __iter__(self):
mwx/nutshell.py CHANGED
@@ -138,7 +138,7 @@ def skip(evt):
138
138
  evt.Skip()
139
139
 
140
140
 
141
- def can_edit(f):
141
+ def editable(f):
142
142
  @wraps(f)
143
143
  def _f(self, *v, **kw):
144
144
  if self.CanEdit():
@@ -404,6 +404,7 @@ class AutoCompInterfaceMixin:
404
404
  try:
405
405
  text, sep, hint = self._get_words_hint()
406
406
  obj = self.eval(text)
407
+ ## dir = introspect.getAttributeNames @TODO in wx ver 4.2.3
407
408
 
408
409
  P = re.compile(hint)
409
410
  p = re.compile(hint, re.I)
@@ -431,6 +432,7 @@ class AutoCompInterfaceMixin:
431
432
  try:
432
433
  text, sep, hint = self._get_words_hint()
433
434
  obj = self.eval(text)
435
+ ## dir = introspect.getAttributeNames @TODO in wx ver 4.2.3.
434
436
 
435
437
  P = re.compile(hint)
436
438
  p = re.compile(hint, re.I)
@@ -498,8 +500,10 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
498
500
  'C-S-f pressed' : (0, _F(self.set_mark)), # overrides mark
499
501
  'C-space pressed' : (0, _F(self.set_mark)),
500
502
  'C-S-space pressed' : (0, _F(self.set_pointer)),
501
- 'C-backspace pressed' : (0, skip),
503
+ 'C-backspace pressed' : (0, _F(self.backward_kill_word)),
502
504
  'S-backspace pressed' : (0, _F(self.backward_kill_line)),
505
+ 'C-delete pressed' : (0, _F(self.kill_word)),
506
+ 'S-delete pressed' : (0, _F(self.kill_line)),
503
507
  'C-tab pressed' : (0, _F(self.insert_space_like_tab)),
504
508
  'C-S-tab pressed' : (0, _F(self.delete_backward_space_like_tab)),
505
509
  'tab pressed' : (0, self.on_indent_line),
@@ -564,7 +568,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
564
568
  self.AutoCompSetMaxHeight(10)
565
569
 
566
570
  ## To prevent @filling crash (Never access to DropTarget)
567
- ## [BUG 4.1.1] Don't allow DnD of text, file, whatever.
571
+ ## [BUG ver 4.1.1] Don't allow DnD of text, file, whatever.
568
572
  ## self.SetDropTarget(None)
569
573
 
570
574
  self.Bind(stc.EVT_STC_START_DRAG, self.OnDrag)
@@ -970,7 +974,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
970
974
  else:
971
975
  self.py_outdent_line()
972
976
 
973
- @can_edit
977
+ @editable
974
978
  def py_indent_line(self):
975
979
  """Indent the current line."""
976
980
  text = self.line_at_caret # w/ no-prompt
@@ -982,7 +986,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
982
986
  self.Replace(self.bol, p, ' '*indent)
983
987
  self.goto_char(self.bol + indent + offset)
984
988
 
985
- @can_edit
989
+ @editable
986
990
  def py_outdent_line(self):
987
991
  """Outdent the current line."""
988
992
  text = self.line_at_caret # w/ no-prompt
@@ -1006,7 +1010,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1006
1010
 
1007
1011
  def py_electric_indent(self):
1008
1012
  """Calculate indent spaces for the following line."""
1009
- ## [BUG 4.2.0] The last char is replaced with b'\x00'.
1013
+ ## [BUG ver 4.2.0] The last char is replaced with b'\x00'.
1010
1014
  ## text, lp = self.CurLineRaw
1011
1015
  ## return self.py_calc_indentation(text[:lp].decode())
1012
1016
  text, lp = self.CurLine
@@ -1605,7 +1609,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1605
1609
  ## --------------------------------
1606
1610
  comment_prefix = "## "
1607
1611
 
1608
- @can_edit
1612
+ @editable
1609
1613
  def comment_out_selection(self, from_=None, to_=None):
1610
1614
  """Comment out the selected text."""
1611
1615
  if from_ is not None: self.anchor = from_
@@ -1619,7 +1623,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1619
1623
  text = text[:-len(prefix)]
1620
1624
  self.ReplaceSelection(text)
1621
1625
 
1622
- @can_edit
1626
+ @editable
1623
1627
  def uncomment_selection(self, from_=None, to_=None):
1624
1628
  """Uncomment the selected text."""
1625
1629
  if from_ is not None: self.anchor = from_
@@ -1629,7 +1633,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1629
1633
  if text != self.SelectedText:
1630
1634
  self.ReplaceSelection(text)
1631
1635
 
1632
- @can_edit
1636
+ @editable
1633
1637
  def comment_out_line(self):
1634
1638
  if self.SelectedText:
1635
1639
  self.comment_out_selection()
@@ -1645,7 +1649,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1645
1649
  self.comment_out_selection(self.cpos, self.eol)
1646
1650
  self.LineDown()
1647
1651
 
1648
- @can_edit
1652
+ @editable
1649
1653
  def uncomment_line(self):
1650
1654
  if self.SelectedText:
1651
1655
  self.uncomment_selection()
@@ -1654,35 +1658,49 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1654
1658
  self.uncomment_selection(self.cpos, self.eol)
1655
1659
  self.LineDown()
1656
1660
 
1657
- @can_edit
1661
+ @editable
1658
1662
  def eat_white_forward(self):
1659
1663
  p = self.cpos
1660
1664
  self.skip_chars_forward(' \t')
1661
1665
  self.Replace(p, self.cpos, '')
1662
1666
 
1663
- @can_edit
1667
+ @editable
1664
1668
  def eat_white_backward(self):
1665
1669
  p = self.cpos
1666
1670
  self.skip_chars_backward(' \t')
1667
1671
  self.Replace(max(self.cpos, self.bol), p, '')
1668
1672
 
1669
- @can_edit
1673
+ @editable
1674
+ def kill_word(self):
1675
+ if not self.SelectedText:
1676
+ self.WordRightEndExtend()
1677
+ self.ReplaceSelection('')
1678
+
1679
+ @editable
1680
+ def backward_kill_word(self):
1681
+ if not self.SelectedText:
1682
+ self.WordLeftExtend()
1683
+ self.ReplaceSelection('')
1684
+
1685
+ @editable
1670
1686
  def kill_line(self):
1671
- p = self.eol
1672
- if p == self.cpos: # caret at end of line
1673
- if self.get_char(p) == '\r': p += 1
1674
- if self.get_char(p) == '\n': p += 1
1675
- self.Replace(self.cpos, p, '')
1687
+ if not self.SelectedText:
1688
+ if self.cpos == self.eol:
1689
+ self.WordRightEndExtend() # Select cr/lf
1690
+ else:
1691
+ self.cpos = self.eol
1692
+ self.ReplaceSelection('')
1676
1693
 
1677
- @can_edit
1694
+ @editable
1678
1695
  def backward_kill_line(self):
1679
- p = self.bol
1680
- if p == self.cpos > 0: # caret at beginning of line
1681
- if self.get_char(p-1) == '\n': p -= 1
1682
- if self.get_char(p-1) == '\r': p -= 1
1683
- self.Replace(p, self.cpos, '')
1696
+ if not self.SelectedText:
1697
+ if self.cpos == self.bol:
1698
+ self.WordLeftExtend() # Select cr/lf
1699
+ else:
1700
+ self.cpos = self.bol
1701
+ self.ReplaceSelection('')
1684
1702
 
1685
- @can_edit
1703
+ @editable
1686
1704
  def insert_space_like_tab(self):
1687
1705
  """Insert half-width spaces forward as if feeling like [tab].
1688
1706
  タブの気持ちになって半角スペースを入力する
@@ -1691,7 +1709,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
1691
1709
  _text, lp = self.CurLine
1692
1710
  self.WriteText(' ' * (4 - lp % 4))
1693
1711
 
1694
- @can_edit
1712
+ @editable
1695
1713
  def delete_backward_space_like_tab(self):
1696
1714
  """Delete half-width spaces backward as if feeling like [S-tab].
1697
1715
  シフト+タブの気持ちになって半角スペースを消す
@@ -1833,7 +1851,7 @@ class Buffer(EditorInterface, EditWindow):
1833
1851
  ## *do not* clear autocomp, so that the event can skip to AutoComp properly.
1834
1852
  if self.CanEdit():
1835
1853
  with self.off_undocollection():
1836
- self.ReplaceSelection("")
1854
+ self.ReplaceSelection('')
1837
1855
  self.message("")
1838
1856
 
1839
1857
  def clear_autocomp(evt):
@@ -1874,6 +1892,8 @@ class Buffer(EditorInterface, EditWindow):
1874
1892
  'escape pressed' : (-1, self.on_enter_escmap),
1875
1893
  'C-h pressed' : (0, self.call_helpTip),
1876
1894
  '. pressed' : (2, self.OnEnterDot),
1895
+ 'C-. pressed' : (2, self.call_word_autocomp),
1896
+ 'C-/ pressed' : (3, self.call_apropos_autocomp),
1877
1897
  'M-. pressed' : (2, self.call_word_autocomp),
1878
1898
  'M-/ pressed' : (3, self.call_apropos_autocomp),
1879
1899
  },
@@ -1967,7 +1987,7 @@ class Buffer(EditorInterface, EditWindow):
1967
1987
  return
1968
1988
 
1969
1989
  pos = evt.Position
1970
- self.goto_char(pos) # Clear selection
1990
+ self.goto_char(pos)
1971
1991
  i = 2
1972
1992
  if self.IndicatorValueAt(i, pos): # [C-indic click]
1973
1993
  p = self.IndicatorStart(i, pos)
@@ -2657,14 +2677,14 @@ class Nautilus(EditorInterface, Shell):
2657
2677
  C-up : [0] retrieve previous history
2658
2678
  C-down : [0] retrieve next history
2659
2679
  C-j : [0] tooltip of eval (for the selected or focused word)
2660
- C-h, M-h : [0] calltip of help (for the selected or focused func)
2680
+ C-h M-h : [0] calltip of help (for the selected or focused func)
2661
2681
  TAB : [1] history-comp
2662
2682
  M-p : [1] retrieve previous history in history-comp mode
2663
2683
  M-n : [1] retrieve next history in history-comp mode
2664
- M-. : [2] word-comp
2665
- M-/ : [3] apropos-comp
2666
- M-, : [4] text-comp
2667
- M-m : [5] module-comp
2684
+ M-. C-. : [2] word-comp
2685
+ M-/ C-/ : [3] apropos-comp
2686
+ M-, C-, : [4] text-comp
2687
+ M-m C-m : [5] module-comp
2668
2688
 
2669
2689
  Autocomps are incremental when pressed any alnums,
2670
2690
  and decremental when backspace.
@@ -2784,7 +2804,7 @@ class Nautilus(EditorInterface, Shell):
2784
2804
  ## *do not* clear autocomp, so that the event can skip to AutoComp properly.
2785
2805
  if self.CanEdit():
2786
2806
  with self.off_undocollection():
2787
- self.ReplaceSelection("")
2807
+ self.ReplaceSelection('')
2788
2808
  self.message("")
2789
2809
 
2790
2810
  def clear_autocomp(evt):
@@ -2827,8 +2847,6 @@ class Nautilus(EditorInterface, Shell):
2827
2847
  'escape pressed' : (-1, self.on_enter_escmap),
2828
2848
  'space pressed' : (0, self.OnSpace),
2829
2849
  '*backspace pressed' : (0, self.OnBackspace),
2830
- 'C-backspace pressed' : (0, _F(self.backward_kill_word)),
2831
- 'S-backspace pressed' : (0, _F(self.backward_kill_line)),
2832
2850
  'enter pressed' : (0, self.OnEnter),
2833
2851
  'C-enter pressed' : (0, _F(self.insertLineBreak)),
2834
2852
  'C-S-enter pressed' : (0, _F(self.insertLineBreak)),
@@ -2853,6 +2871,10 @@ class Nautilus(EditorInterface, Shell):
2853
2871
  'tab pressed' : (1, self.call_history_comp),
2854
2872
  'M-p pressed' : (1, self.call_history_comp),
2855
2873
  'M-n pressed' : (1, self.call_history_comp),
2874
+ 'C-. pressed' : (2, self.call_word_autocomp),
2875
+ 'C-/ pressed' : (3, self.call_apropos_autocomp),
2876
+ 'C-, pressed' : (4, self.call_text_autocomp),
2877
+ 'C-m pressed' : (5, self.call_module_autocomp),
2856
2878
  'M-. pressed' : (2, self.call_word_autocomp),
2857
2879
  'M-/ pressed' : (3, self.call_apropos_autocomp),
2858
2880
  'M-, pressed' : (4, self.call_text_autocomp),
@@ -3059,29 +3081,36 @@ class Nautilus(EditorInterface, Shell):
3059
3081
  return
3060
3082
  evt.Skip()
3061
3083
 
3062
- @can_edit
3063
- def backward_kill_line(self):
3064
- p = max(self.bol, self.bolc) # for debugger mode: bol <= bolc
3065
- text, lp = self.CurLine
3066
- if text[:lp] == sys.ps2:
3067
- self.Replace(p - lp, p, '') # eats ps2:prompt
3068
- return
3069
- if p == self.cpos > 0: # caret at beginning of line
3070
- if self.get_char(p-1) == '\n': p -= 1
3071
- if self.get_char(p-1) == '\r': p -= 1
3072
- self.Replace(p, self.cpos, '')
3084
+ @editable
3085
+ def backward_kill_word(self): # (override)
3086
+ if not self.SelectedText:
3087
+ text, lp = self.CurLine
3088
+ if text[:lp] == sys.ps2:
3089
+ self.cpos -= lp # Select ps2:prompt
3090
+ self.WordLeftExtend() # Select cr/lf
3091
+ else:
3092
+ q = max(self.bol, self.bolc) # for debugger mode: bol <= bolc
3093
+ self.WordLeftExtend()
3094
+ if self.cpos < q:
3095
+ self.cpos = q # Don't skip back prompt
3096
+ self.ReplaceSelection('')
3073
3097
 
3074
- @can_edit
3075
- def backward_kill_word(self):
3076
- p = self.cpos
3077
- text, lp = self.CurLine
3078
- if text[:lp] == sys.ps2:
3079
- self.goto_char(p - lp) # skips ps2:prompt
3080
- self.WordLeft()
3081
- q = max(self.bol, self.bolc) # for debugger mode: bol <= bolc
3082
- if self.cpos < q:
3083
- self.goto_char(q) # Don't skip back prompt
3084
- self.Replace(self.cpos, p, '')
3098
+ @editable
3099
+ def backward_kill_line(self): # (override)
3100
+ if not self.SelectedText:
3101
+ text, lp = self.CurLine
3102
+ if text[:lp] == sys.ps2:
3103
+ self.cpos -= lp # Select ps2:prompt
3104
+ self.WordLeftExtend() # Select cr/lf
3105
+ else:
3106
+ q = max(self.bol, self.bolc) # for debugger mode: bol <= bolc
3107
+ if self.cpos <= self.bolc:
3108
+ return
3109
+ elif self.cpos > q:
3110
+ self.cpos = q
3111
+ else:
3112
+ self.WordLeftExtend() # Select cr/lf
3113
+ self.ReplaceSelection('')
3085
3114
 
3086
3115
  def OnEnter(self, evt):
3087
3116
  """Called when enter pressed."""
@@ -3363,7 +3392,7 @@ class Nautilus(EditorInterface, Shell):
3363
3392
 
3364
3393
  ## cf. getCommand() -> caret-line that starts with a prompt
3365
3394
  ## cf. getMultilineCommand() -> caret-multi-line that starts with a prompt
3366
- ## [BUG 4.1.1] Don't use for current prompt --> Fixed in 4.2.0.
3395
+ ## [BUG ver 4.1.1] Don't use for current prompt --> Fixed in wx ver 4.2.0.
3367
3396
 
3368
3397
  def getMultilineCommand(self, rstrip=True):
3369
3398
  """Extract a multi-line command which starts with a prompt.
@@ -3466,7 +3495,7 @@ class Nautilus(EditorInterface, Shell):
3466
3495
 
3467
3496
  (override) Remove ps1 and ps2 from the multi-line command to paste.
3468
3497
  Add offset in paste-rectangle mode.
3469
- Don't relplace the last crlf to ps.
3498
+ Don't relplace the last cr/lf to ps.
3470
3499
  """
3471
3500
  if self.CanPaste() and wx.TheClipboard.Open():
3472
3501
  data = wx.TextDataObject()
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mwxlib
3
- Version: 1.4.8
3
+ Version: 1.4.11
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
7
7
  Author-email: komoto@jeol.co.jp
8
8
  License: MIT
9
- Classifier: License :: OSI Approved :: MIT License
10
9
  Classifier: Programming Language :: Python :: 3
11
10
  Classifier: Programming Language :: Python :: 3.8
12
11
  Classifier: Programming Language :: Python :: 3.9
@@ -1,14 +1,14 @@
1
1
  mwx/__init__.py,sha256=pS7ZG8QKRypiFFiaWAq_opBB6I_1viZ0zUMk2TbjzE0,667
2
2
  mwx/bookshelf.py,sha256=MXjrm_ryRGHvOFKu8wb10qz_oka70xW2yFbYjBMYfns,8140
3
- mwx/controls.py,sha256=_YYcSn2X4sgWOfHiOtBoPCMWtr9ZCfd5QM0O84cPtio,49421
4
- mwx/framework.py,sha256=Qxxi5ximgB4l-I2cWTMTKYFRD0j-uXKP0M5FVj3-_W8,76830
5
- mwx/graphman.py,sha256=anyTeJUTuqL1JnPdw7eJA5spbZQiCxBDCkd8GuUX8eI,70601
3
+ mwx/controls.py,sha256=1zLWlPy0RTLHYlvxjz3ulDoTx3-uPUD3TqK7dGRA4wg,49563
4
+ mwx/framework.py,sha256=1p24_snigDnU-9CwjQJdQeEsS44z27IwvC67reS6zX8,76832
5
+ mwx/graphman.py,sha256=4hS3zBH1Ob9CcsWBsnPo5Tw6RTiE0vKjKpcjeZ5RSrU,70049
6
6
  mwx/images.py,sha256=Kkfy9QI_hMtwShSjUS4-ZpC_EkVuah_XhpBOR4wAKkM,49792
7
- mwx/matplot2.py,sha256=Htwegq6N5G7oKSRCuajik5Dixd93i8PKVbkL7Azy99M,33150
8
- mwx/matplot2g.py,sha256=4BBHlvfhg1796hu1nTCsTA82YRkZhwUnfcHCBf5ZGO8,65083
7
+ mwx/matplot2.py,sha256=A2PbHI5UcuAvINfnm6GG7CXpbexhzvtyVLQOwcbRqnc,33015
8
+ mwx/matplot2g.py,sha256=HTSh0vd06-HhiwEZbhwFD6HGjfnwGQ7H6QQzTucOx3c,65220
9
9
  mwx/matplot2lg.py,sha256=cb0EZXivccDQu4oFj5ddSUF9pEE4f5UuFJJK2ELItww,27404
10
10
  mwx/mgplt.py,sha256=8mXbHpCmm7lz3XbAxOg7IVC7DaSGBEby1UfTlMl9kjk,5604
11
- mwx/nutshell.py,sha256=_qUA89Xu7PZKbDO5XjMSfXfwj9MiNOGJjWi-pdrfYAA,141900
11
+ mwx/nutshell.py,sha256=aZSXcWMsVF_til2ZCASwGwK1Jqq3qfGFJ6KJjK7TX6A,143091
12
12
  mwx/testsuite.py,sha256=Zk75onPSEn2tf0swS3l-vIn6yTXGB7allIyvJsPHj20,1229
13
13
  mwx/utilus.py,sha256=ObXYWsDVn5DmjvwVQgP2HGAhrdxlDrwL7g9pMCDbU7U,38127
14
14
  mwx/wxmon.py,sha256=yzWqrbY6LzpfRwQeytYUeqFhFuLVm_XEvrVAL_k0HBQ,12756
@@ -22,7 +22,7 @@ mwx/plugins/frame_listview.py,sha256=gowjQ-ARNonMkDSXkQgPKq4U9YBJ-vQ0jK2krBVOdCs
22
22
  mwx/plugins/line_profile.py,sha256=zzm6_7lnAnNepLbh07ordp3nRWDFQJtu719ZVjrVf8s,819
23
23
  mwx/py/__init__.py,sha256=xykgfOytOwNuvXsfkLoumFZSTN-iBsHOjczYXngjmUE,12
24
24
  mwx/py/filling.py,sha256=fumUG1F5M9TL-Dfqni4G85uk7TmvnUunTbdcPDV0vfo,16857
25
- mwxlib-1.4.8.dist-info/METADATA,sha256=6dosmSNJ_AVOVaurY8hLbmyxKhMIiCn7rzWdbQmP0zU,7433
26
- mwxlib-1.4.8.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
27
- mwxlib-1.4.8.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
- mwxlib-1.4.8.dist-info/RECORD,,
25
+ mwxlib-1.4.11.dist-info/METADATA,sha256=IZXZTnCIPRB-B1eTwiGW6uD5IYtlmaNzMdgOs89Qpko,7382
26
+ mwxlib-1.4.11.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
27
+ mwxlib-1.4.11.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
28
+ mwxlib-1.4.11.dist-info/RECORD,,