def __init__(self, **kwargs):
<EOL>self._custom_censor_list = kwargs.get("<STR_LIT>", [])<EOL>self._extra_censor_list = kwargs.get("<STR_LIT>", [])<EOL>self._no_word_boundaries = kwargs.get("<STR_LIT>", False)<EOL>self._censor_list = []<EOL>self._censor_char = "<STR_LIT:*>"<EOL>self._BASE_DIR = os.path.abspath(os.path.dirname(__file__))<EOL>self._words_file = os.path.join(self._BASE_DIR, '<STR_LIT:data>', '<STR_LIT>')<EOL>self._load_words()<EOL>
Returns a ProfanityFilter instance.

Kwargs:
    - custom_censor_list (list): 
        A custom list of bad words to be used instead of the default list.
    - extra_censor_list (list): 
        A custom list of bad words to be used in conjunction with the default list.
    - no_word_boundaries (bool): 
        False means no word boundaries will be used in the regex for bad words. 
        i.e abc\ **badword**\ abc will be treated as profane.