Skip to content

Commit 67321ef

Browse files
RobPasMuepyansys-ci-botpre-commit-ci[bot]
authored
chore: clean up deprecation warning for trapezoid class and add more info on deprecation (#1754)
Co-authored-by: pyansys-ci-bot <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent c04ef26 commit 67321ef

File tree

8 files changed

+77
-30
lines changed

8 files changed

+77
-30
lines changed

doc/changelog.d/1754.maintenance.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
clean up deprecation warning for trapezoid class and add more info on deprecation

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,14 @@ def backend_version(self) -> semver.version.Version:
266266
return self._backend_version
267267

268268
@property
269-
@deprecated_method(info="Multiple designs for the same service are no longer supported.")
269+
@deprecated_method(
270+
info="Multiple designs for the same service are no longer supported.",
271+
version="0.9.0",
272+
remove="0.11.0",
273+
)
270274
def multiple_designs_allowed(self) -> bool:
271275
"""Flag indicating whether multiple designs are allowed.
272276
273-
Deprecated since version 0.8.X.
274-
275277
Notes
276278
-----
277279
Currently, only one design is allowed per service. This method will always

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -493,8 +493,12 @@ def launch_modeler_with_spaceclaim_and_pimlight(
493493
)
494494

495495

496-
@deprecated_argument(arg="log_level", alternative="server_log_level")
497-
@deprecated_argument(arg="logs_folder", alternative="server_logs_folder")
496+
@deprecated_argument(
497+
arg="log_level", alternative="server_log_level", version="0.6.2", remove="0.10.0"
498+
)
499+
@deprecated_argument(
500+
arg="logs_folder", alternative="server_logs_folder", version="0.6.2", remove="0.10.0"
501+
)
498502
def launch_modeler_with_geometry_service(
499503
product_version: int = None,
500504
host: str = "localhost",
@@ -627,7 +631,9 @@ def launch_modeler_with_geometry_service(
627631
)
628632

629633

630-
@deprecated_argument(arg="log_level", alternative="server_log_level")
634+
@deprecated_argument(
635+
arg="log_level", alternative="server_log_level", version="0.6.2", remove="0.10.0"
636+
)
631637
def launch_modeler_with_discovery(
632638
product_version: int = None,
633639
host: str = "localhost",
@@ -754,7 +760,9 @@ def launch_modeler_with_discovery(
754760
)
755761

756762

757-
@deprecated_argument(arg="log_level", alternative="server_log_level")
763+
@deprecated_argument(
764+
arg="log_level", alternative="server_log_level", version="0.6.2", remove="0.10.0"
765+
)
758766
def launch_modeler_with_spaceclaim(
759767
product_version: int = None,
760768
host: str = "localhost",

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,8 @@ def normal(self, u: float = 0.5, v: float = 0.5) -> UnitVector3D:
381381
response = self._faces_stub.GetNormal(GetNormalRequest(id=self.id, u=u, v=v)).direction
382382
return UnitVector3D([response.x, response.y, response.z])
383383

384-
@deprecated_method(alternative="normal")
385-
def face_normal(self, u: float = 0.5, v: float = 0.5) -> UnitVector3D: # [deprecated-method]
384+
@deprecated_method(alternative="normal", version="0.6.2", remove="0.10.0")
385+
def face_normal(self, u: float = 0.5, v: float = 0.5) -> UnitVector3D:
386386
"""Get the normal direction to the face at certain UV coordinates.
387387
388388
Parameters
@@ -440,7 +440,7 @@ def point(self, u: float = 0.5, v: float = 0.5) -> Point3D:
440440
response = self._faces_stub.Evaluate(EvaluateRequest(id=self.id, u=u, v=v)).point
441441
return Point3D([response.x, response.y, response.z], DEFAULT_UNITS.SERVER_LENGTH)
442442

443-
@deprecated_method(alternative="point")
443+
@deprecated_method(alternative="point", version="0.6.2", remove="0.10.0")
444444
def face_point(self, u: float = 0.5, v: float = 0.5) -> Point3D:
445445
"""Get a point of the face evaluated at certain UV coordinates.
446446

src/ansys/geometry/core/misc/checks.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,12 @@ def wrapper(self, *args, **kwargs):
343343
return backend_version_decorator
344344

345345

346-
def deprecated_method(alternative: str | None = None, info: str | None = None):
346+
def deprecated_method(
347+
alternative: str | None = None,
348+
info: str | None = None,
349+
version: str | None = None,
350+
remove: str | None = None,
351+
):
347352
"""Decorate a method as deprecated.
348353
349354
Parameters
@@ -353,6 +358,10 @@ def deprecated_method(alternative: str | None = None, info: str | None = None):
353358
include the alternative method.
354359
info : str, default: None
355360
Additional information to include in the warning message.
361+
version : str, default: None
362+
Version where the method was deprecated.
363+
remove : str, default: None
364+
Version where the method will be removed.
356365
"""
357366

358367
def deprecated_decorator(method):
@@ -362,6 +371,10 @@ def wrapper(*args, **kwargs):
362371
msg += f" Use '{alternative}' instead."
363372
if info:
364373
msg += f" {info}"
374+
if version:
375+
msg += f" This method was deprecated in version {version}."
376+
if remove:
377+
msg += f" This method will be removed in version {remove}."
365378
warnings.warn(msg, DeprecationWarning)
366379
return method(*args, **kwargs)
367380

@@ -370,7 +383,13 @@ def wrapper(*args, **kwargs):
370383
return deprecated_decorator
371384

372385

373-
def deprecated_argument(arg: str, alternative: str | None = None, info: str | None = None):
386+
def deprecated_argument(
387+
arg: str,
388+
alternative: str | None = None,
389+
info: str | None = None,
390+
version: str | None = None,
391+
remove: str | None = None,
392+
):
374393
"""Decorate a method argument as deprecated.
375394
376395
Parameters
@@ -382,6 +401,10 @@ def deprecated_argument(arg: str, alternative: str | None = None, info: str | No
382401
include the alternative argument.
383402
info : str, default: None
384403
Additional information to include in the warning message.
404+
version : str, default: None
405+
Version where the method was deprecated.
406+
remove : str, default: None
407+
Version where the method will be removed.
385408
"""
386409

387410
def deprecated_decorator(method):
@@ -392,6 +415,10 @@ def wrapper(*args, **kwargs):
392415
msg += f" Use '{alternative}' instead."
393416
if info:
394417
msg += f" {info}"
418+
if version:
419+
msg += f" This argument was deprecated in version {version}."
420+
if remove:
421+
msg += f" This argument will be removed in version {remove}."
395422
warnings.warn(msg, DeprecationWarning)
396423

397424
return method(*args, **kwargs)

src/ansys/geometry/core/modeler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def design(self) -> "Design":
140140
return self._design
141141

142142
@property
143-
@deprecated_method(alternative="design")
143+
@deprecated_method(alternative="design", version="0.9.0", remove="0.11.0")
144144
def designs(self) -> dict[str, "Design"]:
145145
"""Retrieve the design within the modeler workspace.
146146

src/ansys/geometry/core/sketch/trapezoid.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import pyvista as pv
2828
from scipy.spatial.transform import Rotation as SpatialRotation
2929

30-
from ansys.geometry.core.logger import LOG
3130
from ansys.geometry.core.math.constants import ZERO_POINT2D
3231
from ansys.geometry.core.math.matrix import Matrix33
3332
from ansys.geometry.core.math.point import Point2D
@@ -80,13 +79,6 @@ def __init__(
8079
"""Initialize the trapezoid."""
8180
super().__init__()
8281

83-
# TODO: Remove this warning in the next major release (v0.8.0)
84-
# https://github.com/ansys/pyansys-geometry/issues/1359
85-
LOG.warning(
86-
"The signature of the Trapezoid class has changed starting on "
87-
"version 0.7.X. Please refer to the documentation for more information."
88-
)
89-
9082
self._center = center
9183
self._base_width = (
9284
base_width if isinstance(base_width, Distance) else Distance(base_width, center.unit)

tests/test_misc_checks.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,13 @@ def deprecated_method_with_info():
286286
return True
287287

288288
@staticmethod
289-
@deprecated_method(info="This is some extra info.", alternative="new_method")
290-
def deprecated_method_with_info_and_alternate():
289+
@deprecated_method(
290+
info="This is some extra info.",
291+
alternative="new_method",
292+
version="1.0.0",
293+
remove="2.0.0",
294+
)
295+
def deprecated_method_with_info_and_alternate_and_versions():
291296
return True
292297

293298
mock_object = MockObject()
@@ -302,10 +307,12 @@ def deprecated_method_with_info_and_alternate():
302307
mock_object.deprecated_method_with_info()
303308

304309
with pytest.deprecated_call(
305-
match="The method 'deprecated_method_with_info_and_alternate' is deprecated."
310+
match="The method 'deprecated_method_with_info_and_alternate_and_versions' is deprecated."
306311
" Use 'new_method' instead. This is some extra info."
312+
" This method was deprecated in version 1.0.0."
313+
" This method will be removed in version 2.0.0."
307314
):
308-
mock_object.deprecated_method_with_info_and_alternate()
315+
mock_object.deprecated_method_with_info_and_alternate_and_versions()
309316

310317

311318
def test_deprecated_argument_decorator():
@@ -326,8 +333,16 @@ def deprecated_argument_with_info(dep_arg: str = None):
326333
return True
327334

328335
@staticmethod
329-
@deprecated_argument("dep_arg", info="This is some extra info.", alternative="alt_arg")
330-
def deprecated_argument_with_info_and_alternate(dep_arg: str = None, alt_arg: str = None):
336+
@deprecated_argument(
337+
"dep_arg",
338+
info="This is some extra info.",
339+
alternative="alt_arg",
340+
version="1.0.0",
341+
remove="2.0.0",
342+
)
343+
def deprecated_argument_with_info_and_alternate_and_versions(
344+
dep_arg: str = None, alt_arg: str = None
345+
):
331346
return True
332347

333348
mock_object = MockObject()
@@ -345,12 +360,14 @@ def deprecated_argument_with_info_and_alternate(dep_arg: str = None, alt_arg: st
345360
mock_object.deprecated_argument_with_info(dep_arg="test")
346361

347362
with pytest.deprecated_call(
348-
match="The argument 'dep_arg' in 'deprecated_argument_with_info_and_alternate'"
363+
match="The argument 'dep_arg' in 'deprecated_argument_with_info_and_alternate_and_versions'"
349364
" is deprecated. Use 'alt_arg' instead. This is some extra info."
365+
" This argument was deprecated in version 1.0.0."
366+
" This argument will be removed in version 2.0.0."
350367
):
351-
mock_object.deprecated_argument_with_info_and_alternate(dep_arg="test")
368+
mock_object.deprecated_argument_with_info_and_alternate_and_versions(dep_arg="test")
352369

353370
# Check that if we use the alternative argument, no warning is raised
354371
with warnings.catch_warnings():
355372
warnings.simplefilter("error")
356-
mock_object.deprecated_argument_with_info_and_alternate(alt_arg="test")
373+
mock_object.deprecated_argument_with_info_and_alternate_and_versions(alt_arg="test")

0 commit comments

Comments
 (0)