class-name-filter/profanityfilter.py

19 lines
496 B
Python

import builtins
_original = builtins.__build_class__
naughty_list = 'pony', 'ponies'
def profanity_filter(func, name, *args, **kwargs):
if any(bad_word in name.lower() for bad_word in naughty_list):
raise RuntimeError('Disgusting! Thats how you name your classes?!')
return _original(func, name, *args, **kwargs)
def disallow_profanity():
builtins.__build_class__ = profanity_filter
def allow_profanity():
builtins.__build_class__ = _original
disallow_profanity()