5
from pyflakes.checker import Checker, ImportationFrom
7
# Do some monkey patching..
9
if isinstance(node.func, ast.Name) and node.func.id == 'lazy_import':
10
self.LAZY_IMPORT(node)
11
elif (isinstance(node.func, ast.Attribute) and
12
node.func.attr == 'lazy_import' and
13
node.func.value.id == 'lazy_import'):
14
self.LAZY_IMPORT(node)
15
return self.handleChildren(node)
19
def LAZY_IMPORT(self, node):
20
from breezy.lazy_import import ImportProcessor
21
processor = ImportProcessor()
22
if not isinstance(node.args[1], ast.Str):
23
# Not sure how to deal with this..
25
import_text = node.args[1].s
27
processor.lazy_import(scope, import_text)
28
for name, (path, sub, scope) in processor.imports.items():
29
importation = ImportationFrom(name, node, '.'.join(path), scope)
30
self.addBinding(node, importation)
32
Checker.LAZY_IMPORT = LAZY_IMPORT
35
if __name__ == '__main__':
36
from pyflakes import __main__