MCPcopy Create free account
hub / github.com/awslabs/gap-text2sql / instantiate

Function instantiate

rat-sql-gap/seq2struct/utils/registry.py:39–57  ·  view source on GitHub ↗
(callable, config, unused_keys=(), **kwargs)

Source from the content-addressed store, hash-verified

37
38
39def instantiate(callable, config, unused_keys=(), **kwargs):
40 merged = {**config, **kwargs}
41 signature = inspect.signature(callable)
42 for name, param in signature.parameters.items():
43 if param.kind in (inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.VAR_POSITIONAL):
44 raise ValueError('Unsupported kind for param {}: {}'.format(name, param.kind))
45
46 if any(param.kind == inspect.Parameter.VAR_KEYWORD for param in signature.parameters.values()):
47 return callable(**merged)
48
49 missing = {}
50 for key in list(merged.keys()):
51 if key not in signature.parameters:
52 if key not in unused_keys:
53 missing[key] = merged[key]
54 merged.pop(key)
55 if missing:
56 print('WARNING {}: superfluous {}'.format(callable, missing), file=sys.stderr)
57 return callable(**merged)

Callers 1

constructFunction · 0.85

Calls 1

popMethod · 0.80

Tested by

no test coverage detected