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