Imported from SVN by Bitbucket
This commit is contained in:
26
Paste-1.7.5.1-py2.6.egg/paste/util/findpackage.py
Executable file
26
Paste-1.7.5.1-py2.6.egg/paste/util/findpackage.py
Executable file
@@ -0,0 +1,26 @@
|
||||
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
|
||||
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
def find_package(dir):
|
||||
"""
|
||||
Given a directory, finds the equivalent package name. If it
|
||||
is directly in sys.path, returns ''.
|
||||
"""
|
||||
dir = os.path.abspath(dir)
|
||||
orig_dir = dir
|
||||
path = map(os.path.abspath, 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
|
||||
|
||||
Reference in New Issue
Block a user