polyguard
Take a look
This project now has automated documentation that gets generated, this manually written one will remain for legacy reasons, but you can now take a look at the automatic documentation here: https://hanra-s-work.github.io/polyguard/
Description
Table of Content
Installation
Using pip
pip install -U polyguard
Using python
Under Windows:
py -m pip install -U polyguard
Under Linux/Mac OS:
python3 -m pip install -U polyguard
Usage
Running as a script
You can run polyguard directly as a script to start an interactive terminal session:
python -m polyguard
This will launch the interactive PolyGuard interface where you can execute commands.
Importing
from polyguard import PolyGuard
Initialising
To initialize PolyGuard, you need to create a language configuration and pass it to the constructor:
from polyguard.src.polyguard import PolyGuard
from polyguard.src.constants import LangConfig
# Create a language configuration (enable desired languages)
lang_config = LangConfig()
# By default, all supported languages are enabled
# Initialize PolyGuard with optional parameters
polyguard_instance = PolyGuard(
langs=lang_config,
db_path=None, # Uses default package database if None
success=0, # Exit code for success
error=1, # Exit code for error
log=True, # Enable logging
debug=False # Enable debug-level logging
)
Usage Examples
Once initialized, you can use the following methods:
# Check if a word is profanity (returns bool)
if polyguard_instance.is_a_swearword("hello world"):
print("Contains profanity")
else:
print("Clean text")
# Extract the first matching swearword (returns Optional[str])
offending_word = polyguard_instance.extract_swearword_if_present("some bad word here")
if offending_word:
print(f"Found profanity: {offending_word}")
# Get all swearwords for enabled languages (returns Dict[str, Set])
all_words = polyguard_instance.get_list_of_swearwords()
for language, words in all_words.items():
print(f"{language}: {len(words)} words")
Note: The database initialization happens automatically on the first call to any lookup function, so you don't need to call main() manually.
Per-Call Language Configuration
All lookup functions accept an optional languages_to_check parameter, allowing you to override the default language configuration on a case-by-case basis:
from polyguard import LangConfig
# Create a custom language config for this specific check
custom_langs = LangConfig()
custom_langs.en = True # Only check English
custom_langs.fr = False # Don't check French
custom_langs.de = False # Don't check German
# ... set other languages as needed
# Use the custom config for this lookup only
if polyguard_instance.is_a_swearword("hello world", languages_to_check=custom_langs):
print("Contains profanity in enabled languages")
# Extract swearword with custom language set
word = polyguard_instance.extract_swearword_if_present(
"bonjour monde",
languages_to_check=custom_langs
)
# Get swearwords for custom language subset
words = polyguard_instance.get_list_of_swearwords(languages=custom_langs)
This is useful when you need to:
- Check text against only specific languages
- Perform different validations for different contexts
- Optimize performance by limiting language checks to what's needed
If languages_to_check/languages is not provided, the instance's default configuration (set during initialization) is used.
Documentation
Comprehensive Doxygen-generated documentation is available online at https://hanra-s-work.github.io/polyguard/. This includes detailed API references, class documentation, and usage examples.
To generate the documentation locally, navigate to the doxygen_generation directory and run the provided scripts.
Author
This module was written by (c) Henry Letellier Attributions are appreciated.
Metadata
Release files for polyguard 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| polyguard-1.0.4.tar.gz | 639.2 kB | Without provenance | Details for polyguard-1.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| polyguard-1.0.4-py3-none-any.whl | Python 3 | none | any | Details for polyguard-1.0.4-py3-none-any.whl |
Total release size: 1.3 MB
Release files / polyguard-1.0.4.tar.gz
| Download URL | polyguard-1.0.4.tar.gz |
|---|---|
| Size | 639.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1687f516ceae9dfafa965642df5c246c4a570cd87eb30bac407a4aab84ef5baf
|
|
BLAKE2b-256 checksum How to use checksums |
7f57ac437b180cfd0e50b814c2c88917c7e4ce2150e28f106dcfbe0a7dd96128
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / polyguard-1.0.4-py3-none-any.whl
| Download URL | polyguard-1.0.4-py3-none-any.whl |
|---|---|
| Size | 634.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
55410786a2aefb771244b8c6f2bd57c34fc18269f1968e5776510e6f2b6585dd
|
|
BLAKE2b-256 checksum How to use checksums |
13c9d810f753a9a437041aeb4feda1a1545d9719183b09666eb4ea68aa2bd451
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Security for polyguard 1.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.