def get_import_names(module_node): """ :: ast.Node -> [str] Returns an iterable that contains module names that are imported in the source string. """ import_nodes = extract_import_node(module_node) import_names = itertools.imap(_format_import_node, import_nodes) return itertools.chain.from_iterable(import_names)
def get_module_accessors(module_node): """ :: ast.Node -> [str] Returns an iterable that contains all attribute accesses to modules imported in the given ast node. """ import_nodes = extract_import_node(module_node) module_context = ModuleContext(import_nodes) # attr_nodes = extract_attr_or_name_node(module_node) accessors = itertools.ifilter(bool, itertools.imap(module_context.access, attr_nodes)) return itertools.imap(operator.attrgetter('path'), accessors)
def get_module_accessors(module_node): """ :: ast.Node -> [str] Returns an iterable that contains all attribute accesses to modules imported in the given ast node. """ import_nodes = extract_import_node(module_node) module_context = ModuleContext(import_nodes) # attr_nodes = extract_attr_or_name_node(module_node) accessors = itertools.ifilter( bool, itertools.imap(module_context.access, attr_nodes)) return itertools.imap(operator.attrgetter('path'), accessors)