Skip to content

Commit 4875e32

Browse files
committed
Warn instead of fail unknown inputs
1 parent e014a2e commit 4875e32

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

python/coglet/file_runner.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ async def _predict(self, pid: str, req: Dict[str, Any]) -> None:
206206

207207
req_in = req['input']
208208
for k, v in req_in.items():
209+
# ignore unknown input fields, let runner check for them and print warning
210+
if k not in self.runner.inputs:
211+
continue
209212
req_in[k] = self.runner.inputs[k].type.json_decode(v)
210213

211214
if self.runner.is_iter():

python/coglet/inspector.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,12 @@ def check_input(
266266
) -> Dict[str, Any]:
267267
kwargs: Dict[str, Any] = {}
268268
for name, value in inputs.items():
269-
assert name in adt_ins, f'unknown input field: {name}'
270-
adt_in = adt_ins[name]
271-
kwargs[name] = adt_in.type.normalize(value)
269+
# assert name in adt_ins, f'unknown input field: {name}'
270+
adt_in = adt_ins.get(name)
271+
if adt_in is None:
272+
print(f'WARNING unknown input field ignored: {name}')
273+
else:
274+
kwargs[name] = adt_in.type.normalize(value)
272275
for name, adt_in in adt_ins.items():
273276
if name not in kwargs:
274277
# default=None is only allowed on `Optional[<type>]`

python/tests/bad_inputs/simple.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
{'i': 0, 's': 'foo'},
1717
'missing required input field: xs',
1818
),
19-
({'x': 0}, 'unknown input field: x'),
19+
# Allow unknown inputs for backwards compatibility
20+
# Print a warning instead as part of logs
21+
# ({'x': 0}, 'unknown input field: x'),
2022
]
2123

2224

0 commit comments

Comments
 (0)