| # We are exposing all subpackages to the end-user. | |
| # Because of possible inter-dependency, we want to avoid | |
| # the cyclic imports, thus implementing lazy version | |
| # as per https://peps.python.org/pep-0562/ | |
| from typing import TYPE_CHECKING as _TYPE_CHECKING | |
| if _TYPE_CHECKING: | |
| from types import ModuleType | |
| from torch.ao.nn import ( # noqa: TC004 | |
| intrinsic as intrinsic, | |
| qat as qat, | |
| quantizable as quantizable, | |
| quantized as quantized, | |
| sparse as sparse, | |
| ) | |
| __all__ = [ | |
| "intrinsic", | |
| "qat", | |
| "quantizable", | |
| "quantized", | |
| "sparse", | |
| ] | |
| def __getattr__(name: str) -> "ModuleType": | |
| if name in __all__: | |
| import importlib | |
| return importlib.import_module("." + name, __name__) | |
| raise AttributeError(f"module {__name__!r} has no attribute {name!r}") | |