# HG changeset patch # User Vadim Gelfer # Date 1151115622 25200 # Node ID 976b6b2a1613432ebe7298a6fabd3c9354625334 # Parent 6dbb8ae0a0b3ccb932367a83f687af71f2ae8196 do not try to package lsprof if not available. diff -r 6dbb8ae0a0b3 -r 976b6b2a1613 mercurial/lsprof.py --- 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'] diff -r 6dbb8ae0a0b3 -r 976b6b2a1613 mercurial/packagescan.py --- 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 """ + 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: