/
OS-Worldb968155
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
#
# SPDX-License-Identifier: Apache-2.0
__all__ = ["export_module"]
from typing import Callable, Optional, TypeVar
T = TypeVar("T")
# Global dictionary to store export module mappings
# Key: original symbol name (qualified by module)
# Value: target module where it should be documented
_PDOC_MODULE_EXPORT_MAPPINGS: dict[str, str] = {}
def export_module(module: str) -> Callable[[T], T]:
def decorator(cls: T) -> T:
original_module = getattr(cls, "__module__", None)
if original_module:
fqn = f"{original_module}.{cls.__name__}"
_PDOC_MODULE_EXPORT_MAPPINGS[fqn] = module
return cls
return decorator
def get_target_module(obj: object) -> Optional[str]:
"""Get the target module where an object should be documented."""
if not hasattr(obj, "__module__"):
return None
fqn = f"{obj.__module__}.{obj.__name__}"
return _PDOC_MODULE_EXPORT_MAPPINGS.get(fqn)