• Just van Rossum's avatar
    patch attached to sf item #643711: · e29310a2
    Just van Rossum yazdı
    any_missing() returns less bogus missing modules.
    
    - I've rewritten scan_code() more or less from scratch,
    factored bits and pieces out for readability.
    - keep track of global assignments and failed imports per
    module; use this to determine whether the Y in "from X
    import Y" is a submodule or just a global name. This is not
    100% doable: you can't tell which symbols are imported when
    doing a star import of a non-Python module short of actually
    importing it.
    - added a new method to ModuleFinder: any_missing_maybe(),
    which returns *two* lists, one with certain misses, one with
    possible misses. The possible misses are *very* often false
    alarms, so it's useful to keep this list separate.
    any_misses() now simply returns the union of
    any_missing_maybe().
    
    TODO: documentation, test_modulefinder.py
    e29310a2
modulefinder.py 20.2 KB