- args = dict(data.items())
- args["req"] = req
- if not spec.keywords:
- for arg in list(args):
- if arg not in spec.args:
- del args[arg]
- for i in range(len(spec.args) - (len(spec.defaults) if spec.defaults else 0)):
- if spec.args[i] not in args:
+
+ data["req"] = req
+ if haskw:
+ args = data
+ else:
+ args = {}
+ for par in sig.parameters.values():
+ if par.name in data:
+ args[par.name] = data[par.name]
+ for par in sig.parameters.values():
+ if par.default is inspect.Parameter.empty and par.name not in args: