Skip to main content

mdxify.parser

AST-based module parsing functionality.

Functions

extract_docstring

extract_docstring(node: ast.AST) -> str
Extract docstring from an AST node.

format_arg

format_arg(arg: ast.arg) -> str
Format a function argument.

extract_function_signature

extract_function_signature(node: ast.FunctionDef | ast.AsyncFunctionDef) -> str
Extract function signature.

extract_base_classes

extract_base_classes(node: ast.ClassDef) -> list[str]
Extract base class names from a class definition.

extract_methods_from_class

extract_methods_from_class(node: ast.ClassDef, include_internal: bool = False) -> list[dict[str, Any]]
Extract methods from a class definition.

parse_module_fast

parse_module_fast(module_name: str, source_file: Path, include_internal: bool = False, class_registry: ClassRegistry | None = None) -> dict[str, Any]
Parse a module quickly using AST.

parse_modules_with_inheritance

parse_modules_with_inheritance(modules_to_process: list[str], include_internal: bool = False) -> dict[str, dict[str, Any]]
Parse multiple modules with inheritance support, including parent classes in private modules.

Classes

ClassRegistry

Registry for tracking classes and their inheritance relationships. Methods:

add_class

add_class(self, module_name: str, class_name: str, class_info: dict[str, Any], source_file: Optional[str] = None)
Add a class to the registry.

get_class

get_class(self, class_name: str) -> dict[str, Any] | None
Get a class by its full name.

find_class_in_modules

find_class_in_modules(self, class_name: str, modules: list[str]) -> str | None
Find a class by name across a list of modules.

get_inherited_methods

get_inherited_methods(self, class_name: str, include_internal: bool = False) -> list[dict[str, Any]]
Get inherited methods for a class.
I