Skip to content

Using gossip for objectmethods #22

@eplaut

Description

@eplaut

how can I use gossip for objectmethods

>>> import gossip
>>> class MyClass(object):
...     def trigger(self):
...         gossip.trigger('my_hook')
...     @gossip.register('my_hook')
...     def my_func(self):
...         print 42
... 
>>> my_object = MyClass()
>>> my_object.trigger()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in trigger
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/hooks.py", line 189, in trigger
    trigger_with_tags(hook_name, kwargs, None)
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/hooks.py", line 199, in trigger_with_tags
    hook.trigger(kwargs or {}, tags)
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/hooks.py", line 152, in trigger
    exception_policy.handle_exception(ctx, exc_info)
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/exception_policy.py", line 29, in handle_exception
    reraise(exc_info[0], exc_info[1], exc_info[2])
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/hooks.py", line 169, in _call_registration
    registration(**kwargs)  # pylint: disable=star-args
  File "/home/eli/qa/.venv/local/lib/python2.7/site-packages/gossip/registration.py", line 70, in __call__
    return self.func(*args, **kwargs)
TypeError: my_func() takes exactly 1 argument (0 given)

since the self parameter is not sent

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions