mwxlib 0.98.5__py3-none-any.whl → 0.98.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/framework.py +1 -2
- mwx/nutshell.py +27 -15
- mwxlib-0.98.6.dist-info/METADATA +228 -0
- {mwxlib-0.98.5.dist-info → mwxlib-0.98.6.dist-info}/RECORD +7 -7
- {mwxlib-0.98.5.dist-info → mwxlib-0.98.6.dist-info}/WHEEL +1 -1
- mwxlib-0.98.5.dist-info/METADATA +0 -54
- {mwxlib-0.98.5.dist-info → mwxlib-0.98.6.dist-info}/LICENSE +0 -0
- {mwxlib-0.98.5.dist-info → mwxlib-0.98.6.dist-info}/top_level.txt +0 -0
mwx/framework.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#! python3
|
|
2
2
|
"""mwxlib framework.
|
|
3
3
|
"""
|
|
4
|
-
__version__ = "0.98.
|
|
4
|
+
__version__ = "0.98.6"
|
|
5
5
|
__author__ = "Kazuya O'moto <komoto@jeol.co.jp>"
|
|
6
6
|
|
|
7
7
|
from contextlib import contextmanager
|
|
@@ -1278,7 +1278,6 @@ class ShellFrame(MiniFrame):
|
|
|
1278
1278
|
self.Scratch.buffer.eval_line()
|
|
1279
1279
|
evt.Skip(False) # Don't skip explicitly.
|
|
1280
1280
|
|
|
1281
|
-
@self.Scratch.define_key('C-S-j')
|
|
1282
1281
|
@self.Scratch.define_key('M-j')
|
|
1283
1282
|
def eval_buffer(evt):
|
|
1284
1283
|
self.Scratch.buffer.exec_region()
|
mwx/nutshell.py
CHANGED
|
@@ -875,19 +875,6 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
|
|
|
875
875
|
q = self.cpos
|
|
876
876
|
return self.GetTextRange(p, q)
|
|
877
877
|
|
|
878
|
-
def gen_text_at_caret(self):
|
|
879
|
-
"""Generates the selected text,
|
|
880
|
-
otherwise the line or expression at the caret.
|
|
881
|
-
"""
|
|
882
|
-
def _gen_text():
|
|
883
|
-
text = self.SelectedText
|
|
884
|
-
if text:
|
|
885
|
-
yield text
|
|
886
|
-
else:
|
|
887
|
-
yield self.line_at_caret
|
|
888
|
-
yield self.expr_at_caret
|
|
889
|
-
return filter(None, _gen_text())
|
|
890
|
-
|
|
891
878
|
## --------------------------------
|
|
892
879
|
## Python syntax and indentation
|
|
893
880
|
## --------------------------------
|
|
@@ -2064,6 +2051,19 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
2064
2051
|
dispatcher.send(signal='Interpreter.push',
|
|
2065
2052
|
sender=self, command=None, more=False)
|
|
2066
2053
|
|
|
2054
|
+
def gen_text_at_caret(self):
|
|
2055
|
+
"""Generates the selected text,
|
|
2056
|
+
otherwise the line or expression at the caret.
|
|
2057
|
+
"""
|
|
2058
|
+
def _gen_text():
|
|
2059
|
+
text = self.SelectedText
|
|
2060
|
+
if text:
|
|
2061
|
+
yield text
|
|
2062
|
+
else:
|
|
2063
|
+
yield self.line_at_caret
|
|
2064
|
+
yield self.expr_at_caret
|
|
2065
|
+
return filter(None, _gen_text())
|
|
2066
|
+
|
|
2067
2067
|
def eval_line(self):
|
|
2068
2068
|
self.py_eval_line(self.globals, self.locals)
|
|
2069
2069
|
|
|
@@ -2853,10 +2853,8 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2853
2853
|
'C-S-insert pressed' : (0, _F(self.Paste, rectangle=1)),
|
|
2854
2854
|
'C-j pressed' : (0, self.eval_line),
|
|
2855
2855
|
'M-j pressed' : (0, self.exec_region),
|
|
2856
|
-
'C-S-j pressed' : (0, self.exec_region),
|
|
2857
2856
|
'C-h pressed' : (0, self.call_helpTip),
|
|
2858
2857
|
'M-h pressed' : (0, self.call_helpDoc),
|
|
2859
|
-
'C-S-h pressed' : (0, self.call_helpDoc),
|
|
2860
2858
|
'. pressed' : (2, self.OnEnterDot),
|
|
2861
2859
|
'tab pressed' : (1, self.call_history_comp),
|
|
2862
2860
|
'M-p pressed' : (1, self.call_history_comp),
|
|
@@ -3610,6 +3608,20 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3610
3608
|
self.cpos, self.anchor = self.anchor, self.cpos
|
|
3611
3609
|
self.EnsureCaretVisible()
|
|
3612
3610
|
|
|
3611
|
+
def gen_text_at_caret(self):
|
|
3612
|
+
"""Generates the selected text,
|
|
3613
|
+
otherwise the line or expression at the caret.
|
|
3614
|
+
(override) Generates command line (that starts with a prompt).
|
|
3615
|
+
"""
|
|
3616
|
+
def _gen_text():
|
|
3617
|
+
text = self.SelectedText
|
|
3618
|
+
if text:
|
|
3619
|
+
yield text
|
|
3620
|
+
else:
|
|
3621
|
+
yield self.getCommand() # self.line_at_caret
|
|
3622
|
+
yield self.expr_at_caret
|
|
3623
|
+
return filter(None, _gen_text())
|
|
3624
|
+
|
|
3613
3625
|
def eval_line(self, evt):
|
|
3614
3626
|
"""Evaluate the selected word or line."""
|
|
3615
3627
|
if self.CallTipActive():
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: mwxlib
|
|
3
|
+
Version: 0.98.6
|
|
4
|
+
Summary: A wrapper of matplotlib and wxPython (phoenix)
|
|
5
|
+
Home-page: https://github.com/komoto48g/mwxlib
|
|
6
|
+
Author: Kazuya O'moto
|
|
7
|
+
Author-email: komoto@jeol.co.jp
|
|
8
|
+
License: MIT
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: wxpython >=4.2.0
|
|
21
|
+
Requires-Dist: matplotlib
|
|
22
|
+
Requires-Dist: opencv-python
|
|
23
|
+
Requires-Dist: scipy
|
|
24
|
+
|
|
25
|
+
# mwxlib
|
|
26
|
+
|
|
27
|
+
Welcome to mwxlib project!
|
|
28
|
+
Python package based on matplotlib/wx and wxPython shell extension library
|
|
29
|
+
|
|
30
|
+
See [Demo Script and Gallery](./demo/readme.md).
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Getting Started
|
|
34
|
+
|
|
35
|
+
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
|
|
36
|
+
|
|
37
|
+
### Prerequisites
|
|
38
|
+
|
|
39
|
+
- ~~Python 2.7~~ (PY2 support has ended since 0.50)
|
|
40
|
+
- ~~Python 3.5~~ (PY35 support has ended since 0.70)
|
|
41
|
+
- ~~Python 3.7~~ (PY37 support has ended since 0.80)
|
|
42
|
+
- Python 3.8 -- 3.9 (deprecated since 0.90)
|
|
43
|
+
- wxpython >= 4.1.1
|
|
44
|
+
- numpy
|
|
45
|
+
- pillow
|
|
46
|
+
- matplotlib
|
|
47
|
+
- opencv-python
|
|
48
|
+
- Python 3.10 -- 3.11
|
|
49
|
+
- wxpython >= 4.2.1
|
|
50
|
+
- numpy
|
|
51
|
+
- pillow
|
|
52
|
+
- matplotlib
|
|
53
|
+
- opencv-python
|
|
54
|
+
- Python 3.12
|
|
55
|
+
- A version of wxpython for PY312 has not yet released on PyPi.
|
|
56
|
+
* You can download the snapshot from https://wxpython.org/Phoenix/snapshot-builds/,
|
|
57
|
+
* or the latest snapshot from Azure Pipelines https://alldunn.visualstudio.com/wxPython-CI/_build?definitionId=2&_a=summary
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Installing
|
|
61
|
+
|
|
62
|
+
To install, type:
|
|
63
|
+
```
|
|
64
|
+
pip install mwxlib
|
|
65
|
+
```
|
|
66
|
+
To install latest version from GitHub, type:
|
|
67
|
+
```
|
|
68
|
+
pip install git+https://github.com/komoto48g/mwxlib.git
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### How to use
|
|
72
|
+
|
|
73
|
+
mwx.deb is wx.py.shell-base inspector used for debugging in the target process.
|
|
74
|
+
```
|
|
75
|
+
>>> import mwx; mwx.deb()
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
:memo: mwxlib creates "~/.mwxlib/" in your *HOME* directory.
|
|
79
|
+
This includes history, logs, dump files used to check when an error occurs.
|
|
80
|
+
|
|
81
|
+
:memo: At the first startup, it takes some time to collect module information and create a dictionary file.
|
|
82
|
+
The collected module name is used for completion at the time of input in the shell.
|
|
83
|
+
(If you start the shell while pressing [C-S-], the dictionary file will be recreated)
|
|
84
|
+
|
|
85
|
+
As you are diving into the python process, you can watch, inspect, and debug the target.
|
|
86
|
+
|
|
87
|
+
Enjoy diving!
|
|
88
|
+
|
|
89
|
+
### Uninstalling
|
|
90
|
+
```
|
|
91
|
+
pip uninstall mwxlib
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
# Features
|
|
96
|
+
|
|
97
|
+

|
|
98
|
+
The animation shows how the Nautilus works, which is embedded in a simple PyEditor app.
|
|
99
|
+
|
|
100
|
+
As you are diving into the python process,
|
|
101
|
+
you can watch, inspect, and change everything in the target.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
## Nautilus in the Shell
|
|
105
|
+
|
|
106
|
+
The framework has an extended class based on wx.py.shell.Shell named Nautilus,
|
|
107
|
+
which has the following features:
|
|
108
|
+
|
|
109
|
+
1. Auto-completion and apropos functions are reinforced.
|
|
110
|
+
- [1] history-comp-mode
|
|
111
|
+
- [2] word-comp-mode
|
|
112
|
+
- [3] apropos-comp-mode
|
|
113
|
+
- [4] text-comp-mode
|
|
114
|
+
- [5] module-comp-mode
|
|
115
|
+
2. Magic syntax.
|
|
116
|
+
- [ ` ] quoteback
|
|
117
|
+
- [@] pullback
|
|
118
|
+
3. Powerful inspectoin utilities.
|
|
119
|
+
- Filling
|
|
120
|
+
- InspectionTool
|
|
121
|
+
- Ghost in the shell
|
|
122
|
+
|
|
123
|
+
**All objects in the process can be accessed using:**
|
|
124
|
+
```
|
|
125
|
+
self : the target of the shell,
|
|
126
|
+
this : the module which includes target.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**To include the shell in your wxPython application:**
|
|
130
|
+
```
|
|
131
|
+
>>> self.inspector = mwx.ShellFrame(self, target=self)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
## Autocomp key bindings
|
|
136
|
+
|
|
137
|
+
C-up : [0] retrieve previous history
|
|
138
|
+
C-down : [0] retrieve next history
|
|
139
|
+
C-j, M-j : [0] tooltip of eval (for the selected or focused word)
|
|
140
|
+
C-h, M-h : [0] calltip of help (for the selected or focused func)
|
|
141
|
+
TAB : [1] history-comp-mode
|
|
142
|
+
M-p : [1] retrieve previous history in comp-mode
|
|
143
|
+
M-n : [1] retrieve next history in comp-mode
|
|
144
|
+
M-. : [2] word-comp-mode
|
|
145
|
+
M-/ : [3] apropos-comp-mode
|
|
146
|
+
M-, : [4] text-comp-mode
|
|
147
|
+
M-m : [5] module-comp-mode
|
|
148
|
+
* All completions [1--5] are incremental when pressed any alnums, and decremental when backspace.
|
|
149
|
+
See [key bindings](key-bindings.md) for more information.
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
## Magic syntax
|
|
153
|
+
|
|
154
|
+
- quoteback : ```x`y --> y=x | x`y`z --> z=y=x```
|
|
155
|
+
|
|
156
|
+
- pullback : ```x@y --> y(x) | x@y@z --> z(y(x))```
|
|
157
|
+
|
|
158
|
+
- apropos : ```x.y? [not] p => shows apropos &optional (not-)matched by p:predicates```
|
|
159
|
+
equiv. apropos(y, x [,ignorecase ?:True,??:False] [,pred=p])
|
|
160
|
+
y can contain regular expressions.
|
|
161
|
+
(RE) \\a:[a-z], \\A:[A-Z] can be used in addition.
|
|
162
|
+
p can be ?atom, ?callable, ?instance(*types), and
|
|
163
|
+
predicates imported from inspect
|
|
164
|
+
e.g., isclass, ismodule, ismethod, isfunction, etc.
|
|
165
|
+
|
|
166
|
+
* info : ?x --> info(x) shows short information
|
|
167
|
+
* help : ??x --> help(x) shows full description
|
|
168
|
+
* sx : !x --> sx(x) executes command in external shell
|
|
169
|
+
|
|
170
|
+
Note: The last three (*) are original syntax defined in wx.py.shell,
|
|
171
|
+
at present version, enabled with USE_MAGIC switch being on
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
## built-in utilities
|
|
175
|
+
|
|
176
|
+
@p : Synonym of print.
|
|
177
|
+
@pp : Synonym of pprint.
|
|
178
|
+
@mro : Display mro list and filename:lineno.
|
|
179
|
+
@where : Display filename:lineno.
|
|
180
|
+
@info : Short info.
|
|
181
|
+
@help : Full description.
|
|
182
|
+
@load : Load a file in Log.
|
|
183
|
+
@dive : Clone the shell with new target.
|
|
184
|
+
@debug : Open pdb debugger or event monitor.
|
|
185
|
+
@watch : Watch for events using event monitor.
|
|
186
|
+
@timeit : Measure CPU time (per one execution).
|
|
187
|
+
@profile : Profile a single function call.
|
|
188
|
+
@highlight : Highlight the widget.
|
|
189
|
+
@filling : Inspection using ``wx.lib.filling.Filling``.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
## Ghost in the shell
|
|
193
|
+
|
|
194
|
+
Ghost in the shell is the help system for divers,
|
|
195
|
+
which is a notebook-style window consists of four editors:
|
|
196
|
+
- scratch buffer
|
|
197
|
+
+ a temporary buffer
|
|
198
|
+
- Help buffer
|
|
199
|
+
+ piping text from info(?) and help(??)
|
|
200
|
+
- Logging buffer
|
|
201
|
+
+ logging debug process and the input-history
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
# Authors
|
|
205
|
+
|
|
206
|
+
* Kazuya O'moto - *Initial work* -
|
|
207
|
+
|
|
208
|
+
See also the list of who participated in this project.
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
# Attribution
|
|
212
|
+
|
|
213
|
+
Default icons are provided by `wx.ArtProvider`.
|
|
214
|
+
Optional icons are provided by:
|
|
215
|
+
|
|
216
|
+
- [famfamfam: Silk icons](http://www.famfamfam.com/lab/icons/silk/) designed by Mark James.
|
|
217
|
+
- [Tango desktop project](http://tango.freedesktop.org/Tango_Desktop_Project).
|
|
218
|
+
- [Iconify - Freedom to choose icons](https://iconify.design/).
|
|
219
|
+
|
|
220
|
+
Note:
|
|
221
|
+
Other icons could be attributed to other open sources.
|
|
222
|
+
This is a mish-mash of stuff from all over the internet.
|
|
223
|
+
If I missed an author credit or attribution, please let me know.
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
# License
|
|
227
|
+
|
|
228
|
+
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
mwx/__init__.py,sha256=nN62CGTWjME7Zz2h-jIRB8MxwuErIkHPGrlBzydkF0o,643
|
|
2
2
|
mwx/bookshelf.py,sha256=Y4xI2SrEO22DrI1hyyfFx7DfFZA8znOzX9RWMPsA2BE,5137
|
|
3
3
|
mwx/controls.py,sha256=jhru4HiIijb3QJz2elGt0in9soaR3xilgHsfItYY0JI,47595
|
|
4
|
-
mwx/framework.py,sha256=
|
|
4
|
+
mwx/framework.py,sha256=rp93Nh7eqeAWGpkjxp-NY84RYBfmI1Ahn_tauavWSbg,75475
|
|
5
5
|
mwx/graphman.py,sha256=A53ufapRAysL0wTCr1anrg_T_PqpumonnYn-swaC598,70165
|
|
6
6
|
mwx/images.py,sha256=_-Eh3xF7Khu42ivkYp97NXIzSNGbjcidqtWjZQFGtqE,47827
|
|
7
7
|
mwx/matplot2.py,sha256=xCJ_ZzdDEWmzctpPaOrzTnwXyHINP4nfFHweoTZa6ug,32899
|
|
8
8
|
mwx/matplot2g.py,sha256=3hS0ilXCif0mZkSufE_Rf-taRs3m1hIxiIFMuioYYuc,64371
|
|
9
9
|
mwx/matplot2lg.py,sha256=JRWjWnLJUytbSq6wxs4P0gbVUr3xoLSF6Wwqd5V_pJI,27404
|
|
10
10
|
mwx/mgplt.py,sha256=r56SFryorIgO12mvHJY-z6uwWsaPEqk6pHYwKWqbTY4,5663
|
|
11
|
-
mwx/nutshell.py,sha256=
|
|
11
|
+
mwx/nutshell.py,sha256=9SjAwZB0NkSe7K-REBXEaqYwgML7JVKbp2HkI6cLM54,141807
|
|
12
12
|
mwx/utilus.py,sha256=B76pDg6_kW8FMNdQ6xO0Bwy4KJ0laY98Gg6N3iqV7c8,37325
|
|
13
13
|
mwx/wxmon.py,sha256=f3V24EF7kdMlYF7usLYK9QE5KU6fSu0jVqsvwAiA-Ag,12647
|
|
14
14
|
mwx/wxpdb.py,sha256=lLowkkAgMhPFHAfklD7wZHq0qbSMjRxnBFtSajmVgME,19133
|
|
@@ -21,8 +21,8 @@ mwx/plugins/frame_listview.py,sha256=hbApzZWa9-BmQthu7uZBlBbGbtf4iJ_prO8IhxoGMs8
|
|
|
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=fumUG1F5M9TL-Dfqni4G85uk7TmvnUunTbdcPDV0vfo,16857
|
|
24
|
-
mwxlib-0.98.
|
|
25
|
-
mwxlib-0.98.
|
|
26
|
-
mwxlib-0.98.
|
|
27
|
-
mwxlib-0.98.
|
|
28
|
-
mwxlib-0.98.
|
|
24
|
+
mwxlib-0.98.6.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
|
|
25
|
+
mwxlib-0.98.6.dist-info/METADATA,sha256=RDfB4NPf48FHJKeGXjSM72yYzMlOlrs5nqqPqO45ToU,7411
|
|
26
|
+
mwxlib-0.98.6.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
|
|
27
|
+
mwxlib-0.98.6.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
28
|
+
mwxlib-0.98.6.dist-info/RECORD,,
|
mwxlib-0.98.5.dist-info/METADATA
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: mwxlib
|
|
3
|
-
Version: 0.98.5
|
|
4
|
-
Summary: A wrapper of matplotlib and wxPython (phoenix)
|
|
5
|
-
Home-page: https://github.com/komoto48g/mwxlib
|
|
6
|
-
Author: Kazuya O'moto
|
|
7
|
-
Author-email: komoto@jeol.co.jp
|
|
8
|
-
License: MIT
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
16
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
17
|
-
License-File: LICENSE
|
|
18
|
-
Requires-Dist: wxpython
|
|
19
|
-
Requires-Dist: matplotlib
|
|
20
|
-
Requires-Dist: opencv-python
|
|
21
|
-
Requires-Dist: scipy
|
|
22
|
-
|
|
23
|
-
Project description
|
|
24
|
-
===================
|
|
25
|
-
|
|
26
|
-
Welcome to mwxlib project!
|
|
27
|
-
The mwxlib is the Python package based on matplotlib/wx and wxPython shell extension.
|
|
28
|
-
|
|
29
|
-
For more information please refer to the `Readme file <https://github.com/komoto48g/mwxlib>`_ and demos.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
How to use
|
|
33
|
-
----------
|
|
34
|
-
|
|
35
|
-
mwx.deb is wx.py.shell-base inspector used for debugging in the target process.
|
|
36
|
-
|
|
37
|
-
>>> import mwx; mwx.deb()
|
|
38
|
-
|
|
39
|
-
It is very easy to include the shell in your wxPython application.
|
|
40
|
-
|
|
41
|
-
>>> self.inspector = mwx.ShellFrame(self, target=self)
|
|
42
|
-
|
|
43
|
-
As you are diving into the python process, you can watch, inspect, and debug the target.
|
|
44
|
-
|
|
45
|
-
Enjoy diving!
|
|
46
|
-
|
|
47
|
-
:memo:
|
|
48
|
-
mwxlib creates ~/.mwxlib/ in your home directory.
|
|
49
|
-
This includes history, logs, dump files used to report when an error occurs.
|
|
50
|
-
|
|
51
|
-
:memo:
|
|
52
|
-
At the first startup, it takes some time to collect module information and create a dictionary.
|
|
53
|
-
The collected module name is used for completion at the time of input in the shell.
|
|
54
|
-
If you start the shell while pressing [C-S-], the dictionary will be recreated.
|
|
File without changes
|
|
File without changes
|