mwxlib 1.3.0__py3-none-any.whl → 1.3.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/bookshelf.py +27 -14
- mwx/controls.py +91 -80
- mwx/framework.py +108 -118
- mwx/graphman.py +17 -16
- mwx/matplot2.py +9 -9
- mwx/matplot2g.py +74 -59
- mwx/matplot2lg.py +6 -6
- mwx/nutshell.py +50 -39
- mwx/plugins/ffmpeg_view.py +1 -1
- mwx/wxpdb.py +7 -7
- {mwxlib-1.3.0.dist-info → mwxlib-1.3.11.dist-info}/METADATA +1 -2
- mwxlib-1.3.11.dist-info/RECORD +28 -0
- {mwxlib-1.3.0.dist-info → mwxlib-1.3.11.dist-info}/WHEEL +1 -1
- mwxlib-1.3.0.dist-info/LICENSE +0 -21
- mwxlib-1.3.0.dist-info/RECORD +0 -29
- {mwxlib-1.3.0.dist-info → mwxlib-1.3.11.dist-info}/top_level.txt +0 -0
mwx/nutshell.py
CHANGED
|
@@ -27,14 +27,14 @@ from wx.py.shell import Shell
|
|
|
27
27
|
from wx.py.editwindow import EditWindow
|
|
28
28
|
|
|
29
29
|
from .utilus import funcall as _F
|
|
30
|
-
from .utilus import ignore
|
|
30
|
+
from .utilus import ignore, typename
|
|
31
31
|
from .utilus import split_words, split_paren, split_tokens, find_modules
|
|
32
32
|
from .framework import CtrlInterface, AuiNotebook, Menu
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
## URL pattern (flag = re.M | re.A)
|
|
36
36
|
## url_re = r"https?://[\w/:%#$&?()~.=+-]+"
|
|
37
|
-
url_re = r"https?://[\w
|
|
37
|
+
url_re = r"https?://[\w/:%#$&?!@~.,;=+-]+" # excluding ()
|
|
38
38
|
|
|
39
39
|
## no-file pattern
|
|
40
40
|
nofile_re = r'[\/:*?"<>|]'
|
|
@@ -321,7 +321,9 @@ class AutoCompInterfaceMixin:
|
|
|
321
321
|
cmdl = self.GetTextRange(self.bol, self.cpos)
|
|
322
322
|
hint = re.search(r"[\w.]*$", cmdl).group(0) # extract the last word
|
|
323
323
|
|
|
324
|
-
ls = [x for x in self.fragmwords if x.startswith(hint)] # case-sensitive match
|
|
324
|
+
## ls = [x for x in self.fragmwords if x.startswith(hint)] # case-sensitive match
|
|
325
|
+
q = hint.lower()
|
|
326
|
+
ls = [x for x in self.fragmwords if x.lower().startswith(q)] # case-insensitive match
|
|
325
327
|
words = sorted(ls, key=lambda s:s.upper())
|
|
326
328
|
|
|
327
329
|
self._gen_autocomp(0, hint, words)
|
|
@@ -360,9 +362,9 @@ class AutoCompInterfaceMixin:
|
|
|
360
362
|
self.message("\b failed.", e)
|
|
361
363
|
return
|
|
362
364
|
else:
|
|
363
|
-
## Add unimported module names.
|
|
364
|
-
|
|
365
|
-
keys = [x[len(text)+1:] for x in self.modules if x.startswith(
|
|
365
|
+
## Add unimported module names (case-insensitive match).
|
|
366
|
+
q = f"{text}.{hint}".lower()
|
|
367
|
+
keys = [x[len(text)+1:] for x in self.modules if x.lower().startswith(q)]
|
|
366
368
|
modules.update(k for k in keys if '.' not in k)
|
|
367
369
|
|
|
368
370
|
elif (m := re.match(r"(import|from)\s+(.*)", cmdl)):
|
|
@@ -1108,7 +1110,7 @@ class EditorInterface(AutoCompInterfaceMixin, CtrlInterface):
|
|
|
1108
1110
|
self.ensureLineOnScreen(lc)
|
|
1109
1111
|
return lc
|
|
1110
1112
|
|
|
1111
|
-
def
|
|
1113
|
+
def get_indent_region(self, line):
|
|
1112
1114
|
"""Line numbers of folding head and tail containing the line."""
|
|
1113
1115
|
lc = line
|
|
1114
1116
|
le = lc + 1
|
|
@@ -1730,7 +1732,7 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
1730
1732
|
self.__mtime = -1
|
|
1731
1733
|
else:
|
|
1732
1734
|
try:
|
|
1733
|
-
self.__path.resolve(True) # Check if the path
|
|
1735
|
+
self.__path.resolve(True) # Check if the path is valid.
|
|
1734
1736
|
except FileNotFoundError:
|
|
1735
1737
|
self.__mtime = False # valid path (but not found)
|
|
1736
1738
|
except OSError:
|
|
@@ -1895,7 +1897,7 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
1895
1897
|
'*delete pressed' : (2, skip),
|
|
1896
1898
|
'*backspace pressed' : (2, skip),
|
|
1897
1899
|
'*backspace released' : (2, self.call_word_autocomp),
|
|
1898
|
-
|
|
1900
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
1899
1901
|
'*alt pressed' : (2, ),
|
|
1900
1902
|
'*ctrl pressed' : (2, ),
|
|
1901
1903
|
'*shift pressed' : (2, ),
|
|
@@ -1922,7 +1924,7 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
1922
1924
|
'*delete pressed' : (3, skip),
|
|
1923
1925
|
'*backspace pressed' : (3, skip),
|
|
1924
1926
|
'*backspace released' : (3, self.call_apropos_autocomp),
|
|
1925
|
-
|
|
1927
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
1926
1928
|
'*alt pressed' : (3, ),
|
|
1927
1929
|
'*ctrl pressed' : (3, ),
|
|
1928
1930
|
'*shift pressed' : (3, ),
|
|
@@ -2022,12 +2024,11 @@ class Buffer(EditorInterface, EditWindow):
|
|
|
2022
2024
|
## File I/O
|
|
2023
2025
|
## --------------------------------
|
|
2024
2026
|
|
|
2025
|
-
def _load_textfile(self, text
|
|
2027
|
+
def _load_textfile(self, text):
|
|
2026
2028
|
with self.off_readonly():
|
|
2027
2029
|
self.Text = text
|
|
2028
2030
|
self.EmptyUndoBuffer()
|
|
2029
2031
|
self.SetSavePoint()
|
|
2030
|
-
self.update_filestamp(filename)
|
|
2031
2032
|
self.handler('buffer_loaded', self)
|
|
2032
2033
|
|
|
2033
2034
|
def _load_file(self, filename):
|
|
@@ -2213,8 +2214,7 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2213
2214
|
evt.Skip()
|
|
2214
2215
|
|
|
2215
2216
|
def OnPageClose(self, evt): #<wx._aui.AuiNotebookEvent>
|
|
2216
|
-
|
|
2217
|
-
buf = nb.all_pages[evt.Selection]
|
|
2217
|
+
buf = self.GetPage(evt.Selection)
|
|
2218
2218
|
if buf.need_buffer_save:
|
|
2219
2219
|
if wx.MessageBox( # Confirm close.
|
|
2220
2220
|
"You are closing unsaved content.\n\n"
|
|
@@ -2274,13 +2274,6 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2274
2274
|
## Buffer list controls
|
|
2275
2275
|
## --------------------------------
|
|
2276
2276
|
|
|
2277
|
-
@property
|
|
2278
|
-
def all_buffers(self): # (deprecated) for backward compatibility
|
|
2279
|
-
"""Returns all buffer pages.
|
|
2280
|
-
cf. equiv. AuiNotebook.all_pages or get_pages()
|
|
2281
|
-
"""
|
|
2282
|
-
return [self.GetPage(j) for j in range(self.PageCount)]
|
|
2283
|
-
|
|
2284
2277
|
def get_all_buffers(self, fn=None):
|
|
2285
2278
|
"""Yields all buffers with specified fn:filename or code."""
|
|
2286
2279
|
if fn is None:
|
|
@@ -2355,18 +2348,34 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2355
2348
|
if j != -1:
|
|
2356
2349
|
self.DeletePage(j) # the focus moves
|
|
2357
2350
|
if not self.buffer: # no buffers
|
|
2358
|
-
self.new_buffer
|
|
2351
|
+
wx.CallAfter(self.new_buffer) # Note: post-call to avoid a crash.
|
|
2359
2352
|
|
|
2360
2353
|
def delete_all_buffers(self):
|
|
2361
2354
|
"""Initialize list of buffers."""
|
|
2362
2355
|
self.DeleteAllPages()
|
|
2363
|
-
self.new_buffer
|
|
2356
|
+
wx.CallAfter(self.new_buffer) # Note: post-call to avoid a crash.
|
|
2364
2357
|
|
|
2365
2358
|
def next_buffer(self):
|
|
2366
|
-
self.Selection
|
|
2359
|
+
if self.Selection < self.PageCount - 1:
|
|
2360
|
+
self.Selection += 1
|
|
2361
|
+
else:
|
|
2362
|
+
books = list(self.Parent.get_pages(type(self)))
|
|
2363
|
+
k = books.index(self)
|
|
2364
|
+
if k < len(books) - 1:
|
|
2365
|
+
other_editor = books[k+1]
|
|
2366
|
+
other_editor.Selection = 0
|
|
2367
|
+
other_editor.CurrentPage.SetFocus()
|
|
2367
2368
|
|
|
2368
2369
|
def previous_buffer(self):
|
|
2369
|
-
self.Selection
|
|
2370
|
+
if self.Selection > 0:
|
|
2371
|
+
self.Selection -= 1
|
|
2372
|
+
else:
|
|
2373
|
+
books = list(self.Parent.get_pages(type(self)))
|
|
2374
|
+
k = books.index(self)
|
|
2375
|
+
if k > 0:
|
|
2376
|
+
other_editor = books[k-1]
|
|
2377
|
+
other_editor.Selection = other_editor.PageCount - 1
|
|
2378
|
+
other_editor.CurrentPage.SetFocus()
|
|
2370
2379
|
|
|
2371
2380
|
## --------------------------------
|
|
2372
2381
|
## File I/O
|
|
@@ -2391,7 +2400,8 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2391
2400
|
elif not buf.need_buffer_load:
|
|
2392
2401
|
self.swap_buffer(buf, lineno)
|
|
2393
2402
|
return True
|
|
2394
|
-
buf._load_textfile(''.join(lines)
|
|
2403
|
+
buf._load_textfile(''.join(lines))
|
|
2404
|
+
buf.update_filestamp(filename)
|
|
2395
2405
|
self.swap_buffer(buf, lineno)
|
|
2396
2406
|
return True
|
|
2397
2407
|
return False
|
|
@@ -2421,7 +2431,8 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2421
2431
|
kwargs.setdefault('timeout', 3.0)
|
|
2422
2432
|
res = requests.get(filename, **kwargs)
|
|
2423
2433
|
if res.status_code == requests.codes.OK:
|
|
2424
|
-
buf._load_textfile(res.text
|
|
2434
|
+
buf._load_textfile(res.text)
|
|
2435
|
+
buf.update_filestamp(filename)
|
|
2425
2436
|
self.swap_buffer(buf, lineno)
|
|
2426
2437
|
return True
|
|
2427
2438
|
res.raise_for_status() # raise HTTP error; don't catch here.
|
|
@@ -2529,7 +2540,7 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2529
2540
|
style=wx.YES_NO|wx.ICON_INFORMATION) != wx.YES:
|
|
2530
2541
|
self.post_message("The close has been canceled.")
|
|
2531
2542
|
return None
|
|
2532
|
-
|
|
2543
|
+
self.delete_buffer(buf)
|
|
2533
2544
|
|
|
2534
2545
|
def kill_all_buffers(self):
|
|
2535
2546
|
for buf in self.get_all_buffers():
|
|
@@ -2542,7 +2553,7 @@ class EditorBook(AuiNotebook, CtrlInterface):
|
|
|
2542
2553
|
style=wx.YES_NO|wx.ICON_INFORMATION) != wx.YES:
|
|
2543
2554
|
self.post_message("The close has been canceled.")
|
|
2544
2555
|
return None
|
|
2545
|
-
|
|
2556
|
+
self.delete_all_buffers()
|
|
2546
2557
|
|
|
2547
2558
|
|
|
2548
2559
|
class Interpreter(interpreter.Interpreter):
|
|
@@ -2653,7 +2664,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2653
2664
|
|
|
2654
2665
|
C-up : [0] retrieve previous history
|
|
2655
2666
|
C-down : [0] retrieve next history
|
|
2656
|
-
C-j
|
|
2667
|
+
C-j : [0] tooltip of eval (for the selected or focused word)
|
|
2657
2668
|
C-h, M-h : [0] calltip of help (for the selected or focused func)
|
|
2658
2669
|
TAB : [1] history-comp
|
|
2659
2670
|
M-p : [1] retrieve previous history in history-comp mode
|
|
@@ -2904,7 +2915,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2904
2915
|
'*delete pressed' : (2, skip),
|
|
2905
2916
|
'*backspace pressed' : (2, self.OnBackspace),
|
|
2906
2917
|
'*backspace released' : (2, self.call_word_autocomp),
|
|
2907
|
-
|
|
2918
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
2908
2919
|
'C-j pressed' : (2, _F(self.eval_line)),
|
|
2909
2920
|
'*alt pressed' : (2, ),
|
|
2910
2921
|
'*ctrl pressed' : (2, ),
|
|
@@ -2932,7 +2943,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2932
2943
|
'*delete pressed' : (3, skip),
|
|
2933
2944
|
'*backspace pressed' : (3, self.OnBackspace),
|
|
2934
2945
|
'*backspace released' : (3, self.call_apropos_autocomp),
|
|
2935
|
-
|
|
2946
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
2936
2947
|
'C-j pressed' : (3, _F(self.eval_line)),
|
|
2937
2948
|
'*alt pressed' : (3, ),
|
|
2938
2949
|
'*ctrl pressed' : (3, ),
|
|
@@ -2960,7 +2971,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2960
2971
|
'*delete pressed' : (4, skip),
|
|
2961
2972
|
'*backspace pressed' : (4, self.OnBackspace),
|
|
2962
2973
|
'*backspace released' : (4, self.call_text_autocomp),
|
|
2963
|
-
|
|
2974
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
2964
2975
|
'C-j pressed' : (4, _F(self.eval_line)),
|
|
2965
2976
|
'*alt pressed' : (4, ),
|
|
2966
2977
|
'*ctrl pressed' : (4, ),
|
|
@@ -2989,7 +3000,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
2989
3000
|
'*delete pressed' : (5, skip),
|
|
2990
3001
|
'*backspace pressed' : (5, self.OnBackspace),
|
|
2991
3002
|
'*backspace released' : (5, self.call_module_autocomp),
|
|
2992
|
-
|
|
3003
|
+
'*S-backspace pressed' : (0, clear_autocomp, fork),
|
|
2993
3004
|
'*alt pressed' : (5, ),
|
|
2994
3005
|
'*ctrl pressed' : (5, ),
|
|
2995
3006
|
'*shift pressed' : (5, ),
|
|
@@ -3367,7 +3378,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3367
3378
|
(override) Don't remove trailing ps2 + spaces.
|
|
3368
3379
|
Don't invoke ``GotoLine``.
|
|
3369
3380
|
"""
|
|
3370
|
-
region = self.
|
|
3381
|
+
region = self.get_command_region(self.cline)
|
|
3371
3382
|
if region:
|
|
3372
3383
|
p, q = (self.PositionFromLine(x) for x in region)
|
|
3373
3384
|
p += len(sys.ps1)
|
|
@@ -3379,7 +3390,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3379
3390
|
return command
|
|
3380
3391
|
return ''
|
|
3381
3392
|
|
|
3382
|
-
def
|
|
3393
|
+
def get_command_region(self, line):
|
|
3383
3394
|
"""Line numbers of prompt head and tail containing the line."""
|
|
3384
3395
|
lc = line
|
|
3385
3396
|
le = lc + 1
|
|
@@ -3520,13 +3531,13 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3520
3531
|
"""Short information."""
|
|
3521
3532
|
doc = inspect.getdoc(obj)\
|
|
3522
3533
|
or "No information about {}".format(obj)
|
|
3523
|
-
self.parent.handler('add_help', doc) or print(doc)
|
|
3534
|
+
self.parent.handler('add_help', doc, typename(obj)) or print(doc)
|
|
3524
3535
|
|
|
3525
3536
|
def help(self, obj):
|
|
3526
3537
|
"""Full description."""
|
|
3527
3538
|
doc = pydoc.plain(pydoc.render_doc(obj))\
|
|
3528
3539
|
or "No description about {}".format(obj)
|
|
3529
|
-
self.parent.handler('add_help', doc) or print(doc)
|
|
3540
|
+
self.parent.handler('add_help', doc, typename(obj)) or print(doc)
|
|
3530
3541
|
|
|
3531
3542
|
def eval(self, text):
|
|
3532
3543
|
return eval(text, self.globals, self.locals)
|
|
@@ -3640,7 +3651,7 @@ class Nautilus(EditorInterface, Shell):
|
|
|
3640
3651
|
err = re.findall(py_error_re, msg, re.M)
|
|
3641
3652
|
lines = [int(ln) for fn, ln in err if fn == filename]
|
|
3642
3653
|
if lines:
|
|
3643
|
-
region = self.
|
|
3654
|
+
region = self.get_command_region(self.cline)
|
|
3644
3655
|
lx = region[0] + lines[-1] - 1
|
|
3645
3656
|
self.red_pointer = lx
|
|
3646
3657
|
self.message(e)
|
mwx/plugins/ffmpeg_view.py
CHANGED
|
@@ -115,7 +115,7 @@ class Plugin(Layer):
|
|
|
115
115
|
self.layout((self.mc,), expand=2)
|
|
116
116
|
self.layout((self.ss, self.to, self.rw, self.fw,
|
|
117
117
|
self.snp, self.crop, self.exp),
|
|
118
|
-
expand=0, row=7, style='button', lw=
|
|
118
|
+
expand=0, row=7, style='button', lw=28, cw=0, tw=64)
|
|
119
119
|
|
|
120
120
|
self.menu[0:5] = [
|
|
121
121
|
(1, "&Load file", Icon('open'),
|
mwx/wxpdb.py
CHANGED
|
@@ -103,7 +103,7 @@ class Debugger(Pdb):
|
|
|
103
103
|
pdb.input = _input
|
|
104
104
|
|
|
105
105
|
def _help():
|
|
106
|
-
self.parent.handler('add_help', pdb.__doc__)
|
|
106
|
+
self.parent.handler('add_help', pdb.__doc__, "pdb")
|
|
107
107
|
pdb.help = _help
|
|
108
108
|
|
|
109
109
|
def dispatch(evt):
|
|
@@ -277,7 +277,7 @@ class Debugger(Pdb):
|
|
|
277
277
|
## --------------------------------
|
|
278
278
|
|
|
279
279
|
def _markbp(self, lineno, style):
|
|
280
|
-
"""Add a
|
|
280
|
+
"""Add a mark to lineno, with the following style markers:
|
|
281
281
|
[1] white-arrow for breakpoints
|
|
282
282
|
[2] red-arrow for exception
|
|
283
283
|
"""
|
|
@@ -306,8 +306,8 @@ class Debugger(Pdb):
|
|
|
306
306
|
module = import_module(m.group(1))
|
|
307
307
|
filename = inspect.getfile(module)
|
|
308
308
|
|
|
309
|
-
editor = self.parent.
|
|
310
|
-
|
|
309
|
+
editor = next(self.parent.get_all_editors(code),
|
|
310
|
+
next(self.parent.get_all_editors(filename), None))
|
|
311
311
|
if not editor:
|
|
312
312
|
editor = self.parent.Log
|
|
313
313
|
## Note: Need a post-call for a thread debugging.
|
|
@@ -324,11 +324,11 @@ class Debugger(Pdb):
|
|
|
324
324
|
buffer = self.editor.buffer
|
|
325
325
|
if filename == buffer.filename:
|
|
326
326
|
if code != self.code:
|
|
327
|
-
buffer.markline = firstlineno - 1 # (o) entry:
|
|
327
|
+
buffer.markline = firstlineno - 1 # (o) entry:mark
|
|
328
328
|
buffer.goto_marker(1)
|
|
329
329
|
buffer.recenter(3)
|
|
330
330
|
buffer.goto_line(lineno - 1)
|
|
331
|
-
buffer.pointer = lineno - 1 # (->) pointer:
|
|
331
|
+
buffer.pointer = lineno - 1 # (->) pointer:mark
|
|
332
332
|
buffer.ensureLineMoreOnScreen(lineno - 1)
|
|
333
333
|
self.code = code
|
|
334
334
|
wx.CallAfter(_mark)
|
|
@@ -462,7 +462,7 @@ class Debugger(Pdb):
|
|
|
462
462
|
"""Print the stack entry frame_lineno (frame, lineno).
|
|
463
463
|
|
|
464
464
|
(override) Change prompt_prefix.
|
|
465
|
-
Add pointer:
|
|
465
|
+
Add pointer:mark when step next or jump.
|
|
466
466
|
"""
|
|
467
467
|
if self.verbose:
|
|
468
468
|
Pdb.print_stack_entry(self, frame_lineno,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: mwxlib
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.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
|
|
@@ -16,7 +16,6 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
17
17
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
|
-
License-File: LICENSE
|
|
20
19
|
Requires-Dist: wxpython>=4.2.0
|
|
21
20
|
Requires-Dist: matplotlib
|
|
22
21
|
Requires-Dist: opencv-python
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
mwx/__init__.py,sha256=pS7ZG8QKRypiFFiaWAq_opBB6I_1viZ0zUMk2TbjzE0,667
|
|
2
|
+
mwx/bookshelf.py,sha256=MXjrm_ryRGHvOFKu8wb10qz_oka70xW2yFbYjBMYfns,8140
|
|
3
|
+
mwx/controls.py,sha256=RssTROprNfgnRMiWVOoSSd8Fy0qwZ8DCrYM2f5Wgr4E,48610
|
|
4
|
+
mwx/framework.py,sha256=9H26L5rF3rxpBm0wInvt3oNhB9si6xNR-K5PbIoVx5c,76778
|
|
5
|
+
mwx/graphman.py,sha256=qA_tNq_9A5eNuujzmxha8ponAIQxZmMtJQkRkojuVYo,70398
|
|
6
|
+
mwx/images.py,sha256=oxCn0P-emiWujSS2gUgU5TUnr5cPjix2jBcjOBDr24I,48701
|
|
7
|
+
mwx/matplot2.py,sha256=Htwegq6N5G7oKSRCuajik5Dixd93i8PKVbkL7Azy99M,33150
|
|
8
|
+
mwx/matplot2g.py,sha256=H1PeLJk5P0KKMT6tmocpli5RSPNjnteA5GhbJTKEqIg,64869
|
|
9
|
+
mwx/matplot2lg.py,sha256=cb0EZXivccDQu4oFj5ddSUF9pEE4f5UuFJJK2ELItww,27404
|
|
10
|
+
mwx/mgplt.py,sha256=8mXbHpCmm7lz3XbAxOg7IVC7DaSGBEby1UfTlMl9kjk,5604
|
|
11
|
+
mwx/nutshell.py,sha256=XrPBcOCeUbnKi5-JjlpmZinkIJINimNsS82SXRxfv_s,142391
|
|
12
|
+
mwx/testsuite.py,sha256=Zk75onPSEn2tf0swS3l-vIn6yTXGB7allIyvJsPHj20,1229
|
|
13
|
+
mwx/utilus.py,sha256=bDeooo2bOcZwvkIdi0ElkT-qoblqzHNFsIveb72NFOo,37528
|
|
14
|
+
mwx/wxmon.py,sha256=yzWqrbY6LzpfRwQeytYUeqFhFuLVm_XEvrVAL_k0HBQ,12756
|
|
15
|
+
mwx/wxpdb.py,sha256=ih2iLcOgYnUX849YXO4niIYue6amuoG7nWdpr-X1jFw,18839
|
|
16
|
+
mwx/wxwil.py,sha256=hhyB1lPrF9ixeObxCOKQv0Theu-B-kpJg_yVU3EGSNg,5406
|
|
17
|
+
mwx/wxwit.py,sha256=1hHtMi2YEy2T_LnUpwdmrIdtCuvxMOFyykqnbq6jLP0,7294
|
|
18
|
+
mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
|
|
19
|
+
mwx/plugins/ffmpeg_view.py,sha256=r7cQPe8anAWoIn3HU_YyWRpsTJrvzji97LNIO1Gw0e0,11031
|
|
20
|
+
mwx/plugins/fft_view.py,sha256=08A_Y73XirV7kXpwf-v0mUA0Hr0MOfdMXv3tvL1hvWA,2789
|
|
21
|
+
mwx/plugins/frame_listview.py,sha256=gowjQ-ARNonMkDSXkQgPKq4U9YBJ-vQ0jK2krBVOdCs,10420
|
|
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.3.11.dist-info/METADATA,sha256=q5aFmjTSmVGQcb9lCf1xvhagruldOzi0LgMAJi3yClI,7434
|
|
26
|
+
mwxlib-1.3.11.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
27
|
+
mwxlib-1.3.11.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
28
|
+
mwxlib-1.3.11.dist-info/RECORD,,
|
mwxlib-1.3.0.dist-info/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2021 Kazuya O'moto
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
mwxlib-1.3.0.dist-info/RECORD
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
mwx/__init__.py,sha256=pS7ZG8QKRypiFFiaWAq_opBB6I_1viZ0zUMk2TbjzE0,667
|
|
2
|
-
mwx/bookshelf.py,sha256=REBMiiC2IE4MUtoDu5T8klFizBr4G0tdFrZinR2yVUg,7547
|
|
3
|
-
mwx/controls.py,sha256=ojMUTl-1YRVVEH32WBIK_NUED6UWAil6EGAYigqh5ak,48090
|
|
4
|
-
mwx/framework.py,sha256=TOKFx4epSTgHClbKtL--K_8gRSc7OwAHjl6tZpSDtlo,76805
|
|
5
|
-
mwx/graphman.py,sha256=knoleskaSdwu65jHNfzrnaCEaN1wHtr3ouQg4tM2doE,70335
|
|
6
|
-
mwx/images.py,sha256=oxCn0P-emiWujSS2gUgU5TUnr5cPjix2jBcjOBDr24I,48701
|
|
7
|
-
mwx/matplot2.py,sha256=Zwte-wwzCg_OHzsBniVgKdaNLzsvJaa1gc0n7VdAqxw,33150
|
|
8
|
-
mwx/matplot2g.py,sha256=ceeAjFkrDz49aSLo_9dIWZZd4HhnSjxe8u9G_ipBHek,64195
|
|
9
|
-
mwx/matplot2lg.py,sha256=JRWjWnLJUytbSq6wxs4P0gbVUr3xoLSF6Wwqd5V_pJI,27404
|
|
10
|
-
mwx/mgplt.py,sha256=8mXbHpCmm7lz3XbAxOg7IVC7DaSGBEby1UfTlMl9kjk,5604
|
|
11
|
-
mwx/nutshell.py,sha256=PUVlIac1HMIoaHj2m8ZUmiOIE_xcsWlTJifm9GRPAjM,141572
|
|
12
|
-
mwx/testsuite.py,sha256=Zk75onPSEn2tf0swS3l-vIn6yTXGB7allIyvJsPHj20,1229
|
|
13
|
-
mwx/utilus.py,sha256=bDeooo2bOcZwvkIdi0ElkT-qoblqzHNFsIveb72NFOo,37528
|
|
14
|
-
mwx/wxmon.py,sha256=yzWqrbY6LzpfRwQeytYUeqFhFuLVm_XEvrVAL_k0HBQ,12756
|
|
15
|
-
mwx/wxpdb.py,sha256=ge4hNfeigHGcpnioU1B_BJX_QZjNdtnokUrcZOxcEcI,18814
|
|
16
|
-
mwx/wxwil.py,sha256=hhyB1lPrF9ixeObxCOKQv0Theu-B-kpJg_yVU3EGSNg,5406
|
|
17
|
-
mwx/wxwit.py,sha256=1hHtMi2YEy2T_LnUpwdmrIdtCuvxMOFyykqnbq6jLP0,7294
|
|
18
|
-
mwx/plugins/__init__.py,sha256=jnJ-Sl9XJ_7BFDslD_r7dsbxsOT57q_IaEriV53XIGY,41
|
|
19
|
-
mwx/plugins/ffmpeg_view.py,sha256=NIHFJLPeliOXH3ke0NvQzYBhY0oeEP6dgZQofB5Ry1c,11031
|
|
20
|
-
mwx/plugins/fft_view.py,sha256=08A_Y73XirV7kXpwf-v0mUA0Hr0MOfdMXv3tvL1hvWA,2789
|
|
21
|
-
mwx/plugins/frame_listview.py,sha256=gowjQ-ARNonMkDSXkQgPKq4U9YBJ-vQ0jK2krBVOdCs,10420
|
|
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.3.0.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
|
|
26
|
-
mwxlib-1.3.0.dist-info/METADATA,sha256=0Q6nnQK4gPzt6Kgg98OVyzhNbMDIN9xwfy9tL3xYlY0,7456
|
|
27
|
-
mwxlib-1.3.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
28
|
-
mwxlib-1.3.0.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
29
|
-
mwxlib-1.3.0.dist-info/RECORD,,
|
|
File without changes
|