• Brandt Bucher's avatar
    bpo-35936: Updates to modulefinder (GH-11787) · 9d7b2c09
    Brandt Bucher yazdı
    * Properly handle SyntaxErrors in Python source files.
    
    SyntaxErrors in the target module will rise normally, while SyntaxErrors in dependencies will be added to badmodules. This includes a new regression test.
    
    * Fix name collision bug.
    
    This fixes an issue where a "fromlist" import with the same name as a previously failed import would be incorrectly added to badmodules. This includes a new regression test.
    
    * Replace mutable default values.
    
    Bound empty lists have been replaced with the "if param is None" idiom.
    
    * Replace deprecated imp usage.
    
    Constants imported from imp have been moved to private module-level constants, and ModuleFinder.find_module has been refactored to use importlib. Other than an improvement on how frozen builtin imports are reported (as the frozen imports they are, rather than the stdlib modules they *may* have originated from), these changes maintain complete compatibility with past versions... including odd behavior for returning relative (below current directory, but not a C extension) vs. absolute (above current directory, or a C extension) paths.
    
    Patch by Brandt Bucher.
    9d7b2c09
test_modulefinder.py 9.71 KB