Run vulture (https://pypi.org/project/vulture/) with pytest to find dead code.
py.test --vulture
would be the most simple usage and would run vulture for all error messages.
py.test --vulture --vulture-cfg-file=/test/vulture.ini
This would use the vulture with the /test/vulture.ini config path
- ignoring lines :
def test():
a = 2 # vulture: ignore
- ignoring methods :
def test(): # vulture: ignore
pass
- ignoring classes :
class Test: # vulture: ignore
pass
The config file (the path can be defined by the --vulture-cfg-file option) can look like this :
[vulture]
# completely exclude files for vulture
exclude =
*/test/* # We usualy exclude tests because tests can cover dead code
# those file are ignored by pytest, but still computed by vulture
ignore =
src/toto.py
# ignoring names in code
ignore-names =
delimiter
# ignoring decorators
ignore-decorators =
@application.errorhandler
@application.route
@celery_app.task
@application.app.errorhandler
# ignore vulture type of messages
ignore-types =
attribute
variable
This code depends on vulture
If you want to help development, there is overview documentation in DEVELOPMENT.rst.
If you encounter any problems, please file an issue along with a detailed description.
- Uses vulture with pytest (tested with python 3.7 3.8 and 3.9, with vulture==2.3 and pytest 7.x)
- stable Gatewatcher internal use only
- unstable Gatewatcher internal use only