[pypy-commit] cffi default: Add also this, which uses bsdopendirtype.py to expose

arigo noreply at buildbot.pypy.org
Sun Jun 17 16:21:32 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r407:4b7575eb9037
Date: 2012-06-17 16:21 +0200
http://bitbucket.org/cffi/cffi/changeset/4b7575eb9037/

Log:	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.)

diff --git a/demo/py.cleanup b/demo/py.cleanup
new file mode 100755
--- /dev/null
+++ b/demo/py.cleanup
@@ -0,0 +1,31 @@
+#! /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,)


More information about the pypy-commit mailing list