Skip to content

Commit 05aafc1

Browse files
committed
Allow to use default parameters (passing nothing to the add method except the class name
1 parent 270d867 commit 05aafc1

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

stlib/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ def checkName(context : Sofa.Core.Node, name):
2626
# Check if a name is provided, if not, use the one of the class
2727
params = kwargs.copy()
2828
if isinstance(typeName, type) and issubclass(typeName, BasePrefab): #Only for prefabs
29-
if "parameters" not in params or len(params.keys()) > 1:
29+
if len(params.keys()) > 1 or (len(params.keys()) == 1 and "parameters" not in params):
3030
raise RuntimeError("Invalid argument, a prefab takes only the \"parameters\" kwargs as input")
31+
3132
elif "name" not in params : #This doesn't apply to prefab
3233
if isinstance(typeName, str):
3334
params["name"] = typeName
@@ -42,7 +43,7 @@ def checkName(context : Sofa.Core.Node, name):
4243
else:
4344
raise RuntimeError("Invalid argument ", typeName)
4445

45-
if isinstance(typeName, type) and issubclass(typeName, BasePrefab):
46+
if isinstance(typeName, type) and issubclass(typeName, BasePrefab) and len(params.keys()) == 1:
4647
params["parameters"].name = checkName(self, params["parameters"].name)
4748
else:
4849
params["name"] = checkName(self, params["name"])

0 commit comments

Comments
 (0)