Skip to content

Commit b636438

Browse files
b-matteopre-commit-ci[bot]RobPasMue
authored
ansys-api-geometry v0.3.0 related changes (#746)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roberto Pastor Muela <37798125+RobPasMue@users.noreply.github.com>
1 parent f86ad3d commit b636438

File tree

13 files changed

+107
-23
lines changed

13 files changed

+107
-23
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ classifiers = [
2424
]
2525

2626
dependencies = [
27-
"ansys-api-geometry==0.2.16",
27+
"ansys-api-geometry==0.3.0",
2828
"ansys-tools-path>=0.3",
2929
"beartype>=0.11.0",
3030
"google-api-python-client>=1.7.11",

src/ansys/geometry/core/connection/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,9 @@
4949
launch_modeler_with_spaceclaim_and_pimlight,
5050
launch_remote_modeler,
5151
)
52-
from ansys.geometry.core.connection.local_instance import GeometryContainers, LocalDockerInstance
52+
from ansys.geometry.core.connection.local_instance import (
53+
GeometryContainers,
54+
LocalDockerInstance,
55+
get_geometry_container_type,
56+
)
5357
from ansys.geometry.core.connection.product_instance import ProductInstance

src/ansys/geometry/core/connection/client.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
from pathlib import Path
2626
import time
2727

28+
from ansys.api.dbu.v0.admin_pb2 import BackendType as GRPCBackendType
29+
from ansys.api.dbu.v0.admin_pb2_grpc import AdminStub
2830
from beartype import beartype as check_input_types
2931
from beartype.typing import Optional, Union
32+
from google.protobuf.empty_pb2 import Empty
3033
import grpc
3134
from grpc._channel import _InactiveRpcError
3235
from grpc_health.v1 import health_pb2, health_pb2_grpc
@@ -164,7 +167,21 @@ def __init__(
164167
logging_file = str(logging_file)
165168
self._log.log_to_file(filename=logging_file, level=logging_level)
166169

167-
# Store the backend
170+
self._admin_stub = AdminStub(self._channel)
171+
172+
# if no backend type has been specified, ask the backend which type it is
173+
if backend_type == None:
174+
grpc_backend_type = self._admin_stub.GetBackend(Empty()).type
175+
if grpc_backend_type == GRPCBackendType.DISCOVERY:
176+
backend_type = BackendType.DISCOVERY
177+
elif grpc_backend_type == GRPCBackendType.SPACECLAIM:
178+
backend_type = BackendType.SPACECLAIM
179+
elif grpc_backend_type == GRPCBackendType.WINDOWS_DMS:
180+
backend_type = BackendType.WINDOWS_SERVICE
181+
elif grpc_backend_type == GRPCBackendType.LINUX_DMS:
182+
backend_type = BackendType.LINUX_SERVICE
183+
184+
# Store the backend type
168185
self._backend_type = backend_type
169186

170187
@property

src/ansys/geometry/core/connection/local_instance.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,30 @@ def existed_previously(self) -> bool:
328328
deployed by this class or ``True`` if it already existed.
329329
"""
330330
return self._existed_previously
331+
332+
333+
def get_geometry_container_type(instance: LocalDockerInstance) -> Union[GeometryContainers, None]:
334+
"""
335+
Given a ``LocalDockerInstance``, provide back the ``GeometryContainers`` value.
336+
337+
Notes
338+
-----
339+
This method returns the first hit on the available tags.
340+
341+
Parameters
342+
----------
343+
instance : LocalDockerInstance
344+
The LocalDockerInstance object.
345+
346+
Returns
347+
-------
348+
Union[GeometryContainers, None]
349+
The GeometryContainer value corresponding to the previous image or None
350+
if not match.
351+
"""
352+
for tag in instance.container.image.tags:
353+
for geom_services in GeometryContainers:
354+
if tag == f"{GEOMETRY_SERVICE_DOCKER_IMAGE}:{geom_services.value[2]}":
355+
return geom_services
356+
357+
return None

src/ansys/geometry/core/designer/body.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from enum import Enum, unique
2525
from functools import wraps
2626

27+
from ansys.api.dbu.v0.dbumodels_pb2 import EntityIdentifier
2728
from ansys.api.geometry.v0.bodies_pb2 import (
2829
BooleanRequest,
2930
CopyRequest,
@@ -38,7 +39,6 @@
3839
ProjectCurvesRequest,
3940
)
4041
from ansys.api.geometry.v0.commands_pb2_grpc import CommandsStub
41-
from ansys.api.geometry.v0.models_pb2 import EntityIdentifier
4242
from beartype import beartype as check_input_types
4343
from beartype.typing import TYPE_CHECKING, List, Optional, Tuple, Union
4444
from pint import Quantity

src/ansys/geometry/core/designer/component.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from enum import Enum, unique
2525
import uuid # TODO: Is ID even needed? Maybe use from SC?
2626

27+
from ansys.api.dbu.v0.dbumodels_pb2 import EntityIdentifier
2728
from ansys.api.geometry.v0.bodies_pb2 import (
2829
CreateBodyFromFaceRequest,
2930
CreateExtrudedBodyFromFaceProfileRequest,
@@ -40,7 +41,7 @@
4041
SetSharedTopologyRequest,
4142
)
4243
from ansys.api.geometry.v0.components_pb2_grpc import ComponentsStub
43-
from ansys.api.geometry.v0.models_pb2 import Direction, EntityIdentifier, Line
44+
from ansys.api.geometry.v0.models_pb2 import Direction, Line
4445
from beartype import beartype as check_input_types
4546
from beartype.typing import TYPE_CHECKING, List, Optional, Tuple, Union
4647
from pint import Quantity

src/ansys/geometry/core/designer/design.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,25 @@
2424
from enum import Enum, unique
2525
from pathlib import Path
2626

27+
from ansys.api.dbu.v0.dbumodels_pb2 import EntityIdentifier, PartExportFormat
28+
from ansys.api.dbu.v0.designs_pb2 import NewRequest, SaveAsRequest
29+
from ansys.api.dbu.v0.designs_pb2_grpc import DesignsStub
2730
from ansys.api.geometry.v0.commands_pb2 import (
2831
AssignMidSurfaceOffsetTypeRequest,
2932
AssignMidSurfaceThicknessRequest,
3033
CreateBeamCircularProfileRequest,
3134
)
3235
from ansys.api.geometry.v0.commands_pb2_grpc import CommandsStub
33-
from ansys.api.geometry.v0.designs_pb2 import ExportRequest, NewRequest, SaveAsRequest
34-
from ansys.api.geometry.v0.designs_pb2_grpc import DesignsStub
3536
from ansys.api.geometry.v0.materials_pb2 import AddToDocumentRequest
3637
from ansys.api.geometry.v0.materials_pb2_grpc import MaterialsStub
37-
from ansys.api.geometry.v0.models_pb2 import Empty, EntityIdentifier
3838
from ansys.api.geometry.v0.models_pb2 import Material as GRPCMaterial
3939
from ansys.api.geometry.v0.models_pb2 import MaterialProperty as GRPCMaterialProperty
40-
from ansys.api.geometry.v0.models_pb2 import PartExportFormat
4140
from ansys.api.geometry.v0.namedselections_pb2_grpc import NamedSelectionsStub
41+
from ansys.api.geometry.v0.parts_pb2 import ExportRequest
42+
from ansys.api.geometry.v0.parts_pb2_grpc import PartsStub
4243
from beartype import beartype as check_input_types
4344
from beartype.typing import Dict, List, Optional, Union
45+
from google.protobuf.empty_pb2 import Empty
4446
import numpy as np
4547
from pint import Quantity
4648

@@ -119,6 +121,7 @@ def __init__(self, name: str, grpc_client: GrpcClient, read_existing_design: boo
119121
self._commands_stub = CommandsStub(self._grpc_client.channel)
120122
self._materials_stub = MaterialsStub(self._grpc_client.channel)
121123
self._named_selections_stub = NamedSelectionsStub(self._grpc_client.channel)
124+
self._parts_stub = PartsStub(self._grpc_client.channel)
122125

123126
# Initialize needed instance variables
124127
self._materials = []
@@ -235,7 +238,7 @@ def download(
235238
DesignFileFormat.IGES,
236239
DesignFileFormat.PMDB,
237240
]:
238-
response = self._design_stub.Export(ExportRequest(format=format.value[1]))
241+
response = self._parts_stub.Export(ExportRequest(format=format.value[1]))
239242
received_bytes += response.data
240243
else:
241244
self._grpc_client.log.warning(
@@ -585,9 +588,11 @@ def __read_existing_design(self) -> None:
585588
raise RuntimeError("No existing design available at service level.")
586589
else:
587590
self._id = design.main_part.id
588-
self._name = design.main_part.name
591+
# Here we may take the design's name instead of the main part's name.
592+
# Since they're the same in the backend.
593+
self._name = design.name
589594

590-
response = self._design_stub.GetAssembly(EntityIdentifier(id=""))
595+
response = self._commands_stub.GetAssembly(EntityIdentifier(id=""))
591596

592597
# Store created objects
593598
created_parts = {p.id: Part(p.id, p.name, [], []) for p in response.parts}

src/ansys/geometry/core/designer/edge.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323

2424
from enum import Enum, unique
2525

26+
from ansys.api.dbu.v0.dbumodels_pb2 import EntityIdentifier
2627
from ansys.api.geometry.v0.edges_pb2_grpc import EdgesStub
27-
from ansys.api.geometry.v0.models_pb2 import EntityIdentifier
2828
from beartype.typing import TYPE_CHECKING, List
2929
from pint import Quantity
3030

src/ansys/geometry/core/designer/face.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323

2424
from enum import Enum, unique
2525

26+
from ansys.api.dbu.v0.dbumodels_pb2 import EntityIdentifier
2627
from ansys.api.geometry.v0.edges_pb2_grpc import EdgesStub
2728
from ansys.api.geometry.v0.faces_pb2 import EvaluateRequest, GetNormalRequest
2829
from ansys.api.geometry.v0.faces_pb2_grpc import FacesStub
2930
from ansys.api.geometry.v0.models_pb2 import Edge as GRPCEdge
30-
from ansys.api.geometry.v0.models_pb2 import EntityIdentifier
3131
from beartype.typing import TYPE_CHECKING, List
3232
from pint import Quantity
3333

src/ansys/geometry/core/modeler.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
import os
2525
from pathlib import Path
2626

27+
from ansys.api.dbu.v0.dbuapplication_pb2 import RunScriptFileRequest
28+
from ansys.api.dbu.v0.dbuapplication_pb2_grpc import DbuApplicationStub
29+
from ansys.api.dbu.v0.designs_pb2 import OpenRequest
30+
from ansys.api.dbu.v0.designs_pb2_grpc import DesignsStub
2731
from ansys.api.geometry.v0.commands_pb2 import UploadFileRequest
2832
from ansys.api.geometry.v0.commands_pb2_grpc import CommandsStub
29-
from ansys.api.geometry.v0.designs_pb2 import OpenRequest
30-
from ansys.api.geometry.v0.designs_pb2_grpc import DesignsStub
31-
from ansys.api.geometry.v0.geometryapplication_pb2 import RunScriptFileRequest
32-
from ansys.api.geometry.v0.geometryapplication_pb2_grpc import GeometryApplicationStub
3333
from beartype.typing import TYPE_CHECKING, Dict, Optional, Tuple, Union
3434
from grpc import Channel
3535

@@ -323,7 +323,7 @@ def run_discovery_script_file(
323323
ran successfully.
324324
"""
325325
serv_path = self._upload_file(file_path)
326-
ga_stub = GeometryApplicationStub(self._client.channel)
326+
ga_stub = DbuApplicationStub(self._client.channel)
327327
request = RunScriptFileRequest(
328328
script_path=serv_path,
329329
script_args=script_args,

0 commit comments

Comments
 (0)