Skip to content

Commit e13bb2f

Browse files
committed
add no-pluggable scenario
1 parent 6573645 commit e13bb2f

File tree

4 files changed

+61
-58
lines changed

4 files changed

+61
-58
lines changed
Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,33 @@
1-
# import inspect
2-
from compas.plugins import plugin
3-
from compas.geometry import NurbsCurve
4-
51
from .nurbs import OCCNurbsCurve
62

7-
8-
@plugin(category='factories', requires=['compas_occ'])
9-
def new_nurbscurve(cls, *args, **kwargs):
10-
# for _, value in inspect.getmembers(OCCNurbsCurve):
11-
# if inspect.isfunction(value):
12-
# if hasattr(value, '__isabstractmethod__'):
13-
# raise Exception('Abstract method not implemented: {}'.format(value))
14-
15-
return super(NurbsCurve, OCCNurbsCurve).__new__(OCCNurbsCurve)
16-
17-
18-
@plugin(category='factories', requires=['compas_occ'])
19-
def new_nurbscurve_from_parameters(*args, **kwargs):
20-
return OCCNurbsCurve.from_parameters(*args, **kwargs)
21-
22-
23-
@plugin(category='factories', requires=['compas_occ'])
24-
def new_nurbscurve_from_points(*args, **kwargs):
25-
return OCCNurbsCurve.from_points(*args, **kwargs)
26-
27-
28-
@plugin(category='factories', requires=['compas_occ'])
29-
def new_nurbscurve_from_interpolation(cls, *args, **kwargs):
30-
return OCCNurbsCurve.from_interpolation(*args, **kwargs)
31-
32-
33-
@plugin(category='factories', requires=['compas_occ'])
34-
def new_nurbscurve_from_step(cls, *args, **kwargs):
35-
return OCCNurbsCurve.from_step(*args, **kwargs)
3+
try:
4+
from compas.geometry import NurbsCurve
5+
except ImportError:
6+
pass
7+
else:
8+
from compas.plugins import plugin
9+
10+
@plugin(category='factories', requires=['compas_occ'])
11+
def new_nurbscurve(cls, *args, **kwargs):
12+
# for _, value in inspect.getmembers(OCCNurbsCurve):
13+
# if inspect.isfunction(value):
14+
# if hasattr(value, '__isabstractmethod__'):
15+
# raise Exception('Abstract method not implemented: {}'.format(value))
16+
17+
return super(NurbsCurve, OCCNurbsCurve).__new__(OCCNurbsCurve)
18+
19+
@plugin(category='factories', requires=['compas_occ'])
20+
def new_nurbscurve_from_parameters(*args, **kwargs):
21+
return OCCNurbsCurve.from_parameters(*args, **kwargs)
22+
23+
@plugin(category='factories', requires=['compas_occ'])
24+
def new_nurbscurve_from_points(*args, **kwargs):
25+
return OCCNurbsCurve.from_points(*args, **kwargs)
26+
27+
@plugin(category='factories', requires=['compas_occ'])
28+
def new_nurbscurve_from_interpolation(cls, *args, **kwargs):
29+
return OCCNurbsCurve.from_interpolation(*args, **kwargs)
30+
31+
@plugin(category='factories', requires=['compas_occ'])
32+
def new_nurbscurve_from_step(cls, *args, **kwargs):
33+
return OCCNurbsCurve.from_step(*args, **kwargs)

src/compas_occ/geometry/curves/nurbs.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66
from compas.geometry import Frame
77
from compas.geometry import Circle
88
from compas.geometry import Box
9-
from compas.geometry import NurbsCurve
109
from compas.utilities import linspace
1110

11+
try:
12+
from compas.geometry import NurbsCurve
13+
except ImportError:
14+
from compas.geometry import Geometry as NurbsCurve
15+
1216
from compas_occ.conversions import harray1_from_points1
1317
from compas_occ.conversions import array1_from_points1
1418
from compas_occ.conversions import array1_from_floats1
Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
1-
from compas.plugins import plugin
2-
from compas.geometry import NurbsSurface
3-
41
from .nurbs import OCCNurbsSurface
52

3+
try:
4+
from compas.geometry import NurbsSurface
5+
except ImportError:
6+
pass
7+
else:
8+
from compas.plugins import plugin
69

7-
@plugin(category='factories', requires=['compas_occ'])
8-
def new_nurbssurface(cls, *args, **kwargs):
9-
return super(NurbsSurface, OCCNurbsSurface).__new__(OCCNurbsSurface)
10-
11-
12-
@plugin(category='factories', requires=['compas_occ'])
13-
def new_nurbssurface_from_parameters(*args, **kwargs):
14-
return OCCNurbsSurface.from_parameters(*args, **kwargs)
15-
16-
17-
@plugin(category='factories', requires=['compas_occ'])
18-
def new_nurbssurface_from_points(*args, **kwargs):
19-
return OCCNurbsSurface.from_points(*args, **kwargs)
20-
10+
@plugin(category='factories', requires=['compas_occ'])
11+
def new_nurbssurface(cls, *args, **kwargs):
12+
return super(NurbsSurface, OCCNurbsSurface).__new__(OCCNurbsSurface)
2113

22-
@plugin(category='factories', requires=['compas_occ'])
23-
def new_nurbssurface_from_fill(cls, *args, **kwargs):
24-
return OCCNurbsSurface.from_fill(*args, **kwargs)
14+
@plugin(category='factories', requires=['compas_occ'])
15+
def new_nurbssurface_from_parameters(*args, **kwargs):
16+
return OCCNurbsSurface.from_parameters(*args, **kwargs)
2517

18+
@plugin(category='factories', requires=['compas_occ'])
19+
def new_nurbssurface_from_points(*args, **kwargs):
20+
return OCCNurbsSurface.from_points(*args, **kwargs)
2621

27-
@plugin(category='factories', requires=['compas_occ'])
28-
def new_nurbssurface_from_step(cls, *args, **kwargs):
29-
return OCCNurbsSurface.from_step(*args, **kwargs)
22+
@plugin(category='factories', requires=['compas_occ'])
23+
def new_nurbssurface_from_fill(cls, *args, **kwargs):
24+
return OCCNurbsSurface.from_fill(*args, **kwargs)
3025

26+
@plugin(category='factories', requires=['compas_occ'])
27+
def new_nurbssurface_from_step(cls, *args, **kwargs):
28+
return OCCNurbsSurface.from_step(*args, **kwargs)

src/compas_occ/geometry/surfaces/nurbs.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424

2525
from ..curves import OCCNurbsCurve
2626

27-
from compas.geometry import NurbsSurface
27+
try:
28+
from compas.geometry import NurbsSurface
29+
except ImportError:
30+
from compas.geometry import Geometry as NurbsSurface
2831

2932
from OCC.Core.gp import gp_Trsf
3033
from OCC.Core.gp import gp_Pnt

0 commit comments

Comments
 (0)