summaryrefslogtreecommitdiff
path: root/repoze/bfg/path.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/path.py')
-rw-r--r--repoze/bfg/path.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/repoze/bfg/path.py b/repoze/bfg/path.py
index 5b827f04b..b79ff3816 100644
--- a/repoze/bfg/path.py
+++ b/repoze/bfg/path.py
@@ -16,6 +16,16 @@ def caller_module(level=2):
module = sys.modules[module_name]
return module
+def caller_package(level=2, caller_module=caller_module):
+ # caller_module in arglist for tests
+ module = caller_module(level+1)
+ if '__init__.py' in module.__file__:
+ # Module is a package
+ return module
+ # Go up one level to get package
+ package_name = module.__name__.rsplit('.', 1)[0]
+ return sys.modules[package_name]
+
def package_path(package):
# computing the abspath is actually kinda expensive so we memoize
# the result