๐ฅ The magical Python error fixing tool that automatically fixes your code with a single command! Features AI integration, 5 personality modes, and fixes 50+ common errors in under 2 seconds.
Project description
๐ฅ 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
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 python_unfuck-1.0.2.tar.gz.
File metadata
- Download URL: python_unfuck-1.0.2.tar.gz
- Upload date:
- Size: 38.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da9ffc68809a9d564d410798690b0ad23612afb523e541956588d18fe5d1cb4a
|
|
| MD5 |
09da07d0a77f68452013db4f327b5b6b
|
|
| BLAKE2b-256 |
81750da07928921d6279d7650dc1e523979e87b9009c5c0527420c182e4646bf
|
File details
Details for the file python_unfuck-1.0.2-py3-none-any.whl.
File metadata
- Download URL: python_unfuck-1.0.2-py3-none-any.whl
- Upload date:
- Size: 41.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fabcd5445fc1e7f032a10be69970a7886f701a80b199730b3de4f15e2e9a25f
|
|
| MD5 |
c73b3b399a11843e19958e0a833a94f2
|
|
| BLAKE2b-256 |
db30bbc677e38d934849ab8b42daa312eff3497ae1fa64401908816de1d5736e
|