Skip to content

Commit b3025ef

Browse files
fix: Reduce import time of the library (#179)
Co-authored-by: pyansys-ci-bot <[email protected]>
1 parent e9eea91 commit b3025ef

File tree

14 files changed

+25
-20
lines changed

14 files changed

+25
-20
lines changed

doc/changelog.d/179.fixed.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fix: Reduce import time of the library

pyproject.toml

-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ classifiers = [
2323
]
2424
dependencies = [
2525
"pyvista >= 0.43.0,<1",
26-
"beartype >= 0.17.0,<1",
2726
"websockets >= 12.0,< 14",
2827
"trame >= 3.6.0,<4",
2928
"trame-vtk >= 2.8.7,<3",

src/ansys/tools/visualization_interface/backends/_base.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222

2323
"""Module for the backend base class."""
2424
from abc import ABC, abstractmethod
25-
26-
from beartype.typing import Any, Iterable
25+
from typing import Any, Iterable
2726

2827

2928
class BaseBackend(ABC):

src/ansys/tools/visualization_interface/backends/pyvista/pyvista.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
# SOFTWARE.
2222
"""Provides a wrapper to aid in plotting."""
2323
from abc import abstractmethod
24+
import importlib.util
25+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
2426

25-
from beartype.typing import Any, Dict, List, Optional, Union
26-
import numpy as np
2727
import pyvista as pv
2828
from vtkmodules.vtkCommonCore import vtkCommand
2929
from vtkmodules.vtkInteractionWidgets import vtkHoverWidget
@@ -32,10 +32,6 @@
3232
import ansys.tools.visualization_interface
3333
from ansys.tools.visualization_interface.backends._base import BaseBackend
3434
from ansys.tools.visualization_interface.backends.pyvista.pyvista_interface import PyVistaInterface
35-
from ansys.tools.visualization_interface.backends.pyvista.trame_local import (
36-
_HAS_TRAME,
37-
TrameVisualizer,
38-
)
3935
from ansys.tools.visualization_interface.backends.pyvista.widgets.displace_arrows import (
4036
CameraPanDirection,
4137
DisplacementArrow,
@@ -57,6 +53,11 @@
5753
from ansys.tools.visualization_interface.utils.color import Color
5854
from ansys.tools.visualization_interface.utils.logger import logger
5955

56+
_HAS_TRAME = importlib.util.find_spec("pyvista.trame") and importlib.util.find_spec("trame.app")
57+
58+
if TYPE_CHECKING:
59+
import numpy as np
60+
6061

6162
class PyVistaBackendInterface(BaseBackend):
6263
"""Provides the interface for the Visualization Interface Tool plotter.
@@ -193,7 +194,7 @@ def add_widget(self, widget: Union[PlotterWidget, List[PlotterWidget]]):
193194
self._widgets.append(widget)
194195
widget.update()
195196

196-
def select_object(self, custom_object: Union[MeshObjectPlot, EdgePlot], pt: np.ndarray) -> None:
197+
def select_object(self, custom_object: Union[MeshObjectPlot, EdgePlot], pt: "np.ndarray") -> None:
197198
"""Select a custom object in the plotter.
198199
199200
This method highlights the edges of a body and adds a label. It also adds
@@ -463,6 +464,9 @@ def show_plotter(self, screenshot: Optional[str] = None) -> None:
463464
464465
"""
465466
if self._use_trame and _HAS_TRAME:
467+
from ansys.tools.visualization_interface.backends.pyvista.trame_local import (
468+
TrameVisualizer,
469+
)
466470
visualizer = TrameVisualizer()
467471
visualizer.set_scene(self._pl)
468472
visualizer.show()

src/ansys/tools/visualization_interface/backends/pyvista/pyvista_interface.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
# SOFTWARE.
2222
"""Provides plotting for various PyAnsys objects."""
2323
import re
24-
from typing import Union
24+
from typing import Any, Dict, List, Optional, Union
2525

26-
from beartype.typing import Any, Dict, List, Optional
2726
import pyvista as pv
2827
from pyvista.plotting.plotter import Plotter as PyVistaPlotter
2928

src/ansys/tools/visualization_interface/backends/pyvista/trame_local.py

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
# SOFTWARE.
2222
"""Provides `trame <https://kitware.github.io/trame/index.html>`_ visualizer interface for visualization."""
23+
2324
try:
2425
from pyvista.trame.ui import plotter_ui
2526
from trame.app import get_server

src/ansys/tools/visualization_interface/backends/pyvista/trame_remote.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
# from the websocket. This is a trusted source, so we can ignore this vulnerability.
2525
# Potentially, someone could send a malicious pickle object and execute arbitrary code.
2626
import pickle # nosec B403
27+
from typing import Union
2728

28-
from beartype.typing import Union
2929
import pyvista as pv
3030
from websockets.sync.client import connect
3131

src/ansys/tools/visualization_interface/backends/pyvista/widgets/hide_buttons.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
# SOFTWARE.
2222
"""Provides the hide buttons widget for the PyAnsys plotter."""
2323
from pathlib import Path
24+
from typing import TYPE_CHECKING
2425

25-
from beartype.typing import TYPE_CHECKING
2626
from vtk import vtkActor, vtkButtonWidget, vtkPNGReader
2727

2828
from ansys.tools.visualization_interface.backends.pyvista.widgets.widget import PlotterWidget

src/ansys/tools/visualization_interface/backends/pyvista/widgets/measure.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
# SOFTWARE.
2222
"""Provides the measure widget for the PyAnsys plotter."""
2323
from pathlib import Path
24+
from typing import TYPE_CHECKING
2425

25-
from beartype.typing import TYPE_CHECKING
2626
from vtk import vtkActor, vtkButtonWidget, vtkPNGReader
2727

2828
from ansys.tools.visualization_interface.backends.pyvista.widgets.widget import PlotterWidget

src/ansys/tools/visualization_interface/backends/pyvista/widgets/mesh_slider.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
# SOFTWARE.
2222
"""Provides the measure widget for the PyAnsys plotter."""
2323
from pathlib import Path
24+
from typing import TYPE_CHECKING
2425

25-
from beartype.typing import TYPE_CHECKING
2626
import pyvista as pv
2727
from vtk import vtkActor, vtkButtonWidget, vtkPNGReader
2828

src/ansys/tools/visualization_interface/plotter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# SOFTWARE.
2222

2323
"""Module for the Plotter class."""
24-
from beartype.typing import Any
24+
from typing import Any
2525

2626
from ansys.tools.visualization_interface.backends._base import BaseBackend
2727
from ansys.tools.visualization_interface.backends.pyvista.pyvista import PyVistaBackend

src/ansys/tools/visualization_interface/types/edge_plot.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
"""Provides the edge type for plotting."""
2323

2424

25-
from beartype.typing import TYPE_CHECKING, Any
25+
from typing import TYPE_CHECKING, Any
26+
2627
import pyvista as pv
2728

2829
if TYPE_CHECKING:

src/ansys/tools/visualization_interface/types/mesh_object_plot.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
"""Provides the ``MeshObjectPlot`` class."""
2323

2424

25-
from beartype.typing import Any, List, Union
25+
from typing import Any, List, Union
26+
2627
import pyvista as pv
2728

2829
from ansys.tools.visualization_interface.types.edge_plot import EdgePlot

src/ansys/tools/visualization_interface/utils/clip_plane.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# SOFTWARE.
2222
"""Provides the ``ClipPlane`` class."""
2323

24-
from beartype.typing import Tuple
24+
from typing import Tuple
2525

2626

2727
class ClipPlane:

0 commit comments

Comments
 (0)