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