# Magic utility that "redirects" to pythoncomXX.dll
from typing import Any

import pywintypes

pywintypes.__import_pywin32_system_module__("pythoncom", globals())


# This module dynamically re-exports from a C-Extension.
# `__getattr__() -> Any` prevents checkers attribute access errors
# without the use of external type stubs.
# So keep an empty stub behind `if TYPE_CHECKING` if pythoncom.frozen support is removed.
def __getattr__(name: str) -> Any:
    if name == "frozen":
        import sys
        import warnings

        warnings.warn(
            f"`pythoncom.frozen` used to expose `Py_FrozenFlag` from the C API. "
            + "`Py_FrozenFlag` is deprecated since Python 3.12. "
            + "Ever since pywin32 b200, loading the `win32com` module has silently "
            + "been replacing `pythoncom.frozen` with `sys.frozen`. "
            + 'Use `getattr(sys, "frozen", False)` directly instead.',
            DeprecationWarning,
            stacklevel=2,
        )
        return getattr(sys, "frozen", False)
    else:
        raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
