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