Skip to content

Latest commit

 

History

History
120 lines (80 loc) · 3.63 KB

README.md

File metadata and controls

120 lines (80 loc) · 3.63 KB

FFB: Find Fucking Bug

pypi License: GPL v3 Supported Python versions Code Style - Ruff Pre Commit ci

FFB Logo

FFB is a Python package designed to simplify debugging by analyzing your terminal output and providing concise solutions and explanations for errors. Whether you're new to coding or an experienced developer, FFB aims to reduce the time spent deciphering cryptic error messages and helps you find solutions faster.

 

 

 

TODO

  • Suggests solutions with code examples
  • Implement unit tests for the new API
  • Improve documentation
  • Serve with cloud-hosted API
  • Design and implement a user interface (UI)

Installation

You can install FFB via pip:

pip install ffb

Self-hosted

Ensure Ollama is running on your machine. You can find the setup and installation instructions for Ollama by visiting the Ollama GitHub repository.

Make sure you pull the model

ollama pull llama3.1

To run FFB in a self-hosted environment using Ollama, you’ll need to set the OLLAMA_API_URL environment variable. By default, you can set it to http://localhost:11434

export OLLAMA_API_URL=http://localhost:11434

Usage

To use FFB, simply run your Python script as usual. If an error occurs, call ffb to analyze the last output.

Example

Given the following Python code:

def divide_numbers(a, b):
    result = a / b
    print(f"Result: {result}")

divide_numbers(10, 0)

Running this code will produce the following error:

Traceback (most recent call last):
  File "/Users/aliymnx/Desktop/main.py", line 6, in <module>
    divide_numbers(10, 0)
  File "/Users/aliymnx/Desktop/main.py", line 2, in divide_numbers
    result = a / b
             ~~^~~
ZeroDivisionError: division by zero

To analyze this error using FFB, simply run:

ffb

FFB will analyze the error and provide a detailed solution:

Error Summary The error occurs when attempting to divide a number by zero, which is undefined.

Solution

def divide_numbers(a, b):
   if b == 0:
      return "Error: Division by zero is not allowed."
  else:
    result = a / b
    return result

print(divide_numbers(10, 0))


Explanation To resolve this issue, we've added a simple check in the divide_numbers function to ensure that the divisor (b) is not zero. If it is zero, the function returns an error message instead of attempting the division, thus preventing the ZeroDivisionError.

Contributing

If you’d like to contribute to FFB, feel free to submit issues and pull requests on the GitHub repository.

License

The license section now reflects the GPL-3.0 license as requested.