class-name-filter/profanityfilter.py

19 lines
496 B
Python
Raw Normal View History

2018-05-15 18:47:24 +02:00
import builtins
_original = builtins.__build_class__
naughty_list = 'pony', 'ponies'
2018-05-15 18:47:24 +02:00
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()