diff options
| author | ianb <devnull@localhost> | 2005-05-30 20:46:42 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-05-30 20:46:42 +0000 |
| commit | 96926020d9b9b7886f98bc54652ebbc5c9b3274b (patch) | |
| tree | 2ac6a80c750bce8b14326ead18709e1d031cc9b3 /paste/util | |
| parent | 36bdc0f806b528097c652487016d9ec94562474d (diff) | |
| download | paste-96926020d9b9b7886f98bc54652ebbc5c9b3274b.tar.gz | |
Make sure URLParser is given proper package names
Diffstat (limited to 'paste/util')
| -rw-r--r-- | paste/util/findpackage.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/paste/util/findpackage.py b/paste/util/findpackage.py new file mode 100644 index 0000000..276e216 --- /dev/null +++ b/paste/util/findpackage.py @@ -0,0 +1,22 @@ +import sys +import os + +def find_package(dir): + """ + Given a directory, finds the equivalent package name. If it + is directly in sys.path, returns ''. + """ + orig_dir = dir + path = sys.path + packages = [] + last_dir = None + while 1: + if dir in path: + return '.'.join(packages) + packages.insert(0, os.path.basename(dir)) + dir = os.path.dirname(dir) + if last_dir == dir: + raise ValueError( + "%s is not under any path found in sys.path" % orig_dir) + last_dir = dir + |
