Skip to content

Instantly share code, notes, and snippets.

@lykkin
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lykkin/a5cbff5873234cc13104 to your computer and use it in GitHub Desktop.
Save lykkin/a5cbff5873234cc13104 to your computer and use it in GitHub Desktop.
pre and post condition wrappers
42 def pre(f, preds):
43
44 @wraps(f)
45 def inner(*args, **kwargs):
46 for pred in preds:
47 assert pred(*args, **kwargs)
48 return f(*args, **kwargs)
49
50 return inner
51
52
53 def post(f, preds):
54
55 @wraps(f)
56 def inner(*args, **kwargs):
57 res = f(*args, **kwargs)
58 for pred in preds:
59 assert pred(res)
60 return res
61
62 return inner
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment