Offline Python traceback translator and error explainer CLI that converts exceptions into clear explanations and actionable fixes.
Project description
Error Translator
Error Translator is an offline Python traceback translator and exception explainer that converts raw errors into crystal-clear explanations and immediately actionable fixes. Built for local-first development workflows, it supports direct CLI usage, an automatic import hook, a programmatic Python API, and a FastAPI integration.
If this project saves you debugging time, please consider starring it on GitHub: https://github.com/gourabanandad/error-translator-cli-v2
Why Developers Like It
- Fast Feedback Loop: Turn stack traces into direct next actions in seconds.
- Works Offline: No telemetry dependency for core translation behavior.
- Beginner-Friendly Output: Explanations are clear enough for learners, practical enough for teams.
- Multiple Entry Points: CLI, import hook, Python API, and FastAPI all share one deterministic engine.
Key Features
- CLI-First Architecture: Seamlessly process scripts, direct error strings, or piped logs via the
explain-errorcommand. - Automatic Integration Mode: Inject the module via
import error_translator.autoto automatically overridesys.excepthookfor graceful, translated crash reporting. - Extensible API Surfaces: Integrate natively within Python or expose the core engine over HTTP via the included FastAPI server.
- Deterministic Rules Engine: High-performance, regex-based matching powered by
rules.jsonguarantees offline and privacy-first translations. - Optional Native Acceleration: A C extension matcher (
fast_matcher) can accelerate rule scanning, with automatic fallback to pure Python when unavailable. - Optional AST Insight Hooks: Registered handlers can append targeted hints (
ast_insight) for selected error types.
Installation
Python requirement: 3.9 or newer.
Install the latest stable release directly from PyPI:
pip install error-translator-cli-v2
Verify the installation:
explain-error --version
Usage Guide
1. Command-Line Interface (CLI)
Run a Python script and catch any unhandled exceptions:
explain-error run script.py
Provide an error string directly:
explain-error "NameError: name 'usr_count' is not defined"
Pipe system or Docker logs into the engine:
cat error.log | explain-error
Emit structured JSON for scripting and automation:
explain-error --json "NameError: name 'x' is not defined"
# {"explanation": "...", "fix": "...", "matched_error": "...", "file": "...", "line": "...", "code": "...", "ast_insight": null}
The --json flag works with every input mode (run <script>, raw string, piped log).
2. Automatic Import Hook
Catch and translate unhandled exceptions globally by importing the module:
import error_translator.auto
def main():
# This TypeError will automatically trigger the error translator
total = "Users: " + 42
if __name__ == "__main__":
main()
3. FastAPI Service
Start the built-in HTTP server for remote translation services:
uvicorn error_translator.api.server:app --host 127.0.0.1 --port 8000 --reload
Submit a traceback payload via the exposed REST API:
curl -X POST http://127.0.0.1:8000/translate \
-H "Content-Type: application/json" \
-d "{\"traceback_setting\":\"Traceback (most recent call last):\\n File 'app.py', line 14, in <module>\\n total = 'Users: ' + 42\\nTypeError: can only concatenate str (not 'int') to str\"}"
Additional endpoints:
GET /healthreturns service status.GET /serves the bundled web UI fromerror_translator/api/static/index.html.
4. Optional C Extension Build
The translation engine automatically attempts to import error_translator.fast_matcher.
If it is not built or not available on the platform, Error Translator falls back to the pure Python regex loop with no behavior change.
Build the extension in-place from the repository root:
python setup_ext.py build_ext --inplace
This step is optional and intended for local performance optimization.
Documentation
Detailed documentation is located in the docs/ directory:
- Real-World Examples: Practical demonstrations comparing raw tracebacks with their translated counterparts.
- Architecture & Internals: Comprehensive teardown of the regex engine, AST integration, and internal design philosophy.
- Contributing Guidelines: Standards, PR checklists, and instructions for utilizing our AI-Powered Rule Builder.
Maintainers
This project is actively developed and maintained by Gourabananda Datta alongside our open-source contributors.
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 error_translator_cli_v2-1.1.5.tar.gz.
File metadata
- Download URL: error_translator_cli_v2-1.1.5.tar.gz
- Upload date:
- Size: 32.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
268654604b09daed4cf7eecd0365578d1ee8318d225c96736388211966f20d83
|
|
| MD5 |
8ded8c61ee53683b47825f4b6b9d8cc2
|
|
| BLAKE2b-256 |
0c834536670074470894b0486c90578f2044b3c4443212eac6910a31c489b76a
|
File details
Details for the file error_translator_cli_v2-1.1.5-py3-none-any.whl.
File metadata
- Download URL: error_translator_cli_v2-1.1.5-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfa7eb74e3fe99ba08ec373889d3606a3c452b38d46ced79aa7093700a6a5b36
|
|
| MD5 |
cdcd10bb42f9dcc558af631e44562ff4
|
|
| BLAKE2b-256 |
6593227096bb24a4279bdd90e98927faf29c0c78c84ca9e37cc01ae06b5e01df
|