Skip to content

Instantly share code, notes, and snippets.

@tomprince
Created January 4, 2015 16:55
Show Gist options
  • Select an option

  • Save tomprince/dd82d7b093ee8e988c0a to your computer and use it in GitHub Desktop.

Select an option

Save tomprince/dd82d7b093ee8e988c0a to your computer and use it in GitHub Desktop.
def from_effect(f):
@wraps
def wrapper(self, *args, **kwargs):
return self._performer(f(*args, **kwargs))
wrapper.effectfully = f
return wrapper
class Stuff(object):
def __init__(self, stuff, performer=sync_performer):
self._performer = performer
@from_effect
def remote_call(self, args):
return RemoteCall()
@from_effect
def composite_call(self, args):
effect = self.remote_call.effectfully(args)
effect.on(success=lambda result: result * 2)
return effect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment