A high-performance bionic reading traceback and log formatter for the terminal.
Project description
<img src="https://raw.githubusercontent.com/Pranay-Bhaskar/bionify/main/assets/bionify_logo.png" alt="Bionify Logo" width="180"" alt="Bionify Logo" width="220"/>
Bionify is a lightning-fast, C++ powered terminal formatter that applies Bionic Reading algorithms to your Python tracebacks and logs.
By strategically bolding the first half of words, Bionify guides your eyes through massive walls of terminal text, allowing you to parse crash logs, errors, and system outputs in a fraction of the time.
Features
- Zero-Config Hooks: Import it once, and Fovea automatically intercepts and styles your unhandled exceptions and
stderroutputs. - Native Logging Integration: Includes a custom formatter for Python's standard
logginglibrary. - Hyperlink Protection: Smart enough to leave URLs (
https://) and file paths (C:\) unformatted so they remain clickable in modern terminals like VS Code. - Blazing Fast Backend: The text parsing engine is written entirely in C++ using
nanobind, ensuring zero latency even on massive stack traces. - Custom Aesthetics: Easily configure intensity, bolding, and ANSI colors to match your terminal theme.
Installation
Currently available for Windows (64-bit).
pip install bionify
Quick Start
The easiest way to use Fovea is to simply import it at the top of your entry-point file. It will automatically hook into sys.excepthook and sys.stderr.
import bionify
# Bionify is now active! Any unhandled exceptions will be styled.
raise RuntimeError("This traceback will be styled for rapid reading!")
Advanced Usage
Customizing the Aesthetic
Fovea defaults to Bold Cyan with a 50% reading intensity. You can easily adjust this to match your terminal theme:
import bionify
# Change the fixation intensity (0.1 to 1.0)
bionify.set_prescription(0.6)
# Change the color (cyan, magenta, yellow, red, green, blue, white)
bionify.set_style(bold=True, color="magenta")
# Power user? Pass your own raw ANSI escape sequences
bionify.set_color_ansi(prefix="\033[1;95m", suffix="\033[0m")
Using with the logging Library
If you want to apply Bionify to your standard Python logs, use the provided BionicFormatter:
import logging
from bionify.hook import BionicFormatter
logger = logging.getLogger("MyBackend")
handler = logging.StreamHandler()
# Attach the Fovea formatter
handler.setFormatter(BionicFormatter("%(levelname)s: %(message)s"))
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.info("Database connection established successfully.")
Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
License
This project is licensed under the MIT License © 2026 Pranay.
Project details
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 bionify-0.1.1.tar.gz.
File metadata
- Download URL: bionify-0.1.1.tar.gz
- Upload date:
- Size: 104.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c368c8da3021038a925c742a5890d8c7cd2280566605352d3fa585518835c27
|
|
| MD5 |
37dc5014cb650a9e069acf4176a0c86d
|
|
| BLAKE2b-256 |
98c835e5d007b86f3c407d883510b3a2659597c8be555cdca9af1d2ec6262aea
|
File details
Details for the file bionify-0.1.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: bionify-0.1.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 44.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0b92b8b3446e1e5edfa08492783b9e77cab224e69089298c7b1b14da3fcfef1
|
|
| MD5 |
4bbe909f70e70111ee775a120b1114c4
|
|
| BLAKE2b-256 |
e6ab6703ddb340e12c9bcf58b4e8c95c8e909bb993e81a0719e5d9136868fe09
|