numpy_proxy.py 805 B

12345678910111213141516171819202122232425262728293031323334353637
  1. from __future__ import annotations
  2. from typing import TYPE_CHECKING, Any
  3. from typing_extensions import override
  4. from .._utils import LazyProxy
  5. from ._common import MissingDependencyError, format_instructions
  6. if TYPE_CHECKING:
  7. import numpy as numpy
  8. NUMPY_INSTRUCTIONS = format_instructions(library="numpy", extra="voice_helpers")
  9. class NumpyProxy(LazyProxy[Any]):
  10. @override
  11. def __load__(self) -> Any:
  12. try:
  13. import numpy
  14. except ImportError as err:
  15. raise MissingDependencyError(NUMPY_INSTRUCTIONS) from err
  16. return numpy
  17. if not TYPE_CHECKING:
  18. numpy = NumpyProxy()
  19. def has_numpy() -> bool:
  20. try:
  21. import numpy # noqa: F401 # pyright: ignore[reportUnusedImport]
  22. except ImportError:
  23. return False
  24. return True