do not try to package lsprof if not available.
--- a/mercurial/lsprof.py Fri Jun 23 18:23:42 2006 -0700
+++ b/mercurial/lsprof.py Fri Jun 23 19:20:22 2006 -0700
@@ -4,7 +4,13 @@
# small modifications made
import sys
-from _lsprof import Profiler, profiler_entry, profiler_subentry
+try:
+ from _lsprof import Profiler, profiler_entry, profiler_subentry
+except ImportError, inst:
+ import packagescan
+ if packagescan.scan_in_progress:
+ raise packagescan.SkipPackage('_lsprof not available')
+ raise
__all__ = ['profile', 'Stats']
--- a/mercurial/packagescan.py Fri Jun 23 18:23:42 2006 -0700
+++ b/mercurial/packagescan.py Fri Jun 23 19:20:22 2006 -0700
@@ -60,8 +60,16 @@
if type(scope[f]) == types.ModuleType:
requiredmodules[scope[f].__name__] = 1
+class SkipPackage(Exception):
+ def __init__(self, reason):
+ self.reason = reason
+
+scan_in_progress = False
+
def scan(libpath,packagename):
""" helper for finding all required modules of package <packagename> """
+ global scan_in_progress
+ scan_in_progress = True
# Use the package in the build directory
libpath = os.path.abspath(libpath)
sys.path.insert(0,libpath)
@@ -85,7 +93,11 @@
tmp = {}
mname,ext = os.path.splitext(m)
fullname = packagename+'.'+mname
- __import__(fullname,tmp,tmp)
+ try:
+ __import__(fullname,tmp,tmp)
+ except SkipPackage, inst:
+ print >> sys.stderr, 'skipping %s: %s' % (fullname, inst.reason)
+ continue
requiredmodules[fullname] = 1
# Import all extension modules and by that run the fake demandload
for m in extmodulefiles: