A simple word filter module for Python
Project description
wordfilter2
wordfilter2 is a lightweight and fast Python module for filtering and censoring words in text. It is designed to detect and optionally replace offensive, sensitive, or unwanted terms using customizable options such as case sensitivity, partial matching, and replacement strategies.
Features
- ✅ Add or remove custom words to filter
- 🔍 Detect profanity or unwanted words in a given text
- 🧩 Optional partial or exact word matching
- 🔠 Case-insensitive or case-sensitive filtering
- ✏️ Replace filtered words with a character or a custom function
- 📁 Load word lists from files (txt and json only for now) and save them back
- 🌐 Load words from URLs
Installation
Install with PyPI:
pip install wordfilter2
Usage
from wordfilter2 import WordFilter
# Initialize the filter
wf = WordFilter(ignore_case=True, partial_match=False, replace_with="*")
# Add words to filter
wf.add_words(["badword", "offensive"])
# Filter text
filtered = wf.filter("This is a badword example.")
print(filtered) # Output: This is a ******* example.
# Check if text contains profanity
contains = wf.contains_profanity("Something offensive here.")
print(contains) # Output: True
Custom Replacement
from wordfilter2 import WordFilter
def censor(word: str) -> str:
return "[" + word.upper() + "]"
wf = WordFilter(replace_with_func=censor)
wf.add_word("spoiler")
print(wf.filter("This is a spoiler.")) # Output: This is a [SPOILER].
or
from wordfilter2 import WordFilter
wf = WordFilter(replace_with_func=lambda word: "[" + word.upper() + "]")
wf.add_word("spoiler")
print(wf.filter("This is a spoiler.")) # Output: This is a [SPOILER].
Working with Files
# Load words from a .txt or .json file (one word per line)
wf.load_from_file("banned_words.txt")
# Load words from URL (json or plain/text Content-Type)
wf.load_from_url("https://your_url/goes_here.json")
# Save the current word list
wf.save_to_file("output_words.txt")
License
This project is licensed under the MIT License. See LICENSE for details.
Clean content made simple with wordfilter2.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wordfilter2-1.1.1.tar.gz
(5.3 kB
view details)
File details
Details for the file wordfilter2-1.1.1.tar.gz.
File metadata
- Download URL: wordfilter2-1.1.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bde64bc680861297f42c1589f14131f4349927037adbb8b80a1de1ce5b0a9b45
|
|
| MD5 |
f0136780a88320cdb9a02b4f0627f967
|
|
| BLAKE2b-256 |
cf0c189c3ba01fc6afb777457403f164d4ebd620504cc44564883b42afb0bc1c
|