Given an AST for the entire file, generate a file group complete with subgroups, nodes, etc. :param tree ast: :param filename str: :param extension str: :rtype: Group
(tree, filename, extension)
| 331 | |
| 332 | |
| 333 | def make_file_group(tree, filename, extension): |
| 334 | """ |
| 335 | Given an AST for the entire file, generate a file group complete with |
| 336 | subgroups, nodes, etc. |
| 337 | |
| 338 | :param tree ast: |
| 339 | :param filename str: |
| 340 | :param extension str: |
| 341 | |
| 342 | :rtype: Group |
| 343 | """ |
| 344 | language = LANGUAGES[extension] |
| 345 | |
| 346 | subgroup_trees, node_trees, body_trees = language.separate_namespaces(tree) |
| 347 | group_type = GROUP_TYPE.FILE |
| 348 | token = os.path.split(filename)[-1].rsplit('.' + extension, 1)[0] |
| 349 | line_number = 0 |
| 350 | display_name = 'File' |
| 351 | import_tokens = language.file_import_tokens(filename) |
| 352 | |
| 353 | file_group = Group(token, group_type, display_name, import_tokens, |
| 354 | line_number, parent=None) |
| 355 | for node_tree in node_trees: |
| 356 | for new_node in language.make_nodes(node_tree, parent=file_group): |
| 357 | file_group.add_node(new_node) |
| 358 | |
| 359 | file_group.add_node(language.make_root_node(body_trees, parent=file_group), is_root=True) |
| 360 | |
| 361 | for subgroup_tree in subgroup_trees: |
| 362 | file_group.add_subgroup(language.make_class_group(subgroup_tree, parent=file_group)) |
| 363 | return file_group |
| 364 | |
| 365 | |
| 366 | def _find_link_for_call(call, node_a, all_nodes): |
no test coverage detected