Skip to content

Commit 6ecb0fc

Browse files
Warn about upcoming change of the centerOption (#313)
* Added deprecate_kwarg decorator * Added warning related to default centerOption deprecation
1 parent d17d27d commit 6ecb0fc

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

cadquery/cq.py

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
exporters,
3434
)
3535

36+
from .utils import deprecate_kwarg
37+
3638

3739
class CQContext(object):
3840
"""
@@ -305,6 +307,7 @@ def toOCC(self):
305307

306308
return self.objects[0].wrapped
307309

310+
@deprecate_kwarg("centerOption", "ProjectedOrigin")
308311
def workplane(
309312
self, offset=0.0, invert=False, centerOption="CenterOfMass", origin=None
310313
):

cadquery/utils.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from functools import wraps
2+
from inspect import signature
3+
from warnings import warn
4+
5+
6+
class deprecate_kwarg:
7+
def __init__(self, name, new_value):
8+
9+
self.name = name
10+
self.new_value = new_value
11+
12+
def __call__(self, f):
13+
@wraps(f)
14+
def wrapped(*args, **kwargs):
15+
16+
f_sig_bound = signature(f).bind(*args, **kwargs)
17+
18+
if self.name not in f_sig_bound.kwargs:
19+
warn(
20+
f"Default walue of {self.name} will change in next relase to {self.new_value}",
21+
FutureWarning,
22+
)
23+
24+
return f(*args, **kwargs)
25+
26+
return wrapped

0 commit comments

Comments
 (0)