Swarmauri OCR Pytesseract
OCR adapter for Swarmauri built on top of PyTesseract. Accepts paths, bytes, or PIL images, and exposes synchronous, async, and batch APIs for extracting text.
Features
- Wraps Tesseract OCR via PyTesseract behind Swarmauri's
OCRBaseinterface. - Supports multiple languages (
languageparameter) and custom Tesseract configs. - Handles individual, async, and batched OCR calls with optional concurrency limits.
- Helper to list installed Tesseract languages through
get_supported_languages().
Prerequisites
- Python 3.10 or newer.
- Tesseract OCR installed on the host (
tesseractbinary reachable onPATHor viaTESSERACT_CMD). pytesseract,Pillow, and related dependencies (installed automatically with this package).
Installation
# pip
pip install swarmauri_ocr_pytesseract
# poetry
poetry add swarmauri_ocr_pytesseract
# uv (pyproject-based projects)
uv add swarmauri_ocr_pytesseract
Quickstart
from swarmauri_ocr_pytesseract import PytesseractOCR
ocr = PytesseractOCR(language="eng")
text = ocr.extract_text("docs/invoice.png")
print(text)
Processing Image Bytes
from pathlib import Path
from swarmauri_ocr_pytesseract import PytesseractOCR
png_bytes = Path("receipts/ticket.png").read_bytes()
ocr = PytesseractOCR(language="eng", config="--psm 6")
print(ocr.extract_text(png_bytes))
Async and Batch APIs
import asyncio
from swarmauri_ocr_pytesseract import PytesseractOCR
ocr = PytesseractOCR(language="fra")
async def run_async():
text = await ocr.aextract_text("scans/document_fr.png")
print(text)
texts = await ocr.abatch([
"scans/page1.png",
"scans/page2.png",
], max_concurrent=2)
for page, content in enumerate(texts, start=1):
print(f"Page {page}: {content[:80]}")
# asyncio.run(run_async())
List Available Languages
from swarmauri_ocr_pytesseract import PytesseractOCR
ocr = PytesseractOCR()
print(ocr.get_supported_languages())
Tips
- Set
TESSERACT_CMDif the binary lives outside standard locations (e.g., Windows installs). - Use appropriate page segmentation modes (
--psm) and OCR engine modes (--oem) through theconfigparameter to improve quality. - Pre-process images (grayscale, thresholding) before passing them to the OCR for better accuracy.
- When running in containers, ensure Tesseract language packs (
.traineddata) are installed for the languages you plan to use.
Want to help?
If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.
Metadata
Release files for swarmauri_ocr_pytesseract 0.9.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swarmauri_ocr_pytesseract-0.9.3.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swarmauri_ocr_pytesseract-0.9.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.2 kB
Release files / swarmauri_ocr_pytesseract-0.9.3.tar.gz
| Download URL | swarmauri_ocr_pytesseract-0.9.3.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4d5c947195050939fef372df113ad65db953e6642acdc284d0b314cf41c3954
|
|
BLAKE2b-256 checksum How to use checksums |
20893acb3eb29f391e4cb827e414330f4446f2b9df18762beb259f9db92be418
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","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}
|
Release files / swarmauri_ocr_pytesseract-0.9.3-py3-none-any.whl
| Download URL | swarmauri_ocr_pytesseract-0.9.3-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2886446dcc257c364b4804d35ddab2ed453e61119f4ae3df0c622f194e5ba1e7
|
|
BLAKE2b-256 checksum How to use checksums |
8fd731c4e9f83bedf201518c6d215fe19a1bc30f9c58b85f637030b9e686847b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","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}
|