Add docstrings to Notifier class

This commit is contained in:
Ian Cordasco 2015-12-29 08:12:54 -06:00
parent 57e8583e29
commit d3a9f7d58c

View file

@ -3,9 +3,31 @@ from flake8 import _trie
class Notifier(object): class Notifier(object):
def __init__(self): def __init__(self):
"""Initialize an empty notifier object."""
self.listeners = _trie.Trie() self.listeners = _trie.Trie()
def listeners_for(self, error_code): def listeners_for(self, error_code):
"""Retrieve listeners for an error_code.
The error code does not need to be a specific error code. For example,
There may be listeners registered for E100, E101, E110, E112, and
E126. If you wanted to get all listeners starting with 'E1' then you
would pass 'E1' as the error code here.
Example usage
.. code-block:: python
from flake8 import notifier
n = notifier.Notifier()
# register listeners
for listener in n.listeners_for('E1'):
listener.notify(...)
for listener in n.listeners_for('W102'):
listener.notify(...)
"""
node = self.listeners.find(error_code) node = self.listeners.find(error_code)
if node is None: if node is None:
return return
@ -16,8 +38,10 @@ class Notifier(object):
yield listener yield listener
def notify(self, error_code, *args, **kwargs): def notify(self, error_code, *args, **kwargs):
"""Notify all listeners for the specified error code."""
for listener in self.listeners_for(error_code): for listener in self.listeners_for(error_code):
listener.notify(*args, **kwargs) listener.notify(*args, **kwargs)
def register_listener(self, error_code, listener): def register_listener(self, error_code, listener):
"""Register a listener for a specific error_code."""
self.listeners.add(error_code, listener) self.listeners.add(error_code, listener)