Skip to content

πŸ›‘ flake8 plugin that forbids debug funcs in prod codebase (flake8, ast)

License

Notifications You must be signed in to change notification settings

vyahello/flake8-debug

Repository files navigation

Screenshot

made-with-python Coverage Status Code style: black Checked with flake8 License PyPI version shields.io PyPI pyversions PyPi downloads Downloads EO principles respected here

flake8-debug

A simple flake8 plugin that forbids the usage of print, breakpoint and pdb.set_trace functions in production code.

Tools

Production

Development

Installation

PYPI

pip install flake8-debug
✨ 🍰 ✨

Source code

git clone git@github.com:vyahello/flake8-debug.git
cd flake8-debug
python3 -m venv venv 
. venv/bin/activate
pip install -e .

Errors

Codes

  • DB100 - print function is detected.
  • DB200 - breakpoint function is detected.
  • DB201 - breakpointhook function is detected.
  • DB300 - set_trace function is detected.

Sample

# foo.py
import pdb
from pdb import set_trace
from sys import breakpointhook


def bar(*a):
    print(a)
    breakpoint()
    breakpointhook()
    set_trace()
    pdb.set_trace()
flake8 foo.py

foo.py:7:5: DB100 print() function usage is detected
foo.py:8:5: DB200 breakpoint() function usage is detected
foo.py:9:5: DB201 breakpointhook() function usage is detected
foo.py:10:5: DB300 set_trace() function usage is detected
foo.py:11:5: DB300 set_trace() function usage is detected

⬆ back to top

Development notes

Testing

Please run the following script to start plugin tests:

pytest 

CI

To be able to run code analysis, please execute command below:

./analyse-source-code.sh

Meta

Author – Vladimir Yahello.

Distributed under the MIT license. See license for more information.

You can reach out me at:

Contributing

I would highly appreciate any contribution and support. If you are interested to add your ideas into project please follow next simple steps:

  1. Clone the repository
  2. Configure git for the first time after cloning with your name and email
  3. pip install -r requirements.txt to install all project dependencies
  4. pip install -r requirements-dev.txt to install all development project dependencies
  5. Create your feature branch (git checkout -b feature/fooBar)
  6. Commit your changes (git commit -am 'Add some fooBar')
  7. Push to the branch (git push origin feature/fooBar)
  8. Create a new Pull Request

What's next

All recent activities and ideas are described at project issues page. If you have ideas you want to change/implement please do not hesitate and create an issue.

⬆ back to top