util:plugin: modnames() should only list *.py or *.pyc files.
authorW. Trevor King <wking@tremily.us>
Tue, 28 Aug 2012 00:52:52 +0000 (20:52 -0400)
committerW. Trevor King <wking@tremily.us>
Tue, 28 Aug 2012 00:52:52 +0000 (20:52 -0400)
By appending '.py' to *everything*, it was listing '__pycache__' for
Python 3.

libbe/util/plugin.py

index ba563eb1e6eb28aa1131e07527b3ff495f68cb44..ca5686dee7297fea6f203a8bf6dc25c13e9b1ba9 100644 (file)
@@ -75,7 +75,9 @@ def modnames(prefix):
     else:
         modfiles = os.listdir(os.path.join(_PLUGIN_PATH, *components))
     # normalize .py/.pyc extensions and sort
-    modfiles = sorted(set(os.path.splitext(f)[0] + '.py' for f in modfiles))
+    base_ext = [os.path.splitext(f) for f in modfiles]
+    modfiles = sorted(set(
+            base + '.py' for base,ext in base_ext if ext in ['.py', '.pyc']))
     for modfile in modfiles:
         if modfile.startswith('.') or not modfile:
             continue # the occasional emacs temporary file or .* file