Skip to content

Commit b8ed956

Browse files
committed
Skip unbound arguments when generating signature schemas
1 parent a03f1b5 commit b8ed956

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/labthings/server/types/annotations.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ def convert(self, parameter, **kwargs) -> FieldABC:
3030
if isinstance(parameter, Parameter):
3131
typehint = parameter.annotation
3232
optional = not (parameter.default is parameter.empty)
33-
if parameter.kind == "VAR_POSITIONAL":
34-
# Handle unbound *args parameters
35-
pass
36-
if parameter.kind == "VAR_KEYWORD":
37-
# Handle unbound **kwargs parameters
38-
pass
33+
# Skip unbound arguments (e.g. *args, **kwargs) until we find a better way to handle them
34+
if (
35+
parameter.kind == Parameter.VAR_POSITIONAL
36+
or parameter.kind == Parameter.VAR_KEYWORD
37+
):
38+
return None
3939
elif isinstance(parameter, type):
4040
typehint = parameter
4141
else:
@@ -72,6 +72,8 @@ def function_signature_to_schema(function: callable):
7272
params = inspect.signature(function).parameters
7373

7474
for k, p in params.items():
75-
schema_dict[k] = converter.convert(p)
75+
param_schema = converter.convert(p)
76+
if param_schema:
77+
schema_dict[k] = converter.convert(p)
7678

7779
return schema_dict

0 commit comments

Comments
 (0)