Commits

Armin Rigo committed 4b7575e

Add also this, which uses bsdopendirtype.py to expose
a version of py.cleanup.

(It is much faster than the py.cleanup from py lib,
but much slower than using 'bsdopendirtype.c' from
'https://bitbucket.org/arigo/arigo/raw/default/hack/bin';.
I suppose it is a nice benchmark.)

Comments (0)

Files changed (1)

+#! /usr/bin/env python
+import sys, os, stat
+from bsdopendirtype import opendir
+
+def clean(path):
+    global count
+    try:
+        content = opendir(path)
+    except OSError:
+        print >> sys.stderr, "skipping", path
+        return
+    for filename, smode in content:
+        if stat.S_ISDIR(smode):
+            clean(filename)
+            if filename.endswith('/__pycache__'):
+                try:
+                    os.rmdir(filename)
+                except OSError:
+                    pass
+        elif (filename.endswith('.pyc') or filename.endswith('.pyo') or
+              filename.endswith('.pyc~') or filename.endswith('.pyo~')):
+            os.unlink(filename)
+            count += 1
+
+count = 0
+
+for arg in sys.argv[1:] or ['.']:
+    print "cleaning path", arg, "of .pyc/.pyo/__pycache__ files"
+    clean(arg)
+
+print "%d files removed" % (count,)