MCPcopy
hub / github.com/pathwaycom/pathway / wrapper

Function wrapper

python/pathway/internals/desugaring.py:334–361  ·  view source on GitHub ↗
(*args, **kwargs)

Source from the content-addressed store, hash-verified

332
333 @wraps(func)
334 def wrapper(*args, **kwargs):
335 named_args = {**dict(zip(fn_spec.arg_names, args)), **kwargs}
336 assert len(named_args) > 0
337 first_arg = next(iter(named_args.values()))
338 desugaring_context = (
339 first_arg if isinstance(first_arg, DesugaringContext) else None
340 )
341
342 this_substitution = {}
343 if desugaring_context is not None:
344 this_substitution.update(desugaring_context._substitution)
345
346 for key, value in substitution_param.items():
347 assert isinstance(value, str)
348 this_substitution[key] = named_args[value]
349
350 args = _desugar_this_args(this_substitution, args)
351 kwargs = _desugar_this_kwargs(this_substitution, kwargs)
352
353 if desugaring_context is not None:
354 args = tuple(
355 desugaring_context._desugaring.eval_expression(arg) for arg in args
356 )
357 kwargs = {
358 key: desugaring_context._desugaring.eval_expression(value)
359 for key, value in kwargs.items()
360 }
361 return func(*args, **kwargs)
362
363 return wrapper

Callers

nothing calls this directly

Calls 7

_desugar_this_argsFunction · 0.85
_desugar_this_kwargsFunction · 0.85
tupleFunction · 0.85
valuesMethod · 0.80
itemsMethod · 0.80
updateMethod · 0.45
eval_expressionMethod · 0.45

Tested by

no test coverage detected