From: Thomas V. S. <tho...@us...> - 2011-01-18 09:09:29
|
Update of /cvsroot/pychecker/pychecker/pychecker In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv15110/pychecker Modified Files: CodeChecks.py Log Message: * test/test_internal.py: Add another assert. * pychecker/CodeChecks.py: Fix getting module names with * in it when doing star imports. Index: CodeChecks.py =================================================================== RCS file: /cvsroot/pychecker/pychecker/pychecker/CodeChecks.py,v retrieving revision 1.223 retrieving revision 1.224 diff -u -d -r1.223 -r1.224 --- CodeChecks.py 13 Jan 2011 15:08:29 -0000 1.223 +++ CodeChecks.py 18 Jan 2011 09:09:21 -0000 1.224 @@ -719,12 +719,19 @@ code.popNextOp() if isinstance(fromOperandData, pcmodules.PyCheckerModule): - fullName = "%s.%s" % (fromOperandData.moduleName, operand) + moduleName = fromOperandData.moduleName + moduleDir = fromOperandData.moduleDir else: - fullName = "%s.%s" % (fromOperandData, operand) + moduleName = fromOperandData + moduleDir = None + + if operand == '*': + fullName = moduleName + else: + fullName = "%s.%s" % (moduleName, operand) try: - pcmodule = _getOrLoadPCModule(code, fullName) + pcmodule = _getOrLoadPCModule(code, fullName, moduleDir) code.pushStack(Stack.Item(pcmodule, types.ModuleType)) except ImportError: # FIXME: so what is it ? what do we push ? @@ -1681,7 +1688,7 @@ _checkNoEffect(code) -def _getOrLoadPCModule(code, name): +def _getOrLoadPCModule(code, name, moduleDir=None): """ Retrieve a previously loaded PyChecker module by name, or load it. @@ -1692,9 +1699,10 @@ @rtype: L{pcmodules.PyCheckerModule} """ - pcmodule = pcmodules.getPCModule(name) + assert '*' not in name, "Name %r contains an asterisk" % name + pcmodule = pcmodules.getPCModule(name, moduleDir=moduleDir) if not pcmodule: - pcmodule = pcmodules.PyCheckerModule(name) + pcmodule = pcmodules.PyCheckerModule(name, moduleDir=moduleDir) try: pcmodule.load(allowImportError=True) except ImportError, e: |