Skip to content

Instantly share code, notes, and snippets.

@tioover
Last active August 29, 2015 14:01
Show Gist options
  • Save tioover/76adee6b1ac3251e11c2 to your computer and use it in GitHub Desktop.
Save tioover/76adee6b1ac3251e11c2 to your computer and use it in GitHub Desktop.
def framework():
pipeline = []
register = lambda test, handler: pipeline.append((test, handler))
def processing(*args):
for test, handler in pipeline:
tested = test(*args)
if tested is not False:
return handler(*args)
return register, processing
# use
register, hander = framework()
def sign(test):
def wrap(f):
register(test, f)
return f
return wrap
@sign(lambda x: x % 2)
def odd(x):
print(x)
for i in range(10):
handler(i)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment