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.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/repoze/bfg/path.py b/repoze/bfg/path.py
new file mode 100644
index 000000000..fcd317fba
--- /dev/null
+++ b/repoze/bfg/path.py
@@ -0,0 +1,15 @@
+import os
+import sys
+
+def caller_path(path, level=2):
+ if not os.path.isabs(path):
+ package_globals = sys._getframe(level).f_globals
+ package_name = package_globals['__name__']
+ package = sys.modules[package_name]
+ prefix = package_path(package)
+ path = os.path.join(prefix, path)
+ return path
+
+def package_path(package):
+ return os.path.abspath(os.path.dirname(package.__file__))
+