Source code for eventtracking.processors.whitelist
"""Filter out events whose names aren't on a pre-configured whitelist"""
from eventtracking.processors.exceptions import EventEmissionExit
[docs]class NameWhitelistProcessor:
"""
Filter out events whose names aren't on a pre-configured whitelist.
`whitelist` is an iterable collection containing event names that should be allowed to pass.
"""
def __init__(self, whitelist=None, **_kwargs):
try:
if isinstance(whitelist, str):
raise TypeError
self.whitelist = frozenset(whitelist)
except TypeError as error:
raise TypeError(
'The NameWhitelistProcessor must be passed a collection of allowed names '
'using the "whitelist" parameter'
) from error
def __call__(self, event):
if event['name'] not in self.whitelist:
raise EventEmissionExit()
return event