diff -r 4be9a79b49b1 -r c58a403aa830 mercurial/packagescan.py --- a/mercurial/packagescan.py Wed May 17 13:21:36 2006 -0500 +++ b/mercurial/packagescan.py Fri May 19 08:54:28 2006 -0700 @@ -1,5 +1,6 @@ # packagescan.py - Helper module for identifing used modules. # Used for the py2exe distutil. +# This module must be the first mercurial module imported in setup.py # # Copyright 2005 Volker Kleinfeld # @@ -8,10 +9,16 @@ import glob import os import sys -import demandload import ihooks -requiredmodules = {} # Will contain the modules imported by demandload +# Install this module as fake demandload module +sys.modules['mercurial.demandload'] = sys.modules[__name__] + +# Requiredmodules contains the modules imported by demandload. +# Please note that demandload can be invoked before the +# mercurial.packagescan.scan method is invoked in case a mercurial +# module is imported. +requiredmodules = {} def demandload(scope, modules): """ fake demandload function that collects the required modules """ for m in modules.split(): @@ -26,7 +33,7 @@ scope[module] = mod requiredmodules[mod.__name__] = 1 -def getmodules(libpath,packagename): +def scan(libpath,packagename): """ helper for finding all required modules of package """ # Use the package in the build directory libpath = os.path.abspath(libpath) @@ -45,8 +52,6 @@ pymodulefiles = glob.glob('*.py') extmodulefiles = glob.glob('*.pyd') os.chdir(cwd) - # Install a fake demandload module - sys.modules['mercurial.demandload'] = sys.modules['mercurial.packagescan'] # Import all python modules and by that run the fake demandload for m in pymodulefiles: if m == '__init__.py': continue @@ -62,8 +67,9 @@ fullname = packagename+'.'+mname __import__(fullname,tmp,tmp) requiredmodules[fullname] = 1 - includes = requiredmodules.keys() - return includes + +def getmodules(): + return requiredmodules.keys() def importfrom(filename): """