from enum import Enum from types import ModuleType from typing import Final, Literal as L, TypedDict, overload, type_check_only from typing_extensions import NotRequired _CompilerConfigDictValue = TypedDict( "_CompilerConfigDictValue", { "name": str, "linker": str, "version": str, "commands": str, "args": str, "linker args": str, }, ) _CompilerConfigDict = TypedDict( "_CompilerConfigDict", { "c": _CompilerConfigDictValue, "cython": _CompilerConfigDictValue, "c++": _CompilerConfigDictValue, }, ) _MachineInformationDict = TypedDict( "_MachineInformationDict", { "host":_MachineInformationDictValue, "build": _MachineInformationDictValue, "cross-compiled": NotRequired[L[True]], }, ) @type_check_only class _MachineInformationDictValue(TypedDict): cpu: str family: str endian: L["little", "big"] system: str _BuildDependenciesDictValue = TypedDict( "_BuildDependenciesDictValue", { "name": str, "found": NotRequired[L[True]], "version": str, "include directory": str, "lib directory": str, "openblas configuration": str, "pc file directory": str, }, ) class _BuildDependenciesDict(TypedDict): blas: _BuildDependenciesDictValue lapack: _BuildDependenciesDictValue class _PythonInformationDict(TypedDict): path: str version: str _SIMDExtensionsDict = TypedDict( "_SIMDExtensionsDict", { "baseline": list[str], "found": list[str], "not found": list[str], }, ) _ConfigDict = TypedDict( "_ConfigDict", { "Compilers": _CompilerConfigDict, "Machine Information": _MachineInformationDict, "Build Dependencies": _BuildDependenciesDict, "Python Information": _PythonInformationDict, "SIMD Extensions": _SIMDExtensionsDict, }, ) ### __all__ = ["show_config"] CONFIG: Final[_ConfigDict] = ... class DisplayModes(Enum): stdout = "stdout" dicts = "dicts" def _check_pyyaml() -> ModuleType: ... @overload def show(mode: L["stdout"] = "stdout") -> None: ... @overload def show(mode: L["dicts"]) -> _ConfigDict: ... @overload def show_config(mode: L["stdout"] = "stdout") -> None: ... @overload def show_config(mode: L["dicts"]) -> _ConfigDict: ...