Text Length Tool for Swarmauri
Project description
Swarmauri Tool · Text Length
A Swarmauri-ready helper that measures text length in characters, words, and sentences using NLTK tokenization. Drop it into content pipelines, moderation bots, or editorial agents to monitor message size and cadence.
- Counts characters (excluding spaces) for quick size checks.
- Uses NLTK tokenizers to calculate word and sentence totals accurately.
- Returns a structured dictionary suitable for logging, analytics, or conversational outputs.
Requirements
- Python 3.10 – 3.13.
nltkwith thepunkt_tabresource available (downloaded automatically on import).- Core Swarmauri dependencies (
swarmauri_base,swarmauri_standard,pydantic).
Installation
Pick the packaging tool that fits your workflow; each command installs dependencies.
pip
pip install swarmauri_tool_textlength
Poetry
poetry add swarmauri_tool_textlength
uv
# Add to the current project and update uv.lock
uv add swarmauri_tool_textlength
# or install into the active environment without editing pyproject.toml
uv pip install swarmauri_tool_textlength
Tip: When building containers or offline environments, pre-fetch NLTK data with
python -m nltk.downloader punkt_tabto avoid runtime downloads.
Quick Start
from swarmauri_tool_textlength import TextLengthTool
text = "This is a simple test sentence."
length_tool = TextLengthTool()
result = length_tool(text)
print(result)
# {
# 'num_characters': 26,
# 'num_words': 7,
# 'num_sentences': 1
# }
Usage Scenarios
Enforce Message Length in Moderation Bots
from swarmauri_tool_textlength import TextLengthTool
length_checker = TextLengthTool()
message = """Please keep replies under 50 words so the queue stays manageable."""
metrics = length_checker(message)
if metrics["num_words"] > 50:
raise ValueError("Message too long for moderation queue")
Provide Real-Time Feedback in a Swarmauri Agent
from swarmauri_core.agent.Agent import Agent
from swarmauri_core.messages.HumanMessage import HumanMessage
from swarmauri_standard.tools.registry import ToolRegistry
from swarmauri_tool_textlength import TextLengthTool
registry = ToolRegistry()
registry.register(TextLengthTool())
agent = Agent(tool_registry=registry)
message = HumanMessage(content="Analyze how long this paragraph is compared to our guideline.")
response = agent.run(message)
print(response)
Batch Audit Documentation for Sentence Length
from pathlib import Path
from swarmauri_tool_textlength import TextLengthTool
length_tool = TextLengthTool()
for doc in Path("docs").rglob("*.md"):
metrics = length_tool(doc.read_text(encoding="utf-8"))
print(f"{doc}: {metrics['num_sentences']} sentences, {metrics['num_words']} words")
Scan an entire documentation set to identify sprawling sections or under-documented topics.
Troubleshooting
LookupError: Resource punkt_tab not found– Runpython -m nltk.downloader punkt_tabahead of time, especially in air-gapped deployments.- Unexpected character counts – The tool excludes spaces; adjust the implementation if you need raw length including whitespace.
- Non-English text – NLTK’s default tokenizers target English. Swap in language-specific tokenizers if needed.
License
swarmauri_tool_textlength is released under the Apache 2.0 License. See LICENSE for full details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarmauri_tool_textlength-0.8.3.dev3.tar.gz.
File metadata
- Download URL: swarmauri_tool_textlength-0.8.3.dev3.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad95717af1d488f84753212855aa8ab5384dc7e93eeb9d1b282eebfa0365b4ec
|
|
| MD5 |
be9fb6ecba198910ca3209e33dd6e133
|
|
| BLAKE2b-256 |
5634d4bb879ced091570895144ca29253b354013cdb20f12cb01f5e469f94521
|
File details
Details for the file swarmauri_tool_textlength-0.8.3.dev3-py3-none-any.whl.
File metadata
- Download URL: swarmauri_tool_textlength-0.8.3.dev3-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2ee1a375367f49da4c6cf592d3144bcaab1fb70a569283a2c730a231ca1cfa1
|
|
| MD5 |
9387d8f641e506e5a8d19aa85e4dc9ca
|
|
| BLAKE2b-256 |
360528b85c8b24c712ad776a50dc2fd5c07b40b83feb763c73591e989a4bbadf
|