summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-08-10 16:23:51 +0000
committerChris McDonough <chrism@agendaless.com>2010-08-10 16:23:51 +0000
commit3c2ed7f1aac4b88fba1c6ee4721ab11c0b3251ed (patch)
tree36a1562ec7e5e4ee817ca333dcce36d65f2f50d1
parent1e0e9bfb294dbd91e1415872fe5e2957421b182e (diff)
downloadpyramid-3c2ed7f1aac4b88fba1c6ee4721ab11c0b3251ed.tar.gz
pyramid-3c2ed7f1aac4b88fba1c6ee4721ab11c0b3251ed.tar.bz2
pyramid-3c2ed7f1aac4b88fba1c6ee4721ab11c0b3251ed.zip
use imp.get_suffixes indirection for package file names
-rw-r--r--repoze/bfg/path.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/repoze/bfg/path.py b/repoze/bfg/path.py
index 0afdf777d..bb27e556a 100644
--- a/repoze/bfg/path.py
+++ b/repoze/bfg/path.py
@@ -1,6 +1,11 @@
import os
import pkg_resources
import sys
+import imp
+
+ignore_types = [ imp.C_EXTENSION, imp.C_BUILTIN ]
+init_names = [ '__init__%s' % x[0] for x in imp.get_suffixes() if
+ x[0] and x[2] not in ignore_types ]
def caller_path(path, level=2):
if not os.path.isabs(path):
@@ -25,7 +30,7 @@ def package_name(pkg_or_module):
pkg_filename = pkg_or_module.__file__
pkg_name = pkg_or_module.__name__
splitted = os.path.split(pkg_filename)
- if splitted[-1] in ('__init__.py', '__init__.pyc', '__init__.pyo'):
+ if splitted[-1] in init_names:
# it's a package
return pkg_name
return pkg_name.rsplit('.', 1)[0]