Metadata-Version: 2.1
Name: pybud
Version: 0.2.0
Summary: A python tool for debugging and profiling python functions.
Home-page: https://github.com/Tantan4321/PyBud
Author: Eastan Giebler
Author-email: kupa528@yahoo.com
License: MIT
Download-URL: https://github.com/Tantan4321/PyBud/archive/v0.2.0.tar.gz
Keywords: debugger,tool,python,video
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: dictdiffer (==0.8.1)
Requires-Dist: Pillow (==7.0.0)
Requires-Dist: opencv-python
Requires-Dist: numpy

# PyBud

PyBud is a Python debugging and profiling tool that generates videos of step-by-step code execution.

Here's a PyBud example output from debugging a bubble sort algorithm!

https://streamable.com/s/9ubtq/kudngz

## Installation

Use the package manager [pip](https://pip.pypa.io/en/stable/) to install PyBud.

```bash
pip install pybud
```

## Usage Example

![Usage](recordings/demo.gif)

## Usage

Once installed, running `pybud --help` will give you an overview of how to use PyBud.

Here's the help output:

```bash
$ pybud -h
usage: pybud [-h] [-t] [-d FILE] [-f FUNCTION [FUNCTION ...]] [-o FILE] [-v [FILE]] [-p [FILE]]

A Python debugger for analyzing and profiling functions. Created by Eastan Giebler.

optional arguments:
  -h, --help            show this help message and exit
  -t, --test            Test PyBud on a suite of sorting, searching, and similar algorithms. Outputs a PyBud JSON for
                        each function in the 'pybud/test/test_logs' package.

Debugging:
  Debug a python function and generate an output log.

  -d FILE, --debug FILE
                        Path to the Python file you wish to debug.
  -f FUNCTION [FUNCTION ...], --function FUNCTION [FUNCTION ...]
                        The function in the Python file you wish to debug, along with the arguments you wish to pass.
                        Defaults to the main function if argument not used. EXAMPLE: '--function test 2 4' will call
                        'test(2,4)'.
  -o FILE, --output FILE
                        Optional: Path to write the json log file to. Defaults to output.pybud if argument not used.
  -v [FILE], --video [FILE]
                        Generate a video rendering for the PyBud debug steps of the program flow. Optional: provide a
                        filepath to output to, defaults to output.mp4.

Parsing and Analysis:
  Parse a PyBud JSON output and display in human-readable form.

  -p [FILE], --parse [FILE]
                        Path to the json log you wish to parse into human-readable form. Defaults to output.pybud if a
                        file is not specified.
  -v [FILE], --video [FILE]
                        Generate a video rendering for the PyBud debug steps of the program flow. Optional: provide a
                        filepath to output to, defaults to output.mp4.
```

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

## License
[MIT](https://choosealicense.com/licenses/mit/)


