a small tool for python development
pip install -r requestments.txt pip install DevTool Image Translation alpha version. is not good when image is small. and needs to be smoothed.
is going to develop a tool, crop an image, using OCR to get words ,translate.
Drawing simple UML and ER diagram supported.
test script can use this
- converting entities to images is under construction. See here
-
merge some usage from 'show-and-search'
-
add function plot
To use this decorator, try testPlot.py, effect:
@traceplot(False) def add1(a, b): c = 3 d = 4 e = c + d return a + b + e @traceplot() def add2(a, b): c = 3 d = 4 e = c + d return a + b + e if __name__ == "__main__": add1(3,4) add2(3,4) (base) PS D:\testALg\mask2json\devTool\dev-tool-for-python> & D:/anaconda/python.exe d:/testALg/mask2json/devTool/dev-tool-for-python/testPlot.py call __main__.add1:35 {'a': 3, 'b': 4} None line __main__.add1:37 {'a': 3, 'b': 4} None line __main__.add1:38 {'a': 3, 'b': 4, 'c': 3} None line __main__.add1:39 {'a': 3, 'b': 4, 'c': 3, 'd': 4} None line __main__.add1:40 {'a': 3, 'b': 4, 'c': 3, 'd': 4, 'e': 7} None return __main__.add1:40 {'a': 3, 'b': 4, 'c': 3, 'd': 4, 'e': 7} 14 section1 _____________________ | call | | __main__ | | add2:42 | | None | |_____________________| | | | | V section2 _____________________ | line | | __main__ | | add2:44 | | None | |_____________________| | | | | V section3 _____________________ | line | | __main__ | | add2:45 | | None | |_____________________| | | | | V section4 _____________________ | line | | __main__ | | add2:46 | | None | |_____________________| | | | | V section5 _____________________ | line | | __main__ | | add2:47 | | None | |_____________________| | | | | V section6 _____________________ | return | | __main__ | | add2:47 | | 14 | |_____________________| | | O -
running function with a int number as the memory threshold.
@running(mThres=5) def test11(): i = 0 while i <= 2: print(test11.__name__ + ' running') time.sleep(1.5) i += 1test11 running memory : 21MB, memory_persent : 0.261%, cpu_percent : 0.0
This function out of memory with threshold 5 MB, but got 21 MB during runtime.
- add decorator "running", see here
To use this decorator, try testWrap.test10, effect:
(base) PS D:\testALg\mask2json\devTool\dev-tool-for-python> python .\testWrap.py test10 running memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 test10 running memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 test10 running memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 memory : 21MB, memory_persent : 0.264%, cpu_percent : 0.0 Total ============================================================= Used time: 9.000941753387451 s, Average memory: 21.0 MB, Average memory percent: 0.264 %, Average cpu percent: 0.0 % , Average used gpu: 0.0 MB. ============================================================= from devtool.devTool import DevTool DevTool.logFilter(*kwds, **params) kws are the keywords to be searched,params include path,since and until under this version.
To record log file easily,try this.
from devtool import logit @logit() def test4(): x = 1 / 0 test4() then DevLog/devlog.log will be created and log information will be added.
2021-01-09 09:49:00,143 - DevTool - ERROR - __main__.test4 Traceback (most recent call last): File "D:\dev-tool-for-python\devtool\__init__.py", line 112, in execute func(*args, **kwargs) File ".\testWrap.py", line 35, in test4 x = 1 / 0 ZeroDivisionError: division by zero @logit can add three params: save,load,ignore
@save ,to record the function ,params and result to DevLog/devCache.dump
@load, load result from DevLog/devCache.dump if the function costs much time. if the params are same to the stored params, then return the result. Otherwise, excute again.
@ignore, force to execute the function
@logit(save=True,load=True,ignore=False) def test8(a=1,b=2): import time rs = 'aaaaab' t1 = time.time() time.sleep(5) print(time.time()-t1) return rs if __name__ == "__main__": a = test8(a=3,b=4) print(a) first time:
(base) PS D:\dev-tool-for-python> python .\testWrap.py 5.01481556892395 aaaaab second time:
(base) PS D:\dev-tool-for-python> python .\testWrap.py aaaaab from devtool.devTool import DevTool if __name__ == "__main__": DevTool.initProject('Test') If 'DevTool.initProject' got a param 'tree=True', then
This script needs a parameter "path",but got "",using D:\testALg\mask2json\devTool\dev-tool-for-python\Test instead. Init finishes. . |-- main.py |-- static |-- tests |-- utils | |-- __init__.py The structure of project is stored in style.yaml.
MINE: scripts: main : root/main.py utils_init : root/utils/__init__.py folders: static : root/static utils : root/utils tests : root/tests 


