Find all exceptions that your code and its dependencies can raise, to make your work foolproof!
Report Bug
Do you know about the "demo effect"? The fact that your well-tested code will suddently fail the moment you show it to someone? Often, it's because you forgot to handle an exception that you didn't think about.
🪨 FoolProof automatically identifies the exceptions that your code and its dependencies can raise, so you're never caught off guard again!
Using foolproof is very simple.
Install foolproof with pip :
pip install foolproof
To analyse an entire module mypackage
, with all the functions and methods it contains, add this lines at the begginning of your code:
import foolproof
import mypackage
foolproof(mypackage)
You can also use it directly on a function:
import foolproof
from mypackage import main
foolproof(main)
Ideally, I would like to add more features to foolproof, but I don't have much time for it. If you want to contribute, you're more than welcome to do so!
Task | Importance | Difficulty | Contributor on it | Description |
---|---|---|---|---|
Adding links to file | 5/5 | 5/5 | - | More than printing the raise command, we should print the link to the file in which the raise is used. This implies a major rework of foolproof, as the python ast does not keep the link between ast nodes and files. |
Contributing is an awesome way to learn, inspire, and help others. Any contributions you make are greatly appreciated, even if it's just about styling and best practices.
If you have a suggestion that would make this project better, please fork the repo and create a pull request.
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/YourAmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This library was created by Nicolas MICAUX.
You might also be interested by autotestreg
A lot of this code is taken from https://github.com/DontShaveTheYak/deep-ast (https://pypi.org/project/deep-ast/)
License: GNU General Public License v3 (GPLv3)
All credits goes to Levi Blaney - @shady_cuz, shadycuz@gmail.com