Skip to content

Instantly share code, notes, and snippets.

@rightfold
Created February 16, 2015 09:20
Show Gist options
  • Save rightfold/dafb44308c1e09ff488b to your computer and use it in GitHub Desktop.
Save rightfold/dafb44308c1e09ff488b to your computer and use it in GitHub Desktop.
import functools
import inspect
def require(check):
def decorator(f):
sig = inspect.signature(f)
@functools.wraps(f)
def wrapper(*args, **kwargs):
bound_args = sig.bind(*args, **kwargs)
for k, v in bound_args.arguments.items():
check.__globals__[k] = v
assert check()
return f(*args, **kwargs)
return wrapper
return decorator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment