git-pylint-commit-hook
Pre-commit hook for Git checking Python code quality. The hook will check files ending with .py
or that has a she bang (#!) containing python
.
The script will try to find pylint configuration files in the order determined by pylint. It also looks for a [pre-commit-hook] section in the pylint configuration for commit hook specific options.
Installation
Install via PyPI
pip install git-pylint-commit-hook
Usage
The commit hook will automatically be called when you are running git commit
. If you want to skip the tests for a certain commit, use the -n
flag, git commit -n
.
Configuration
Settings are loaded by default from the .pylintrc file in the root of your repo.
[pre-commit-hook]
command=custom_pylint
params=--rcfile=/path/to/another/pylint.rc
limit=8.0
command is for the actual command, for instance if pylint is not installed globally, but is in a virtualenv inside the project itself.
params lets you pass custom parameters to pylint
limit is the lowest value which you want to allow for a pylint score. Any lower than this, and the script will fail and won't commit.
Any of these can be bypassed directly in the pre-commit hook itself. You can also set a different default place to look for the pylintrc file.
Running tests
The test suite requires nose2
to be installed. Install it with pip install nose2
, then run the tests by executing the following command (in the project root folder):
nose2
Requirements
This project supports Python 2.7 and Python 3.5. Please install other requirements via
pip install -r requirements.txt
Release notes
2.6.1 (2022-02-13)
2.5.1 (2018-10-24)
- Check if a file is ignored before checking if it's a python file #69
2.5.0 (2018-07-27)
- Don't fail files with
pylint: skip-file
#66
2.4.0 (2018-03-12)
- Skip
pylintrc
parameter, if file not present #62
2.3.0 (2018-02-24)
2.2.2 (2017-05-19)
2.2.1 (2016-09-27)
- Correct index.lock file deletion and other fixes & formatting. Thanks to @sandipagarwal for this bug fix
2.2.0 (2016-09-08)
- Add support for Python 3.5
- Support for showing pylint violations in case of passing of limit. Contributed by @sandipagarwal
- Use pylints config file read order. Contributed by @evanunderscore
- Fix multiple git process problem. Thank you @lagelalegal for providing a fix.
- Add flag for ignoring certain files. Thanks @thiblahute for the contribution
- Some refactor and bug fixes
2.1.1 (2016-02-26)
- Stash unstaged changes before running pylint. Thanks @evanunderscore for the PR
2.1.0 (2016-01-18)
- Add Python 3 support. Thanks @jAlpedrinha for the PR
- Add tox support. Thanks @jAlpedrinha for the PR
2.0.9 (2014-10-16)
- Add option to suppress pylint report if score is below limit. Thanks @jwkvam for the PR
2.0.7 (2014-10-16)
- 2.0.6 fails if pylint params is not set
- Separate code for testing if a file is Python into a new function
- Add unit tests for
_current_commit
andget_list_of_committed_files
2.0.5 (2014-10-08)
2.0.5 (2014-05-06)
- Make hook work properly on initial commit. Thanks @evvers for the PR
2.0.4 (2014-05-01)
- Add pylint to install_requires. Thanks @evvers for the PR
2.0.3 (2014-02-07)
- Fixed error in decimal representation
2.0.1 (2013-12-08)
- Added
--version
flag to command line #22 - Packaging fixes
2.0.0 (2013-12-08)
- Documentation updated and moved to Read The Docs
git-pylint-commit-hook
is now a regular command- Installation via PyPI:
pip install git-pylint-commit-hook
- Configurable using command line parameters. See the documentation for details
1.0.0 (2013-10-13)
- Added support for default .pylintrc file, and also for loading our own options from there.
0.8 (2013-01-09)
0.7 (2012-12-07)
- Bug when skipping init.py files fixed. Wrong path was checked under some circumstanses
0.6 (2012-12-04)
- Added support for negative pylint scores #4
- Added support for custom command line params to pylint #6
- Fixed bug #3 Empty .py files fails according to pylint
0.5 (2012-12-01)
0.4 (2012-11-30)
- Fixed bug #1 Files parsed number is not increased
0.3 (2012-11-18)
- Fixed bug with non-python files getting checked, if they contained
python
on the first row
0.2 (2012-11-16)
- Added support for handling moved or deleted files
0.1 (2012-11-09)
- Initial release of the commit hook