MCPcopy Index your code
hub / github.com/RustPython/RustPython / _build_inheritance_info

Function _build_inheritance_info

scripts/update_lib/cmd_auto_mark.py:410–439  ·  view source on GitHub ↗

Build inheritance information from AST. Returns: class_bases: dict[str, list[str]] - parent classes for each class class_methods: dict[str, set[str]] - methods directly defined in each class

(tree: ast.Module)

Source from the content-addressed store, hash-verified

408
409
410def _build_inheritance_info(tree: ast.Module) -> tuple[dict, dict]:
411 """
412 Build inheritance information from AST.
413
414 Returns:
415 class_bases: dict[str, list[str]] - parent classes for each class
416 class_methods: dict[str, set[str]] - methods directly defined in each class
417 """
418 all_classes = {
419 node.name for node in ast.walk(tree) if isinstance(node, ast.ClassDef)
420 }
421 class_bases = {}
422 class_methods = {}
423
424 for node in ast.walk(tree):
425 if isinstance(node, ast.ClassDef):
426 bases = [
427 base.id
428 for base in node.bases
429 if isinstance(base, ast.Name) and base.id in all_classes
430 ]
431 class_bases[node.name] = bases
432 methods = {
433 item.name
434 for item in node.body
435 if isinstance(item, (ast.FunctionDef, ast.AsyncFunctionDef))
436 }
437 class_methods[node.name] = methods
438
439 return class_bases, class_methods
440
441
442def _find_method_definition(

Callers 3

_consolidate_to_parentFunction · 0.85
remove_expected_failuresFunction · 0.85

Calls 2

isinstanceFunction · 0.85
walkMethod · 0.45

Tested by

no test coverage detected