๐ฅ UNFUCK - The Magical Python Error Fixer ๐ฅ
Because life's too short to debug!
Unfuck is a magical Python tool that automatically fixes your code errors with a single command. When your Python script crashes, simply type unfuck and watch the magic happen! โจ
๐ Quick Start
# Install unfuck
pip install unfuck
# Run your script (it will probably break)
python my_script.py
# Unfuck it!
unfuck
# Your code is now working! ๐
โจ Features
๐ฅ Instant Error Fixing
- Fixes 50+ common Python errors automatically
- Works in under 2 seconds
- Zero configuration required
- Creates backups before making changes
๐ค AI-Powered Analysis
- Uses local Ollama LLM for complex errors
- Learns from your mistakes
- Gets smarter over time
- Explains what went wrong
๐ญ Personality Modes
- Encouraging: "I got you! Let me fix that error..."
- Sarcastic: "This again? sigh fixing..."
- Zen: "Breathe... let me find the balance in your code..."
- Professional: "Error detected. Initiating repair sequence..."
- Meme: "TO THE MOON! (with your fixed code)"
๐ ๏ธ Error Types Fixed
| Error Type | Examples | Fix |
|---|---|---|
| Import Errors | ModuleNotFoundError, ImportError |
Install packages, fix typos |
| Syntax Errors | Missing colons, brackets, quotes | Add missing syntax elements |
| Type Errors | String + Integer, NoneType calls | Add type conversions, null checks |
| Name Errors | Undefined variables, scope issues | Define variables, fix scope |
| Index/Key Errors | List out of range, missing dict keys | Add bounds checking, use .get() |
| Attribute Errors | Wrong method calls, typos | Fix method names, add checks |
| Value Errors | Invalid conversions, empty sequences | Add validation, defaults |
| File Errors | Missing files, permission issues | Create files, fix paths |
| Indentation Errors | Mixed tabs/spaces, wrong levels | Fix indentation consistently |
๐ฏ Usage Examples
Basic Usage
# Fix the last error
unfuck
# Fix with explanations
unfuck --explain
# Preview fixes without applying
unfuck --preview
# Use AI for complex errors
unfuck --ai
Personality Modes
# Encouraging mode (default)
unfuck --mode encouraging
# Sarcastic mode
unfuck --mode sarcastic
# Zen mode
unfuck --mode zen
# Professional mode
unfuck --mode professional
# Meme mode
unfuck --mode meme
Advanced Features
# Try harder fixes
unfuck --aggressive
# Show fix history
unfuck --history
# Show success statistics
unfuck --stats
# Undo last fix
unfuck --undo
# Fix everything possible (rampage mode!)
unfuck --rampage
๐ฎ Fun Commands
# Fix everything it can find
unfuck --rampage
# Add meditation comments to code
unfuck --zen
# Git blame with sarcastic comments
unfuck --blame
# Russian roulette - random fix from top options
unfuck --russian-roulette
๐ Achievement System
- ๐ First Unfuck! - Your first successful fix
- ๐ฅ Unfuck Streak - Fix 10 errors in a row
- ๐ Unfuck Master - Fix 100 errors
- ๐ Unfuck Royalty - Fix 500 errors
- ๐ Unfuck Legend - Fix 1000 errors
๐ค AI Integration
Unfuck can use local AI models via Ollama for complex error analysis:
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull a model
ollama pull llama2
# Use AI-powered unfucking
unfuck --ai --explain
๐ Statistics & Learning
Unfuck tracks your debugging journey:
# View your unfuck statistics
unfuck --stats
# View fix history
unfuck --history
# Export your unfuck story
unfuck --export-story
๐ง Configuration
Create ~/.unfuck/config.json to customize:
{
"ai_enabled": true,
"ai_model": "llama2",
"personality_mode": "encouraging",
"auto_backup": true,
"max_fix_attempts": 3,
"confidence_threshold": 0.6,
"show_animations": true,
"verbose_output": false
}
๐งช Testing
Try unfuck with these example broken scripts:
# Test import errors
python examples/test_imports.py
unfuck
# Test syntax errors
python examples/test_syntax.py
unfuck
# Test various errors
python examples/broken_script.py
unfuck
๐จ Screenshots
๐ฅ UNFUCK - The Magical Python Error Fixer ๐ฅ
๐ Error Analysis
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Property โ Value โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Error Type โ ModuleNotFoundError โ
โ Message โ No module named 'numpy' โ
โ File โ /path/to/script.py โ
โ Line โ 3 โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ Fix Suggestions
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโ
โ Rank โ Description โ Confidence โ Type โ
โโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ Install missing module โ 95% โ install โ
โ 2 โ Fix typo in import name โ 80% โ typo โ
โโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโ
๐ Unfucked! Your code is running!
๐ฅ You're on fire! 5 fixes in a row!
๐ค Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Add your fix patterns to the database
- Test with broken scripts
- Submit a pull request
Adding New Fix Patterns
# Add to unfuck/core/pattern_database.py
FixPattern(
error_type="YourError",
error_pattern="error message pattern",
fix_type="your_fix_type",
fix_code="fix implementation",
confidence=0.9,
description="What this fix does",
examples=["example usage"]
)
๐ Roadmap
- JavaScript/TypeScript support
- VS Code extension
- Team collaboration features
- Cloud-based fix sharing
- Machine learning improvements
- Plugin system for custom fixes
๐ Bug Reports
Found a bug? We want to fix it! Please report issues with:
- The error that occurred
- What unfuck tried to do
- What actually happened
- Your Python version and OS
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- The Python community for all the Stack Overflow questions that inspired this
- Ollama for making local AI accessible
- Rich for beautiful terminal output
- All the developers who've ever been frustrated by debugging
๐ Star History
Made with โค๏ธ by the unfuck team
"Because life's too short to debug" ๐
Website โข Documentation โข Discord โข Twitter
Metadata
Release files for python-unfuck 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python_unfuck-1.0.2.tar.gz | 38.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_unfuck-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.6 kB
Release files / python_unfuck-1.0.2.tar.gz
| Download URL | python_unfuck-1.0.2.tar.gz |
|---|---|
| Size | 38.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da9ffc68809a9d564d410798690b0ad23612afb523e541956588d18fe5d1cb4a
|
|
BLAKE2b-256 checksum How to use checksums |
81750da07928921d6279d7650dc1e523979e87b9009c5c0527420c182e4646bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / python_unfuck-1.0.2-py3-none-any.whl
| Download URL | python_unfuck-1.0.2-py3-none-any.whl |
|---|---|
| Size | 41.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8fabcd5445fc1e7f032a10be69970a7886f701a80b199730b3de4f15e2e9a25f
|
|
BLAKE2b-256 checksum How to use checksums |
db30bbc677e38d934849ab8b42daa312eff3497ae1fa64401908816de1d5736e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|