mirror of
https://github.com/bndr/pipreqs.git
synced 2025-06-06 03:25:21 +00:00
Merge pull request #95 from jonafato/cleanup-get_all_imports
Clean up set and file usage in get_all_imports
This commit is contained in:
commit
800abc43e3
@ -87,22 +87,22 @@ def get_all_imports(
|
|||||||
file_name = os.path.join(root, file_name)
|
file_name = os.path.join(root, file_name)
|
||||||
with open_func(file_name, "r", encoding=encoding) as f:
|
with open_func(file_name, "r", encoding=encoding) as f:
|
||||||
contents = f.read()
|
contents = f.read()
|
||||||
try:
|
try:
|
||||||
tree = ast.parse(contents)
|
tree = ast.parse(contents)
|
||||||
for node in ast.walk(tree):
|
for node in ast.walk(tree):
|
||||||
if isinstance(node, ast.Import):
|
if isinstance(node, ast.Import):
|
||||||
for subnode in node.names:
|
for subnode in node.names:
|
||||||
raw_imports.add(subnode.name)
|
raw_imports.add(subnode.name)
|
||||||
elif isinstance(node, ast.ImportFrom):
|
elif isinstance(node, ast.ImportFrom):
|
||||||
raw_imports.add(node.module)
|
raw_imports.add(node.module)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
if ignore_errors:
|
if ignore_errors:
|
||||||
traceback.print_exc(exc)
|
traceback.print_exc(exc)
|
||||||
logging.warn("Failed on file: %s" % file_name)
|
logging.warn("Failed on file: %s" % file_name)
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
logging.error("Failed on file: %s" % file_name)
|
logging.error("Failed on file: %s" % file_name)
|
||||||
raise exc
|
raise exc
|
||||||
|
|
||||||
# Clean up imports
|
# Clean up imports
|
||||||
for name in [n for n in raw_imports if n]:
|
for name in [n for n in raw_imports if n]:
|
||||||
@ -114,13 +114,14 @@ def get_all_imports(
|
|||||||
cleaned_name, _, _ = name.partition('.')
|
cleaned_name, _, _ = name.partition('.')
|
||||||
imports.add(cleaned_name)
|
imports.add(cleaned_name)
|
||||||
|
|
||||||
packages = set(imports) - set(set(candidates) & set(imports))
|
packages = imports - (set(candidates) & imports)
|
||||||
logging.debug('Found packages: {0}'.format(packages))
|
logging.debug('Found packages: {0}'.format(packages))
|
||||||
|
|
||||||
with open(join("stdlib"), "r") as f:
|
with open(join("stdlib"), "r") as f:
|
||||||
data = [x.strip() for x in f.readlines()]
|
data = {x.strip() for x in f}
|
||||||
data = [x for x in data if x not in py2_exclude] if py2 else data
|
|
||||||
return list(set(packages) - set(data))
|
data = {x for x in data if x not in py2_exclude} if py2 else data
|
||||||
|
return list(packages - data)
|
||||||
|
|
||||||
|
|
||||||
def filter_line(l):
|
def filter_line(l):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user