in src/rpdk/core/contract/suite/contract_asserts.py [0:0]
def _rebind(decorator, func, *args, **kwargs):
"""Helper function to construct decorated arguments
This works only with positional and likely positional arguments
strongly keyword arguments are in **kwargs. It constructs kwargs'
from positional values
"""
parameters = signature(func).parameters.values()
decorated_parameters = set(signature(decorator).parameters.keys())
positional_kwargs = dict(
zip(
[
parameter.name
for parameter in parameters
if parameter.kind
in (Parameter.POSITIONAL_ONLY, Parameter.POSITIONAL_OR_KEYWORD)
and parameter.name not in kwargs
],
args,
)
)
return {k: kwargs.get(k) or positional_kwargs[k] for k in decorated_parameters}