def get_all_dependencies(manager: BuildManager, graph: Dict[str, State]) -> Dict[str, Set[str]]: """Return the fine-grained dependency map for an entire build.""" # Deps for each module were computed during build() or loaded from the cache. deps = {} # type: Dict[str, Set[str]] collect_dependencies(graph, deps, graph) TypeState.add_all_protocol_deps(deps) return deps
def get_all_dependencies(manager: BuildManager, graph: Dict[str, State]) -> Dict[str, Set[str]]: """Return the fine-grained dependency map for an entire build.""" # Deps for each module were computed during build() or loaded from the cache. deps = {} # type: Dict[str, Set[str]] collect_dependencies(graph, deps, graph) TypeState.add_all_protocol_deps(deps) return deps
def get_all_dependencies(manager: BuildManager, graph: Dict[str, State]) -> Dict[str, Set[str]]: """Return the fine-grained dependency map for an entire build.""" # Deps for each module were computed during build() or loaded from the cache. deps = manager.load_fine_grained_deps(FAKE_ROOT_MODULE) # type: Dict[str, Set[str]] for id in graph: if graph[id].tree is not None: merge_dependencies(graph[id].compute_fine_grained_deps(), deps) TypeState.add_all_protocol_deps(deps) return deps
def get_all_dependencies(manager: BuildManager, graph: Dict[str, State]) -> Dict[str, Set[str]]: """Return the fine-grained dependency map for an entire build.""" # Deps for each module were computed during build() or loaded from the cache. deps = manager.load_fine_grained_deps( FAKE_ROOT_MODULE) # type: Dict[str, Set[str]] for id in graph: if graph[id].tree is not None: merge_dependencies(graph[id].compute_fine_grained_deps(), deps) TypeState.add_all_protocol_deps(deps) return deps
def run_case(self, testcase: DataDrivenTestCase) -> None: src = '\n'.join(testcase.input) dump_all = '# __dump_all__' in src if testcase.name.endswith('python2'): python_version = defaults.PYTHON2_VERSION else: python_version = defaults.PYTHON3_VERSION options = parse_options(src, testcase, incremental_step=1) options.use_builtins_fixtures = True options.show_traceback = True options.cache_dir = os.devnull options.python_version = python_version options.export_types = True options.preserve_asts = True messages, files, type_map = self.build(src, options) a = messages if files is None or type_map is None: if not a: a = [ 'Unknown compile error (likely syntax error in test case or fixture)' ] else: deps = defaultdict(set) # type: DefaultDict[str, Set[str]] for module in files: if module in dumped_modules or dump_all and module not in ( 'abc', 'typing', 'mypy_extensions', 'typing_extensions', 'enum'): new_deps = get_dependencies(files[module], type_map, python_version, options) for source in new_deps: deps[source].update(new_deps[source]) TypeState.add_all_protocol_deps(deps) for source, targets in sorted(deps.items()): if source.startswith(('<enum', '<typing', '<mypy')): # Remove noise. continue line = '%s -> %s' % (source, ', '.join(sorted(targets))) # Clean up output a bit line = line.replace('__main__', 'm') a.append(line) assert_string_arrays_equal( testcase.output, a, 'Invalid output ({}, line {})'.format(testcase.file, testcase.line))
def run_case(self, testcase: DataDrivenTestCase) -> None: src = '\n'.join(testcase.input) dump_all = '# __dump_all__' in src if testcase.name.endswith('python2'): python_version = defaults.PYTHON2_VERSION else: python_version = defaults.PYTHON3_VERSION options = parse_options(src, testcase, incremental_step=1) options.use_builtins_fixtures = True options.show_traceback = True options.cache_dir = os.devnull options.python_version = python_version options.export_types = True messages, files, type_map = self.build(src, options) a = messages if files is None or type_map is None: if not a: a = ['Unknown compile error (likely syntax error in test case or fixture)'] else: deps = defaultdict(set) # type: DefaultDict[str, Set[str]] for module in files: if module in dumped_modules or dump_all and module not in ('abc', 'typing', 'mypy_extensions', 'typing_extensions', 'enum'): new_deps = get_dependencies(files[module], type_map, python_version, options) for source in new_deps: deps[source].update(new_deps[source]) TypeState.add_all_protocol_deps(deps) for source, targets in sorted(deps.items()): if source.startswith('<enum.'): # Remove noise. continue line = '%s -> %s' % (source, ', '.join(sorted(targets))) # Clean up output a bit line = line.replace('__main__', 'm') a.append(line) assert_string_arrays_equal( testcase.output, a, 'Invalid output ({}, line {})'.format(testcase.file, testcase.line))
def dump_all_dependencies(modules: Dict[str, MypyFile], type_map: Dict[Expression, Type], python_version: Tuple[int, int]) -> None: """Generate dependencies for all interesting modules and print them to stdout.""" all_deps = {} # type: Dict[str, Set[str]] for id, node in modules.items(): # Uncomment for debugging: # print('processing', id) if id in ('builtins', 'typing') or '/typeshed/' in node.path: continue assert id == node.fullname() deps = get_dependencies(node, type_map, python_version) for trigger, targets in deps.items(): all_deps.setdefault(trigger, set()).update(targets) TypeState.add_all_protocol_deps(all_deps) for trigger, targets in sorted(all_deps.items(), key=lambda x: x[0]): print(trigger) for target in sorted(targets): print(' %s' % target)
def dump_all_dependencies(modules: Dict[str, MypyFile], type_map: Dict[Expression, Type], python_version: Tuple[int, int], options: Options) -> None: """Generate dependencies for all interesting modules and print them to stdout.""" all_deps = {} # type: Dict[str, Set[str]] for id, node in modules.items(): # Uncomment for debugging: # print('processing', id) if id in ('builtins', 'typing') or '/typeshed/' in node.path: continue assert id == node.fullname() deps = get_dependencies(node, type_map, python_version, options) for trigger, targets in deps.items(): all_deps.setdefault(trigger, set()).update(targets) TypeState.add_all_protocol_deps(all_deps) for trigger, targets in sorted(all_deps.items(), key=lambda x: x[0]): print(trigger) for target in sorted(targets): print(' %s' % target)