mwxlib 1.5.11__py3-none-any.whl → 1.5.13__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 +62 -61
- mwx/framework.py +48 -47
- mwx/graphman.py +63 -57
- mwx/matplot2.py +5 -5
- mwx/matplot2g.py +10 -10
- mwx/matplot2lg.py +6 -6
- mwx/nutshell.py +12 -15
- mwx/py/filling.py +1 -0
- mwx/utilus.py +12 -8
- mwx/wxmon.py +2 -2
- mwx/wxpdb.py +6 -5
- mwx/wxwil.py +2 -2
- mwx/wxwit.py +2 -2
- {mwxlib-1.5.11.dist-info → mwxlib-1.5.13.dist-info}/METADATA +1 -1
- mwxlib-1.5.13.dist-info/RECORD +28 -0
- mwxlib-1.5.11.dist-info/RECORD +0 -28
- {mwxlib-1.5.11.dist-info → mwxlib-1.5.13.dist-info}/WHEEL +0 -0
- {mwxlib-1.5.11.dist-info → mwxlib-1.5.13.dist-info}/top_level.txt +0 -0
mwx/controls.py
CHANGED
|
@@ -26,18 +26,18 @@ class Param:
|
|
|
26
26
|
"""Standard Parameter
|
|
27
27
|
|
|
28
28
|
Args:
|
|
29
|
-
name
|
|
30
|
-
range
|
|
31
|
-
value
|
|
32
|
-
fmt
|
|
33
|
-
|
|
34
|
-
handler
|
|
35
|
-
updater
|
|
36
|
-
checker
|
|
29
|
+
name: label
|
|
30
|
+
range: list of values
|
|
31
|
+
value: std_value (default is None)
|
|
32
|
+
fmt: text formatter or format:str (default is '%g')
|
|
33
|
+
`hex` specifies hexadecimal format
|
|
34
|
+
handler: called when knob is handled.
|
|
35
|
+
updater: called when button is pressed.
|
|
36
|
+
checker: called when tick turns on/off.
|
|
37
37
|
|
|
38
38
|
Attributes:
|
|
39
|
-
knobs
|
|
40
|
-
callback
|
|
39
|
+
knobs: knob list
|
|
40
|
+
callback: single state machine that handles following events
|
|
41
41
|
|
|
42
42
|
- control -> when index is changed by knobs or reset (handler)
|
|
43
43
|
- updated -> when button is pressed (updater)
|
|
@@ -224,18 +224,18 @@ class LParam(Param):
|
|
|
224
224
|
"""Linear Parameter
|
|
225
225
|
|
|
226
226
|
Args:
|
|
227
|
-
name
|
|
228
|
-
range
|
|
229
|
-
value
|
|
230
|
-
fmt
|
|
231
|
-
|
|
232
|
-
handler
|
|
233
|
-
updater
|
|
234
|
-
checker
|
|
227
|
+
name: label
|
|
228
|
+
range: range params [min:max:step]
|
|
229
|
+
value: std_value (default is None)
|
|
230
|
+
fmt: text formatter or format:str (default is '%g')
|
|
231
|
+
`hex` specifies hexadecimal format
|
|
232
|
+
handler: called when knob is handled.
|
|
233
|
+
updater: called when button is pressed.
|
|
234
|
+
checker: called when tick turns on/off.
|
|
235
235
|
|
|
236
236
|
Attributes:
|
|
237
|
-
knobs
|
|
238
|
-
callback
|
|
237
|
+
knobs: knob list
|
|
238
|
+
callback: single state machine that handles following events
|
|
239
239
|
|
|
240
240
|
- control -> when index is changed by knobs or reset (handler)
|
|
241
241
|
- updated -> when button is pressed (updater)
|
|
@@ -295,16 +295,16 @@ class Knob(wx.Panel):
|
|
|
295
295
|
[Mbutton] resets to the std. value if it exists.
|
|
296
296
|
|
|
297
297
|
Args:
|
|
298
|
-
param
|
|
299
|
-
type
|
|
300
|
-
style
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
cw
|
|
305
|
-
lw
|
|
306
|
-
tw
|
|
307
|
-
h
|
|
298
|
+
param: <Param> or <LParam> object
|
|
299
|
+
type: control type (slider[*], [hv]spin, choice, None)
|
|
300
|
+
style: style of label
|
|
301
|
+
None -> static text (default)
|
|
302
|
+
button -> label with flat button
|
|
303
|
+
checkbox -> label with checkbox
|
|
304
|
+
cw: width of control
|
|
305
|
+
lw: width of label
|
|
306
|
+
tw: width of textbox
|
|
307
|
+
h: height of widget (defaults to 22)
|
|
308
308
|
"""
|
|
309
309
|
@property
|
|
310
310
|
def param(self):
|
|
@@ -654,18 +654,19 @@ class KnobCtrlPanel(scrolled.ScrolledPanel):
|
|
|
654
654
|
"""Do layout (cf. Layout).
|
|
655
655
|
|
|
656
656
|
Args:
|
|
657
|
-
items
|
|
658
|
-
title
|
|
659
|
-
row
|
|
660
|
-
expand
|
|
661
|
-
(
|
|
662
|
-
(
|
|
663
|
-
|
|
657
|
+
items: list of Params, wx.Objects, tuple of sizing, or None
|
|
658
|
+
title: box header string (default is None - no box)
|
|
659
|
+
row: number of row to arange widgets
|
|
660
|
+
expand: expansion flag
|
|
661
|
+
- (0) fixed size
|
|
662
|
+
- (1) to expand horizontally
|
|
663
|
+
- (2) to expand horizontally and vertically
|
|
664
|
+
border: size of outline border
|
|
664
665
|
hspacing: horizontal spacing among packed objs inside the group
|
|
665
666
|
vspacing: vertical spacing among packed objs inside the group
|
|
666
|
-
show
|
|
667
|
-
visible
|
|
668
|
-
align
|
|
667
|
+
show: Fold or unfold the boxed group.
|
|
668
|
+
visible: Hide the boxed group if False.
|
|
669
|
+
align: alignment flag (wx.ALIGN_*) default is ALIGN_LEFT
|
|
669
670
|
**kwargs: extra keyword arguments given for Knob
|
|
670
671
|
"""
|
|
671
672
|
objs = [Knob(self, c, **kwargs) if isinstance(c, Param)
|
|
@@ -999,9 +1000,9 @@ class ClassicButton(wx.Button):
|
|
|
999
1000
|
"""Classic button
|
|
1000
1001
|
|
|
1001
1002
|
Args:
|
|
1002
|
-
label
|
|
1003
|
-
handler
|
|
1004
|
-
icon
|
|
1003
|
+
label: button label
|
|
1004
|
+
handler: event handler when the button is pressed
|
|
1005
|
+
icon: key:str or bitmap for button icon
|
|
1005
1006
|
**kwargs: keywords for wx.lib.platebtn.PlateButton
|
|
1006
1007
|
"""
|
|
1007
1008
|
def __init__(self, parent, label='', handler=None, icon=None, **kwargs):
|
|
@@ -1018,9 +1019,9 @@ class Button(pb.PlateButton):
|
|
|
1018
1019
|
"""Flat button
|
|
1019
1020
|
|
|
1020
1021
|
Args:
|
|
1021
|
-
label
|
|
1022
|
-
handler
|
|
1023
|
-
icon
|
|
1022
|
+
label: button label
|
|
1023
|
+
handler: event handler when the button is pressed
|
|
1024
|
+
icon: key:str or bitmap for button icon
|
|
1024
1025
|
**kwargs: keywords for wx.lib.platebtn.PlateButton
|
|
1025
1026
|
"""
|
|
1026
1027
|
def __init__(self, parent, label='', handler=None, icon=None, **kwargs):
|
|
@@ -1049,9 +1050,9 @@ class ToggleButton(wx.ToggleButton):
|
|
|
1049
1050
|
"""Togglable button
|
|
1050
1051
|
|
|
1051
1052
|
Args:
|
|
1052
|
-
label
|
|
1053
|
-
handler
|
|
1054
|
-
icon
|
|
1053
|
+
label: button label
|
|
1054
|
+
handler: event handler when the button is pressed
|
|
1055
|
+
icon: key:str or bitmap for button icon
|
|
1055
1056
|
**kwargs: keywords for wx.ToggleButton
|
|
1056
1057
|
|
|
1057
1058
|
Note:
|
|
@@ -1075,10 +1076,10 @@ class TextBox(wx.Control):
|
|
|
1075
1076
|
"""Text control
|
|
1076
1077
|
|
|
1077
1078
|
Args:
|
|
1078
|
-
label
|
|
1079
|
-
handler
|
|
1080
|
-
updater
|
|
1081
|
-
icon
|
|
1079
|
+
label: button label
|
|
1080
|
+
handler: event handler when text is entered
|
|
1081
|
+
updater: event handler when the button is pressed
|
|
1082
|
+
icon: key:str or bitmap for button icon
|
|
1082
1083
|
readonly: flag:bool (equiv. style=wx.TE_READONLY)
|
|
1083
1084
|
**kwargs: keywords for wx.TextCtrl
|
|
1084
1085
|
e.g., value:str
|
|
@@ -1140,10 +1141,10 @@ class Choice(wx.Control):
|
|
|
1140
1141
|
"""Editable Choice (ComboBox) control
|
|
1141
1142
|
|
|
1142
1143
|
Args:
|
|
1143
|
-
label
|
|
1144
|
-
handler
|
|
1145
|
-
updater
|
|
1146
|
-
icon
|
|
1144
|
+
label: button label
|
|
1145
|
+
handler: event handler when text is entered or item is selected
|
|
1146
|
+
updater: event handler when the button is pressed
|
|
1147
|
+
icon: key:str or bitmap for button icon
|
|
1147
1148
|
readonly: flag:bool (equiv. style=wx.CB_READONLY)
|
|
1148
1149
|
**kwargs: keywords for wx.ComboBox
|
|
1149
1150
|
e.g., choices:list
|
|
@@ -1230,8 +1231,8 @@ class Indicator(wx.Control):
|
|
|
1230
1231
|
"""Traffic light indicator
|
|
1231
1232
|
|
|
1232
1233
|
Args:
|
|
1233
|
-
colors
|
|
1234
|
-
value
|
|
1234
|
+
colors: list of colors (default is tricolour) cf. wx.ColourDatabase
|
|
1235
|
+
value: initial value
|
|
1235
1236
|
**kwargs: keywords for wx.Control
|
|
1236
1237
|
"""
|
|
1237
1238
|
@property
|
|
@@ -1348,8 +1349,8 @@ class Gauge(wx.Control):
|
|
|
1348
1349
|
"""Rainbow gauge
|
|
1349
1350
|
|
|
1350
1351
|
Args:
|
|
1351
|
-
range
|
|
1352
|
-
value
|
|
1352
|
+
range: maximum value
|
|
1353
|
+
value: initial value
|
|
1353
1354
|
**kwargs: keywords for wx.Control
|
|
1354
1355
|
"""
|
|
1355
1356
|
@property
|
mwx/framework.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#! python3
|
|
2
2
|
"""mwxlib framework.
|
|
3
3
|
"""
|
|
4
|
-
__version__ = "1.5.
|
|
4
|
+
__version__ = "1.5.13"
|
|
5
5
|
__author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
|
|
6
6
|
|
|
7
7
|
from contextlib import contextmanager
|
|
@@ -28,19 +28,19 @@ def deb(target=None, loop=True, locals=None, **kwargs):
|
|
|
28
28
|
"""Dive into the process.
|
|
29
29
|
|
|
30
30
|
Args:
|
|
31
|
-
target
|
|
32
|
-
|
|
33
|
-
loop
|
|
34
|
-
locals
|
|
31
|
+
target: Object or module (default None).
|
|
32
|
+
If None, the target is set to `__main__`.
|
|
33
|
+
loop: If True, the app and the mainloop will be created.
|
|
34
|
+
locals: Additional context of the shell
|
|
35
35
|
|
|
36
36
|
**kwargs: ShellFrame and Nautilus arguments
|
|
37
37
|
|
|
38
|
-
- session
|
|
39
|
-
- standalone
|
|
40
|
-
|
|
41
|
-
- introText
|
|
42
|
-
- startupScript
|
|
43
|
-
- execStartupScript
|
|
38
|
+
- session: file name of the session. Defaults to None.
|
|
39
|
+
- standalone: True => EVT_CLOSE will close the window.
|
|
40
|
+
False => EVT_CLOSE will hide the window.
|
|
41
|
+
- introText: introductory of the shell
|
|
42
|
+
- startupScript: startup script file (default None)
|
|
43
|
+
- execStartupScript: True => Execute the startup script.
|
|
44
44
|
|
|
45
45
|
Note:
|
|
46
46
|
This will execute the startup script $(PYTHONSTARTUP).
|
|
@@ -504,7 +504,7 @@ def pack(self, items, orient=wx.HORIZONTAL, style=None, label=None):
|
|
|
504
504
|
)
|
|
505
505
|
|
|
506
506
|
Args:
|
|
507
|
-
items
|
|
507
|
+
items: wx objects (with some packing parameters)
|
|
508
508
|
|
|
509
509
|
- (obj, 1) -> sized with ratio 1 (parallel to `orient`)
|
|
510
510
|
- (obj, 1, wx.EXPAND) -> expanded with ratio 1 (perpendicular to `orient`)
|
|
@@ -513,9 +513,9 @@ def pack(self, items, orient=wx.HORIZONTAL, style=None, label=None):
|
|
|
513
513
|
- (-1,-1) -> padding space
|
|
514
514
|
- None -> phantom
|
|
515
515
|
|
|
516
|
-
orient
|
|
517
|
-
label
|
|
518
|
-
style
|
|
516
|
+
orient: HORIZONTAL or VERTICAL
|
|
517
|
+
label: StaticBox label
|
|
518
|
+
style: Sizer option (proportion, flag, border)
|
|
519
519
|
|
|
520
520
|
- flag-expansion -> EXPAND, SHAPED
|
|
521
521
|
- flag-border -> TOP, BOTTOM, LEFT, RIGHT, ALL
|
|
@@ -554,8 +554,8 @@ class Menu(wx.Menu):
|
|
|
554
554
|
"""Construct the menu.
|
|
555
555
|
|
|
556
556
|
Args:
|
|
557
|
-
|
|
558
|
-
|
|
557
|
+
owner: window object to bind handlers
|
|
558
|
+
menulist: list of MenuItem args
|
|
559
559
|
|
|
560
560
|
(id, text, hint, style, icon, ... Menu.Append arguments
|
|
561
561
|
action, updater, highlight) ... Menu Event handlers
|
|
@@ -697,8 +697,8 @@ class StatusBar(wx.StatusBar):
|
|
|
697
697
|
"""Construct the statusbar with read/write interfaces.
|
|
698
698
|
|
|
699
699
|
Attributes:
|
|
700
|
-
field
|
|
701
|
-
pane
|
|
700
|
+
field: list of field widths
|
|
701
|
+
pane: index of status text field
|
|
702
702
|
"""
|
|
703
703
|
def __init__(self, *args, **kwargs):
|
|
704
704
|
wx.StatusBar.__init__(self, *args, **kwargs)
|
|
@@ -726,9 +726,9 @@ class Frame(wx.Frame, KeyCtrlInterfaceMixin):
|
|
|
726
726
|
"""Frame extension class.
|
|
727
727
|
|
|
728
728
|
Attributes:
|
|
729
|
-
menubar
|
|
730
|
-
statusbar
|
|
731
|
-
shellframe
|
|
729
|
+
menubar: MenuBar
|
|
730
|
+
statusbar: StatusBar
|
|
731
|
+
shellframe: mini-frame of the shell
|
|
732
732
|
"""
|
|
733
733
|
handler = property(lambda self: self.__handler)
|
|
734
734
|
|
|
@@ -799,8 +799,8 @@ class MiniFrame(wx.MiniFrame, KeyCtrlInterfaceMixin):
|
|
|
799
799
|
"""MiniFrame extension class.
|
|
800
800
|
|
|
801
801
|
Attributes:
|
|
802
|
-
menubar
|
|
803
|
-
statusbar
|
|
802
|
+
menubar: MenuBar
|
|
803
|
+
statusbar: StatusBar (not shown by default)
|
|
804
804
|
"""
|
|
805
805
|
handler = property(lambda self: self.__handler)
|
|
806
806
|
|
|
@@ -1051,27 +1051,28 @@ class ShellFrame(MiniFrame):
|
|
|
1051
1051
|
"""MiniFrame of the Shell.
|
|
1052
1052
|
|
|
1053
1053
|
Args:
|
|
1054
|
-
target
|
|
1055
|
-
|
|
1056
|
-
session
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
standalone
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
**kwargs
|
|
1054
|
+
target: target object of the rootshell.
|
|
1055
|
+
If None, it will be __main__.
|
|
1056
|
+
session: file name of the session. Defaults to None.
|
|
1057
|
+
If None, no session will be created or saved.
|
|
1058
|
+
If `''`, the default session (.debrc) will be loaded.
|
|
1059
|
+
standalone: flag for the shell standalone.
|
|
1060
|
+
If True, EVT_CLOSE will close the window.
|
|
1061
|
+
Otherwise the window will be only hidden.
|
|
1062
|
+
**kwargs: Nautilus arguments
|
|
1063
1063
|
|
|
1064
1064
|
Attributes:
|
|
1065
|
-
console
|
|
1066
|
-
ghost
|
|
1067
|
-
watcher
|
|
1068
|
-
Scratch
|
|
1069
|
-
Help
|
|
1070
|
-
Log
|
|
1071
|
-
monitor
|
|
1072
|
-
inspector
|
|
1073
|
-
debugger
|
|
1074
|
-
ginfo
|
|
1065
|
+
console: Notebook of shells
|
|
1066
|
+
ghost: Notebook of editors/buffers
|
|
1067
|
+
watcher: Notebook of global/locals watcher
|
|
1068
|
+
Scratch: Book of scratch (tooltip)
|
|
1069
|
+
Help: Book of help
|
|
1070
|
+
Log: Book of logging
|
|
1071
|
+
monitor: wxmon.EventMonitor object
|
|
1072
|
+
inspector: wxwit.Inspector object
|
|
1073
|
+
debugger: wxpdb.Debugger object
|
|
1074
|
+
ginfo: globals list
|
|
1075
|
+
linfo: locals list
|
|
1075
1076
|
|
|
1076
1077
|
Built-in utility::
|
|
1077
1078
|
|
|
@@ -1611,10 +1612,10 @@ class ShellFrame(MiniFrame):
|
|
|
1611
1612
|
"""Load file @where the object is defined.
|
|
1612
1613
|
|
|
1613
1614
|
Args:
|
|
1614
|
-
filename
|
|
1615
|
-
|
|
1616
|
-
lineno
|
|
1617
|
-
show
|
|
1615
|
+
filename: target filename:str or object.
|
|
1616
|
+
It also supports <'filename:lineno'> format.
|
|
1617
|
+
lineno: Set mark to lineno on load.
|
|
1618
|
+
show: Show the page.
|
|
1618
1619
|
"""
|
|
1619
1620
|
if not isinstance(filename, str):
|
|
1620
1621
|
filename = where(filename)
|
mwx/graphman.py
CHANGED
|
@@ -43,19 +43,19 @@ class Thread:
|
|
|
43
43
|
The worker:thread runs the given target.
|
|
44
44
|
|
|
45
45
|
Attributes:
|
|
46
|
-
target
|
|
47
|
-
result
|
|
48
|
-
worker
|
|
49
|
-
owner
|
|
50
|
-
|
|
51
|
-
event
|
|
46
|
+
target: A target method of the Layer.
|
|
47
|
+
result: A variable that retains the last retval of f.
|
|
48
|
+
worker: Reference of the worker thread.
|
|
49
|
+
owner: Reference of the handler owner (was typ. f.__self__).
|
|
50
|
+
If None, the thread_event is handled by its own handler.
|
|
51
|
+
event: A common event flag to interrupt the process.
|
|
52
52
|
|
|
53
53
|
There are two flags to check the thread status:
|
|
54
54
|
|
|
55
|
-
- active
|
|
56
|
-
|
|
57
|
-
- running
|
|
58
|
-
|
|
55
|
+
- active: A flag of being kept going.
|
|
56
|
+
Check this to see the worker is running and intended being kept going.
|
|
57
|
+
- running: A flag of being running now.
|
|
58
|
+
Watch this to verify the worker is alive after it has been inactivated.
|
|
59
59
|
|
|
60
60
|
The event object can be used to suspend/resume the thread:
|
|
61
61
|
|
|
@@ -144,8 +144,8 @@ class Thread:
|
|
|
144
144
|
Confirm whether to terminate the thread.
|
|
145
145
|
|
|
146
146
|
Returns:
|
|
147
|
-
True
|
|
148
|
-
False
|
|
147
|
+
True: [OK] if terminating.
|
|
148
|
+
False: [CANCEL] otherwise.
|
|
149
149
|
|
|
150
150
|
Note:
|
|
151
151
|
Use ``check`` method where you want to pause.
|
|
@@ -515,8 +515,8 @@ class Graph(GraphPlot):
|
|
|
515
515
|
"""GraphPlot (override) to better make use for graph manager
|
|
516
516
|
|
|
517
517
|
Attributes:
|
|
518
|
-
parent
|
|
519
|
-
loader
|
|
518
|
+
parent: Parent window (usually mainframe)
|
|
519
|
+
loader: mainframe
|
|
520
520
|
"""
|
|
521
521
|
def __init__(self, parent, loader=None, **kwargs):
|
|
522
522
|
GraphPlot.__init__(self, parent, **kwargs)
|
|
@@ -569,8 +569,7 @@ class Graph(GraphPlot):
|
|
|
569
569
|
del self.region
|
|
570
570
|
|
|
571
571
|
def hide_layers(self):
|
|
572
|
-
for
|
|
573
|
-
plug = self.parent.get_plug(name)
|
|
572
|
+
for plug in self.parent.get_all_plugs():
|
|
574
573
|
for art in plug.Arts:
|
|
575
574
|
art.set_visible(0)
|
|
576
575
|
self.remove_markups()
|
|
@@ -581,8 +580,8 @@ class MyFileDropLoader(wx.FileDropTarget):
|
|
|
581
580
|
"""File Drop interface
|
|
582
581
|
|
|
583
582
|
Args:
|
|
584
|
-
target
|
|
585
|
-
loader
|
|
583
|
+
target: target view to drop in, e.g. frame, graph, pane, etc.
|
|
584
|
+
loader: mainframe
|
|
586
585
|
"""
|
|
587
586
|
def __init__(self, target, loader):
|
|
588
587
|
wx.FileDropTarget.__init__(self)
|
|
@@ -881,8 +880,7 @@ class Frame(mwx.Frame):
|
|
|
881
880
|
elif ret == wx.ID_CANCEL:
|
|
882
881
|
evt.Veto()
|
|
883
882
|
return
|
|
884
|
-
n = sum(bool(plug.thread and plug.thread.active)
|
|
885
|
-
for plug in (self.get_plug(name) for name in self.plugins))
|
|
883
|
+
n = sum(bool(plug.thread and plug.thread.active) for plug in self.get_all_plugs())
|
|
886
884
|
if n:
|
|
887
885
|
s = 's' if n > 1 else ''
|
|
888
886
|
if wx.MessageBox( # Confirm closing the thread.
|
|
@@ -917,7 +915,7 @@ class Frame(mwx.Frame):
|
|
|
917
915
|
"""Get named pane or notebook pane.
|
|
918
916
|
|
|
919
917
|
Args:
|
|
920
|
-
name
|
|
918
|
+
name: str or plug object.
|
|
921
919
|
"""
|
|
922
920
|
plug = self.get_plug(name)
|
|
923
921
|
if plug:
|
|
@@ -1050,19 +1048,24 @@ class Frame(mwx.Frame):
|
|
|
1050
1048
|
elif isinstance(name, LayerInterface):
|
|
1051
1049
|
return name
|
|
1052
1050
|
|
|
1051
|
+
def get_all_plugs(self):
|
|
1052
|
+
for name, module in self.plugins.items():
|
|
1053
|
+
yield module.__plug__
|
|
1054
|
+
|
|
1053
1055
|
def load_plug(self, root, force=False, session=None, show=False,
|
|
1054
1056
|
dock=0, floating_pos=None, floating_size=None,
|
|
1055
1057
|
**kwargs):
|
|
1056
1058
|
"""Load plugin.
|
|
1057
1059
|
|
|
1058
1060
|
Args:
|
|
1059
|
-
root
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
force
|
|
1063
|
-
session
|
|
1064
|
-
|
|
1065
|
-
|
|
1061
|
+
root: Plugin <Layer> module, or name of the module.
|
|
1062
|
+
Any wx.Window object can be specified (as dummy-plug).
|
|
1063
|
+
However, do not use this mode in release versions.
|
|
1064
|
+
force: force loading even if it is already loaded
|
|
1065
|
+
session: Conditions for initializing the plug and starting session
|
|
1066
|
+
|
|
1067
|
+
show: the pane is shown after loaded
|
|
1068
|
+
dock: dock_direction (1:top, 2:right, 3:bottom, 4:left, 5:center)
|
|
1066
1069
|
floating_pos: posision of floating window
|
|
1067
1070
|
floating_size: size of floating window
|
|
1068
1071
|
|
|
@@ -1078,8 +1081,9 @@ class Frame(mwx.Frame):
|
|
|
1078
1081
|
floating_pos=floating_pos,
|
|
1079
1082
|
floating_size=floating_size)
|
|
1080
1083
|
|
|
1081
|
-
if inspect.ismodule(root):
|
|
1082
|
-
name = root.__file__
|
|
1084
|
+
if inspect.ismodule(root): # @TODO: Change root module name
|
|
1085
|
+
name = root.__file__
|
|
1086
|
+
## name = root.__name__
|
|
1083
1087
|
elif inspect.isclass(root):
|
|
1084
1088
|
name = inspect.getsourcefile(root)
|
|
1085
1089
|
else:
|
|
@@ -1088,17 +1092,24 @@ class Frame(mwx.Frame):
|
|
|
1088
1092
|
if name.endswith(".py"):
|
|
1089
1093
|
name = name[:-3]
|
|
1090
1094
|
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1095
|
+
if not force:
|
|
1096
|
+
## 文字列参照 (root:str) による重複ロードを避ける
|
|
1097
|
+
module = next((v for v in self.plugins.values() if root == v.__file__), None)
|
|
1098
|
+
if module:
|
|
1099
|
+
## print(f"- {name!r} is already loaded as {module.__name__!r}.")
|
|
1100
|
+
plug = module.__plug__
|
|
1101
|
+
else:
|
|
1102
|
+
plug = self.get_plug(name)
|
|
1103
|
+
## Check if the named plug is already loaded.
|
|
1104
|
+
if plug:
|
|
1105
|
+
self.update_pane(name, **props)
|
|
1106
|
+
self.show_pane(name, show)
|
|
1107
|
+
try:
|
|
1108
|
+
if session:
|
|
1109
|
+
plug.load_session(session)
|
|
1110
|
+
except Exception:
|
|
1111
|
+
traceback.print_exc() # Failed to load the plug session.
|
|
1112
|
+
return None
|
|
1102
1113
|
|
|
1103
1114
|
## Update the include-path to load the module correctly.
|
|
1104
1115
|
if os.path.isdir(dirname_):
|
|
@@ -1109,7 +1120,7 @@ class Frame(mwx.Frame):
|
|
|
1109
1120
|
print(f"- No such directory {dirname_!r}.")
|
|
1110
1121
|
return False
|
|
1111
1122
|
|
|
1112
|
-
## Load or reload the
|
|
1123
|
+
## Load or reload the module, and check whether it contains a class named `Plugin`.
|
|
1113
1124
|
try:
|
|
1114
1125
|
if name in sys.modules:
|
|
1115
1126
|
module = reload(sys.modules[name])
|
|
@@ -1174,12 +1185,6 @@ class Frame(mwx.Frame):
|
|
|
1174
1185
|
style=wx.ICON_ERROR)
|
|
1175
1186
|
return False
|
|
1176
1187
|
|
|
1177
|
-
## Add to the list after the plug is created successfully.
|
|
1178
|
-
self.plugins[name] = module
|
|
1179
|
-
|
|
1180
|
-
## Set reference of a plug (one module, one plugin).
|
|
1181
|
-
module.__plug__ = plug
|
|
1182
|
-
|
|
1183
1188
|
## Create pane or notebook pane.
|
|
1184
1189
|
caption = plug.caption
|
|
1185
1190
|
if not isinstance(caption, str):
|
|
@@ -1208,6 +1213,12 @@ class Frame(mwx.Frame):
|
|
|
1208
1213
|
.Name(name).Caption(caption)
|
|
1209
1214
|
.FloatingSize(size).MinSize(size).Show(0))
|
|
1210
1215
|
|
|
1216
|
+
## Add to the list after the plug is created successfully.
|
|
1217
|
+
self.plugins[name] = module
|
|
1218
|
+
|
|
1219
|
+
## Set reference of a plug (one module, one plugin).
|
|
1220
|
+
module.__plug__ = plug
|
|
1221
|
+
|
|
1211
1222
|
## Set winow.Name for inspection.
|
|
1212
1223
|
plug.Name = name
|
|
1213
1224
|
|
|
@@ -1281,9 +1292,6 @@ class Frame(mwx.Frame):
|
|
|
1281
1292
|
if not plug:
|
|
1282
1293
|
print(f"- {name!r} is not listed in plugins.")
|
|
1283
1294
|
return
|
|
1284
|
-
if not plug.reloadable:
|
|
1285
|
-
print(f"- {name!r} is not reloadable.")
|
|
1286
|
-
return
|
|
1287
1295
|
|
|
1288
1296
|
session = {}
|
|
1289
1297
|
try:
|
|
@@ -1326,8 +1334,7 @@ class Frame(mwx.Frame):
|
|
|
1326
1334
|
|
|
1327
1335
|
def Quit(self, evt=None):
|
|
1328
1336
|
"""Stop all Layer threads."""
|
|
1329
|
-
for
|
|
1330
|
-
plug = self.get_plug(name)
|
|
1337
|
+
for plug in self.get_all_plugs():
|
|
1331
1338
|
thread = plug.thread # Note: thread can be None or shared.
|
|
1332
1339
|
if thread and thread.active:
|
|
1333
1340
|
## thread.active = 0
|
|
@@ -1751,10 +1758,9 @@ class Frame(mwx.Frame):
|
|
|
1751
1758
|
|
|
1752
1759
|
for name, module in self.plugins.items():
|
|
1753
1760
|
plug = self.get_plug(name)
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
name = os.path.dirname(name)
|
|
1761
|
+
name = module.__file__ # Replace the name with full path.
|
|
1762
|
+
if hasattr(module, '__path__'): # is the module a package?
|
|
1763
|
+
name = os.path.dirname(name)
|
|
1758
1764
|
session = {}
|
|
1759
1765
|
try:
|
|
1760
1766
|
plug.save_session(session)
|
mwx/matplot2.py
CHANGED
|
@@ -71,11 +71,11 @@ class MatplotPanel(wx.Panel):
|
|
|
71
71
|
"""MPL panel for general graph
|
|
72
72
|
|
|
73
73
|
Attributes:
|
|
74
|
-
figure
|
|
75
|
-
canvas
|
|
76
|
-
toolbar
|
|
77
|
-
cursor
|
|
78
|
-
selected
|
|
74
|
+
figure: <matplotlib.figure.Figure>
|
|
75
|
+
canvas: <matplotlib.backends.backend_wxagg.FigureCanvasWxAgg>
|
|
76
|
+
toolbar: <matplotlib.backends.backend_wx.NavigationToolbar2Wx>
|
|
77
|
+
cursor: <matplotlib.widgets.Cursor>
|
|
78
|
+
selected: Selected points <matplotlib.lines.Line2D>
|
|
79
79
|
"""
|
|
80
80
|
handler = property(lambda self: self.__handler)
|
|
81
81
|
|
mwx/matplot2g.py
CHANGED
|
@@ -70,9 +70,9 @@ def _to_image(src, cutoff=0, threshold=None, binning=1):
|
|
|
70
70
|
beta = -a * alpha
|
|
71
71
|
|
|
72
72
|
Args:
|
|
73
|
-
cutoff
|
|
74
|
-
threshold
|
|
75
|
-
binning
|
|
73
|
+
cutoff: cutoff score [%] to cut the lo/hi limits
|
|
74
|
+
threshold: limit bytes of image (to make matplotlib light)
|
|
75
|
+
binning: minimum binning number of src array
|
|
76
76
|
"""
|
|
77
77
|
if src.dtype in (np.complex64, np.complex128): # maybe fft pattern
|
|
78
78
|
src = np.log(1 + abs(src))
|
|
@@ -118,9 +118,9 @@ class AxesImagePhantom:
|
|
|
118
118
|
"""Phantom of frame facade
|
|
119
119
|
|
|
120
120
|
Args:
|
|
121
|
-
buf
|
|
122
|
-
name
|
|
123
|
-
show
|
|
121
|
+
buf: buffer
|
|
122
|
+
name: buffer name
|
|
123
|
+
show: show immediately when loaded
|
|
124
124
|
**kwargs: frame attributes
|
|
125
125
|
|
|
126
126
|
Note:
|
|
@@ -631,10 +631,10 @@ class GraphPlot(MatplotPanel):
|
|
|
631
631
|
"""Load a buffer with a name.
|
|
632
632
|
|
|
633
633
|
Args:
|
|
634
|
-
buf
|
|
635
|
-
name
|
|
636
|
-
pos
|
|
637
|
-
show
|
|
634
|
+
buf: buffer array.
|
|
635
|
+
name: buffer name (default to *temp*).
|
|
636
|
+
pos: Insertion position in the frame list.
|
|
637
|
+
show: Show immediately when loaded.
|
|
638
638
|
**kwargs: frame attributes.
|
|
639
639
|
"""
|
|
640
640
|
assert buf is not None, "Load buffer must be an array or string (not None)"
|
mwx/matplot2lg.py
CHANGED
|
@@ -217,8 +217,8 @@ class Histogram(LinePlot):
|
|
|
217
217
|
常に整数ビット画像となるので,高速なビンづめ法で計算する
|
|
218
218
|
|
|
219
219
|
Attributes:
|
|
220
|
-
__graphs
|
|
221
|
-
__frame
|
|
220
|
+
__graphs: list of attached graph <matplot2g.GraphPlot>
|
|
221
|
+
__frame: reference to the current frame
|
|
222
222
|
"""
|
|
223
223
|
def __init__(self, *args, **kwargs):
|
|
224
224
|
LinePlot.__init__(self, *args, **kwargs)
|
|
@@ -387,10 +387,10 @@ class LineProfile(LinePlot):
|
|
|
387
387
|
"""LinePlot panel for line profile (Multi-graph : Single-frame)
|
|
388
388
|
|
|
389
389
|
Attributes:
|
|
390
|
-
__graphs
|
|
391
|
-
__frame
|
|
392
|
-
__logicp
|
|
393
|
-
__linewidth
|
|
390
|
+
__graphs: list of attached graph <matplot2g.GraphPlot>
|
|
391
|
+
__frame: reference to the current frame
|
|
392
|
+
__logicp: line axis in logical unit
|
|
393
|
+
__linewidth: line width to integrate [pixel]
|
|
394
394
|
"""
|
|
395
395
|
def __init__(self, *args, **kwargs):
|
|
396
396
|
LinePlot.__init__(self, *args, **kwargs)
|
mwx/nutshell.py
CHANGED
|
@@ -1821,11 +1821,6 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
|
|
|
1821
1821
|
|
|
1822
1822
|
class Buffer(EditorInterface, EditWindow):
|
|
1823
1823
|
"""Python code buffer.
|
|
1824
|
-
|
|
1825
|
-
Attributes:
|
|
1826
|
-
name : buffer-name (basename)
|
|
1827
|
-
filename : buffer-file-name
|
|
1828
|
-
code : code object
|
|
1829
1824
|
"""
|
|
1830
1825
|
@property
|
|
1831
1826
|
def message(self):
|
|
@@ -1833,12 +1828,14 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
1833
1828
|
|
|
1834
1829
|
@property
|
|
1835
1830
|
def name(self):
|
|
1831
|
+
"""buffer-name (basename)."""
|
|
1836
1832
|
return os.path.basename(self.__filename or '')
|
|
1837
1833
|
|
|
1838
1834
|
Name = name # page.window.Name for save/loadPerspective
|
|
1839
1835
|
|
|
1840
1836
|
@property
|
|
1841
1837
|
def filename(self):
|
|
1838
|
+
"""buffer-file-name."""
|
|
1842
1839
|
return self.__filename
|
|
1843
1840
|
|
|
1844
1841
|
def update_filestamp(self, fn):
|
|
@@ -1863,10 +1860,10 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
1863
1860
|
"""Timestamp delta (for checking external mod).
|
|
1864
1861
|
|
|
1865
1862
|
Returns:
|
|
1866
|
-
None
|
|
1867
|
-
= 0
|
|
1868
|
-
> 0
|
|
1869
|
-
< 0
|
|
1863
|
+
None: no file
|
|
1864
|
+
= 0: a file (even if not found)
|
|
1865
|
+
> 0: a file edited externally
|
|
1866
|
+
< 0: a url file
|
|
1870
1867
|
"""
|
|
1871
1868
|
try:
|
|
1872
1869
|
return self.__path.stat().st_mtime - self.__mtime
|
|
@@ -2269,11 +2266,11 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2269
2266
|
"""Python code editor.
|
|
2270
2267
|
|
|
2271
2268
|
Args:
|
|
2272
|
-
name
|
|
2269
|
+
name: Window.Name (e.g. 'Scratch')
|
|
2273
2270
|
|
|
2274
2271
|
Attributes:
|
|
2275
|
-
default_name
|
|
2276
|
-
default_buffer
|
|
2272
|
+
default_name: default buffer name (e.g. '*scratch*')
|
|
2273
|
+
default_buffer: default buffer
|
|
2277
2274
|
"""
|
|
2278
2275
|
@property
|
|
2279
2276
|
def message(self):
|
|
@@ -2358,7 +2355,7 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2358
2355
|
"""Set multiple properties at once to the buffer(s).
|
|
2359
2356
|
|
|
2360
2357
|
Args:
|
|
2361
|
-
buf
|
|
2358
|
+
buf: a buffer to apply (if None, applies to all buffers).
|
|
2362
2359
|
**kwargs: default style.
|
|
2363
2360
|
|
|
2364
2361
|
ReadOnly = False
|
|
@@ -3460,12 +3457,12 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3460
3457
|
|
|
3461
3458
|
@property
|
|
3462
3459
|
def bolc(self):
|
|
3463
|
-
"Beginning of command-line."
|
|
3460
|
+
"""Beginning of command-line."""
|
|
3464
3461
|
return self.promptPosEnd
|
|
3465
3462
|
|
|
3466
3463
|
@property
|
|
3467
3464
|
def eolc(self):
|
|
3468
|
-
"End of command-line."
|
|
3465
|
+
"""End of command-line."""
|
|
3469
3466
|
return self.TextLength
|
|
3470
3467
|
|
|
3471
3468
|
@property
|
mwx/py/filling.py
CHANGED
|
@@ -212,6 +212,7 @@ class FillingTree(wx.TreeCtrl):
|
|
|
212
212
|
def display(self, rooting=True):
|
|
213
213
|
"""Display the current item data.
|
|
214
214
|
Called when an item/branch needs to be updated.
|
|
215
|
+
|
|
215
216
|
Args:
|
|
216
217
|
rooting: True if the current item must be updated
|
|
217
218
|
False otherwise to reduce overheads.
|
mwx/utilus.py
CHANGED
|
@@ -200,8 +200,12 @@ def typename(obj, docp=False, qualp=True):
|
|
|
200
200
|
return pydoc.describe(obj) # atom -> short description
|
|
201
201
|
|
|
202
202
|
modname = getattr(obj, '__module__', None)
|
|
203
|
-
if modname
|
|
204
|
-
|
|
203
|
+
if modname:
|
|
204
|
+
if qualp:
|
|
205
|
+
name = modname + '.' + name
|
|
206
|
+
else:
|
|
207
|
+
if not modname.startswith(("__main__", "mwx")):
|
|
208
|
+
name = modname + '..' + name
|
|
205
209
|
|
|
206
210
|
if docp and callable(obj) and obj.__doc__:
|
|
207
211
|
name += "<{!r}>".format(obj.__doc__.splitlines()[0]) # concat the first doc line
|
|
@@ -976,12 +980,12 @@ def get_fullargspec(f):
|
|
|
976
980
|
information from the docstring. If it fails, it returns None.
|
|
977
981
|
|
|
978
982
|
Returns:
|
|
979
|
-
args
|
|
980
|
-
varargs
|
|
981
|
-
varkwargs
|
|
982
|
-
defaults
|
|
983
|
-
kwonlyargs
|
|
984
|
-
kwonlydefaults
|
|
983
|
+
args: a list of the parameter names.
|
|
984
|
+
varargs: the name of the * parameter or None.
|
|
985
|
+
varkwargs: the name of the ** parameter or None.
|
|
986
|
+
defaults: a dict mapping names from args to defaults.
|
|
987
|
+
kwonlyargs: a list of keyword-only parameter names.
|
|
988
|
+
kwonlydefaults: a dict mapping names from kwonlyargs to defaults.
|
|
985
989
|
|
|
986
990
|
Note:
|
|
987
991
|
`self` parameter is not reported for bound methods.
|
mwx/wxmon.py
CHANGED
|
@@ -16,8 +16,8 @@ class EventMonitor(wx.ListCtrl, ListCtrlAutoWidthMixin, CtrlInterface):
|
|
|
16
16
|
"""Event monitor
|
|
17
17
|
|
|
18
18
|
Attributes:
|
|
19
|
-
parent
|
|
20
|
-
target
|
|
19
|
+
parent: shellframe
|
|
20
|
+
target: widget to monitor
|
|
21
21
|
"""
|
|
22
22
|
def __init__(self, parent, **kwargs):
|
|
23
23
|
wx.ListCtrl.__init__(self, parent,
|
mwx/wxpdb.py
CHANGED
|
@@ -30,14 +30,15 @@ class Debugger(Pdb):
|
|
|
30
30
|
"""Graphical debugger with extended Pdb
|
|
31
31
|
|
|
32
32
|
Args:
|
|
33
|
-
parent
|
|
34
|
-
stdin
|
|
35
|
-
stdout
|
|
33
|
+
parent: shellframe
|
|
34
|
+
stdin: shell.interp.stdin
|
|
35
|
+
stdout: shell.interp.stdout
|
|
36
36
|
|
|
37
37
|
Attributes:
|
|
38
|
-
editor
|
|
38
|
+
editor: Notebook to show the stack frames
|
|
39
|
+
|
|
40
|
+
Key bindings::
|
|
39
41
|
|
|
40
|
-
Key bindings:
|
|
41
42
|
C-g : quit
|
|
42
43
|
C-q : quit
|
|
43
44
|
C-n : next (step-over)
|
mwx/wxwil.py
CHANGED
|
@@ -20,8 +20,8 @@ class LocalsWatcher(wx.ListCtrl, ListCtrlAutoWidthMixin, CtrlInterface):
|
|
|
20
20
|
"""Locals info watcher
|
|
21
21
|
|
|
22
22
|
Attributes:
|
|
23
|
-
parent
|
|
24
|
-
target
|
|
23
|
+
parent: shellframe
|
|
24
|
+
target: locals:dict to watch
|
|
25
25
|
"""
|
|
26
26
|
def __init__(self, parent, **kwargs):
|
|
27
27
|
wx.ListCtrl.__init__(self, parent,
|
mwx/wxwit.py
CHANGED
|
@@ -15,8 +15,8 @@ class Inspector(it.InspectionTree, CtrlInterface):
|
|
|
15
15
|
"""Widget inspection tool
|
|
16
16
|
|
|
17
17
|
Attributes:
|
|
18
|
-
parent
|
|
19
|
-
target
|
|
18
|
+
parent: shellframe
|
|
19
|
+
target: widget to inspect
|
|
20
20
|
"""
|
|
21
21
|
def __init__(self, parent, *args, **kwargs):
|
|
22
22
|
it.InspectionTree.__init__(self, parent, *args, **kwargs)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
mwx/__init__.py,sha256=pS7ZG8QKRypiFFiaWAq_opBB6I_1viZ0zUMk2TbjzE0,667
|
|
2
|
+
mwx/bookshelf.py,sha256=yW17nMNPXKHM7LLXLpr9DaRhyFHz_OBAZ_DsuEK2QzA,8387
|
|
3
|
+
mwx/controls.py,sha256=B9f_A0ev3SPf75K-LIZCusMLeDGYz1O3cMml7IOrDrM,49870
|
|
4
|
+
mwx/framework.py,sha256=E9wqJeF8_r7qhBGBHAt6lsLdEhckqeTzjPgYPbRpFZ8,77464
|
|
5
|
+
mwx/graphman.py,sha256=m5n4Ew25CXyCszTOI8RiFMNKfJPrV5Rte4ZwdH8bGGo,69831
|
|
6
|
+
mwx/images.py,sha256=Kkfy9QI_hMtwShSjUS4-ZpC_EkVuah_XhpBOR4wAKkM,49792
|
|
7
|
+
mwx/matplot2.py,sha256=cjdN12RENqWFw1v9QyO05XQc6dK3Pn_ltdC3OfmhGfg,32995
|
|
8
|
+
mwx/matplot2g.py,sha256=KY4zvtd-11RhlaSJD8nNbzv2cM4i3IWDi1rFmQJf8_g,65213
|
|
9
|
+
mwx/matplot2lg.py,sha256=jE-LYPEVaEapQN8L-eviRyEx4Lw-8GyLGzZotrIZShU,27413
|
|
10
|
+
mwx/mgplt.py,sha256=SVUJ0ls4gC9xulbWxK2qqmDxf0uBCflvwoPkxoF5s3M,5566
|
|
11
|
+
mwx/nutshell.py,sha256=Sa5PKSiXxT74Mj_vE9fUinxkfm5Xtg1MGGUjwbRH-yY,147552
|
|
12
|
+
mwx/testsuite.py,sha256=0Q_n_XOOsZ8lsLWUkuO8QW00hts9wEQfnUKMpf0BAyU,1235
|
|
13
|
+
mwx/utilus.py,sha256=JOYBTHoo_GmYykX72PgiPzgD2M-1pcOR8gMBLc2bnck,39016
|
|
14
|
+
mwx/wxmon.py,sha256=aS6lSjDm0PxIhfyBPtg-wIP0v-R3g2K5a3k2mclWSrQ,12798
|
|
15
|
+
mwx/wxpdb.py,sha256=ehRawAnqQberUeDN9j_-drWYQzu23w5UeQyto4nj53g,18812
|
|
16
|
+
mwx/wxwil.py,sha256=_74m3jEUu3ktjHKHWEEK34ck439u9A0PhDDxFVTA0_Y,5404
|
|
17
|
+
mwx/wxwit.py,sha256=W7wP9loxw0dAdk5-NWMIHt19Og1h-3vFzz-8BPicHB4,7348
|
|
18
|
+
mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
|
|
19
|
+
mwx/plugins/ffmpeg_view.py,sha256=GT3mAP7cvAgkzHyA0Em_FP8wiWS-dRekUyBgaXIBQCc,10982
|
|
20
|
+
mwx/plugins/fft_view.py,sha256=Hsho8y-42hG3htQAJ9ct1347NHJ8qPvN4snq_1jYOxw,2793
|
|
21
|
+
mwx/plugins/frame_listview.py,sha256=yd2NCgspqGfTNhj1wxuW8r1zapIm7vNzVX2iytk8CDM,10618
|
|
22
|
+
mwx/plugins/line_profile.py,sha256=zzm6_7lnAnNepLbh07ordp3nRWDFQJtu719ZVjrVf8s,819
|
|
23
|
+
mwx/py/__init__.py,sha256=xykgfOytOwNuvXsfkLoumFZSTN-iBsHOjczYXngjmUE,12
|
|
24
|
+
mwx/py/filling.py,sha256=vWCJoHd_oyXOeXTHtXGY7wfNQeNAZhV3GZu4xlc8GDY,16867
|
|
25
|
+
mwxlib-1.5.13.dist-info/METADATA,sha256=Z1q0ZF9W0_js50oiiwHqvPtGXRCPMrbkih4zpgM-G3w,7382
|
|
26
|
+
mwxlib-1.5.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
27
|
+
mwxlib-1.5.13.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
28
|
+
mwxlib-1.5.13.dist-info/RECORD,,
|
mwxlib-1.5.11.dist-info/RECORD
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
mwx/__init__.py,sha256=pS7ZG8QKRypiFFiaWAq_opBB6I_1viZ0zUMk2TbjzE0,667
|
|
2
|
-
mwx/bookshelf.py,sha256=yW17nMNPXKHM7LLXLpr9DaRhyFHz_OBAZ_DsuEK2QzA,8387
|
|
3
|
-
mwx/controls.py,sha256=Mpzpp2eWyS_X7RjxTJay1-Fldchk-x-rUBpUhHSG-5w,49924
|
|
4
|
-
mwx/framework.py,sha256=LRy4HZqH_JdGhVzKnfq9LxEyF24CDmzaQRzyJ5P53Us,77574
|
|
5
|
-
mwx/graphman.py,sha256=hixEmn8YAbmVLYjB_XRpyddKytlw8UJH32jm-fA1EKU,69601
|
|
6
|
-
mwx/images.py,sha256=Kkfy9QI_hMtwShSjUS4-ZpC_EkVuah_XhpBOR4wAKkM,49792
|
|
7
|
-
mwx/matplot2.py,sha256=5Z-m9KXtSXpzBQs3swqPbfl_mfVdDoPaWKqpiepfau8,33019
|
|
8
|
-
mwx/matplot2g.py,sha256=hLBYWjXPc2jgtKPTQWCdieIegQvS4jjUUaedV4qDLoE,65255
|
|
9
|
-
mwx/matplot2lg.py,sha256=fpxOX18vonUTpA_nAr-wBhQ_2YNsL_nfxdCDliuP1sU,27430
|
|
10
|
-
mwx/mgplt.py,sha256=SVUJ0ls4gC9xulbWxK2qqmDxf0uBCflvwoPkxoF5s3M,5566
|
|
11
|
-
mwx/nutshell.py,sha256=CX-NK3kOEi3JHhjKh39R2_m1po1SvMxraaDk2xt6q-Y,147617
|
|
12
|
-
mwx/testsuite.py,sha256=0Q_n_XOOsZ8lsLWUkuO8QW00hts9wEQfnUKMpf0BAyU,1235
|
|
13
|
-
mwx/utilus.py,sha256=YVU-2aR9_22-clA0OCFKfmW0c49uhNWdbQaNXxNKXxA,38964
|
|
14
|
-
mwx/wxmon.py,sha256=NIksW_CZv7Kw4dod8tWVwakO4iJuvE8hJSAcjkYfLaE,12800
|
|
15
|
-
mwx/wxpdb.py,sha256=kKzEGivjoZ9zGcB3ttYsAym4putyilmXZXj-5CGaivQ,18813
|
|
16
|
-
mwx/wxwil.py,sha256=hhyB1lPrF9ixeObxCOKQv0Theu-B-kpJg_yVU3EGSNg,5406
|
|
17
|
-
mwx/wxwit.py,sha256=mTH92bWw1F3ycaq4EoxVD_4hIxy2fbKZZbQg3f1ZD1Y,7350
|
|
18
|
-
mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
|
|
19
|
-
mwx/plugins/ffmpeg_view.py,sha256=GT3mAP7cvAgkzHyA0Em_FP8wiWS-dRekUyBgaXIBQCc,10982
|
|
20
|
-
mwx/plugins/fft_view.py,sha256=Hsho8y-42hG3htQAJ9ct1347NHJ8qPvN4snq_1jYOxw,2793
|
|
21
|
-
mwx/plugins/frame_listview.py,sha256=yd2NCgspqGfTNhj1wxuW8r1zapIm7vNzVX2iytk8CDM,10618
|
|
22
|
-
mwx/plugins/line_profile.py,sha256=zzm6_7lnAnNepLbh07ordp3nRWDFQJtu719ZVjrVf8s,819
|
|
23
|
-
mwx/py/__init__.py,sha256=xykgfOytOwNuvXsfkLoumFZSTN-iBsHOjczYXngjmUE,12
|
|
24
|
-
mwx/py/filling.py,sha256=fumUG1F5M9TL-Dfqni4G85uk7TmvnUunTbdcPDV0vfo,16857
|
|
25
|
-
mwxlib-1.5.11.dist-info/METADATA,sha256=p669CmL2U7lNRmxUD2QMu286bsTCCQeOMUN990PNpqU,7382
|
|
26
|
-
mwxlib-1.5.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
27
|
-
mwxlib-1.5.11.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
28
|
-
mwxlib-1.5.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|