From 7f51f0074b6d727a01fea0290ed0988dd51ad288 Mon Sep 17 00:00:00 2001 From: Giampaolo Rodola Date: Thu, 27 Oct 2016 20:11:57 +0200 Subject: [PATCH 1/2] bench script: add psutil ver --- scripts/internal/bench_oneshot.py | 4 ++-- scripts/internal/bench_oneshot_2.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/internal/bench_oneshot.py b/scripts/internal/bench_oneshot.py index ba179d4c4..0a9490f9c 100755 --- a/scripts/internal/bench_oneshot.py +++ b/scripts/internal/bench_oneshot.py @@ -109,8 +109,8 @@ def call_oneshot(funs): def main(): - print("%s methods involved on platform %r (%s iterations):" % ( - len(names), sys.platform, ITERATIONS)) + print("%s methods involved on platform %r (%s iterations, psutil %s):" % ( + len(names), sys.platform, ITERATIONS, psutil.__version__)) for name in sorted(names): print(" " + name) diff --git a/scripts/internal/bench_oneshot_2.py b/scripts/internal/bench_oneshot_2.py index c751a5851..a25d1806e 100644 --- a/scripts/internal/bench_oneshot_2.py +++ b/scripts/internal/bench_oneshot_2.py @@ -41,8 +41,8 @@ def main(): args = runner.parse_args() if not args.worker: - print("%s methods involved on platform %r:" % ( - len(names), sys.platform)) + print("%s methods involved on platform %r (psutil %s):" % ( + len(names), sys.platform, psutil.__version__)) for name in sorted(names): print(" " + name) From 614d45928a3ac583433d2d56e0bcd0f946658607 Mon Sep 17 00:00:00 2001 From: Giampaolo Rodola Date: Thu, 27 Oct 2016 20:56:56 +0200 Subject: [PATCH 2/2] winmake clean: make it an order of magnitude faster; also update Makefile --- Makefile | 14 +++---- psutil/tests/__init__.py | 2 +- scripts/internal/winmake.py | 78 ++++++++++++++++++++++++++++--------- 3 files changed, 68 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 3c6343a3e..4a2d0eff7 100644 --- a/Makefile +++ b/Makefile @@ -34,16 +34,16 @@ all: test # Remove all build files. clean: - rm -rf `find . \ - -type f -name \*.pyc \ + rm -rf `find . -type d -name __pycache__ + -o -type f -name \*.bak \ + -o -type f -name \*.orig \ + -o -type f -name \*.pyc \ -o -type f -name \*.pyd \ -o -type f -name \*.pyo \ - -o -type f -name \*.so \ - -o -type f -name \*.~ \ - -o -type f -name \*.orig \ - -o -type f -name \*.bak \ -o -type f -name \*.rej \ - -o -type d -name __pycache__` + -o -type f -name \*.so \ + -o -type f -name \*.~ + -o -type f -name \*\$testfn` rm -rf \ *.core \ *.egg-info \ diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py index ca8b8fc77..883d92850 100644 --- a/psutil/tests/__init__.py +++ b/psutil/tests/__init__.py @@ -103,7 +103,7 @@ PYTHON = os.path.realpath(sys.executable) DEVNULL = open(os.devnull, 'r+') -TESTFILE_PREFIX = '$psutil' +TESTFILE_PREFIX = '$testfn' TESTFN = os.path.join(os.path.realpath(os.getcwd()), TESTFILE_PREFIX) _TESTFN = TESTFN + '-internal' TESTFN_UNICODE = TESTFN + "-ƒőő" diff --git a/scripts/internal/winmake.py b/scripts/internal/winmake.py index 714e02d65..4ea0d366a 100755 --- a/scripts/internal/winmake.py +++ b/scripts/internal/winmake.py @@ -109,6 +109,44 @@ def onerror(fun, path, excinfo): safe_remove(path) +def safe_remove(path): + try: + os.remove(path) + except OSError as err: + if err.errno != errno.ENOENT: + raise + else: + print("rm %s" % path) + + +def safe_rmtree(path): + def onerror(fun, path, excinfo): + exc = excinfo[1] + if exc.errno != errno.ENOENT: + raise + + existed = os.path.isdir(path) + shutil.rmtree(path, onerror=onerror) + if existed: + print("rmdir -f %s" % path) + + +def recursive_rm(*patterns): + """Recursively remove a file or dir by pattern.""" + for root, subdirs, subfiles in os.walk('.'): + root = os.path.normpath(root) + if root.startswith('.git/'): + continue + for file in subfiles: + for pattern in patterns: + if fnmatch.fnmatch(file, pattern): + safe_remove(os.path.join(root, file)) + for dir in subdirs: + for pattern in patterns: + if fnmatch.fnmatch(dir, pattern): + safe_rmtree(os.path.join(root, dir)) + + # =================================================================== # commands # =================================================================== @@ -200,24 +238,28 @@ def uninstall(): @cmd def clean(): """Deletes dev files""" - rm("*.egg-info", directory=True) - rm("*__pycache__", directory=True) - rm("build", directory=True) - rm("dist", directory=True) - rm("htmlcov", directory=True) - rm("tmp", directory=True) - - rm("*.bak") - rm("*.core") - rm("*.orig") - rm("*.pyc") - rm("*.pyd") - rm("*.pyo") - rm("*.rej") - rm("*.so") - rm("*.~") - rm(".coverage") - rm(".tox") + recursive_rm( + "$testfn*", + "*.bak", + "*.core", + "*.egg-info", + "*.orig", + "*.pyc", + "*.pyd", + "*.pyo", + "*.rej", + "*.so", + "*.~", + "*__pycache__", + ".coverage", + ".tox", + ) + safe_rmtree("build") + safe_rmtree(".coverage") + safe_rmtree("dist") + safe_rmtree("docs/_build") + safe_rmtree("htmlcov") + safe_rmtree("tmp") @cmd