grunt-flake8
v0.1.3
Published
Lint your Python projects with flake8
Downloads
16
Readme
grunt-flake8
Lint your Python projects with flake8. [flake8] is a linting tool for project that combines PyFlakes, PEP8, and McCabe's Cyclomatic Complexity script.
Important
flake8 has its own global and project-level configurations. Any values set in your Gruntfile will override those configurations. If a value is not set in your Gruntfile configuration, flake8 will then use the available project and global level configurations.
Make sure you are running Grunt from within whatever Python virtual environment that flake8 is installed.
Getting Started
This plugin requires Grunt ~0.4.2
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-flake8 --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-flake8');
The "flake8" task
Overview
In your project's Gruntfile, add a section named flake8
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
flake8: {
options: {
// Task-specific options go here.
},
src: [
// Files to line go here.
],
},
});
Options
options.errorsOnly
Type: Boolean
Default value: false
If true, the files passing flake8 will not be shown.
options.force
Type: Boolean
Default value: false
If true, flake8 will not fail even if there are errors.
options.maxComplexity
Type: Integer
Default value: unset
If set, flake8 will enforce a maximum cyclomatic complexity.
options.maxLineLength
Type: Integer
Default value: 79
The maximum characters in a line. If you want to disable this check, add E501
to ignore
.
options.select
Type: Array
of String
Default value: []
PEP8 rules to enforce. Use the codes given in the PEP8 documentation.
options.ignore
Type: Array
of String
Default value: []
PEP8 rules to ignore. Use the codes given in the PEP8 documentation.
options.hangClosing.
Type: Boolean
Default value: false
Hang closing bracket instead of matching indentation of opening bracket's line.
options.format
Type: String
Default value: default
The output style. 'default'
and 'pylint'
styles are built in by default but flake8 can accept custom output styles. See documenation.
options.showSource
Type: Boolean
Default value: false
Show the source of the linting error.
options.first
Type: Boolean
Default value: false
Show only the first instance of a linting error.
options.showPep8
Type: Boolean
Default value: false
Show the PEP8 rule of the linting error. Overrides first
configuration.
options.quiet
Type: Boolean
Default value: false
Show the quiet output from flake8.
options.verbose
Type: Boolean
Default value: false
Show the verbose output from flake8.
options.statistics
Type: Boolean
Default value: false
Show statistics from the linting.
options.benchmark
Type: Boolean
Default value: false
Show the performance information from flake8.
Usage Examples
Default Options
These options will simply flake8 all of your python files in your Grunt project.
grunt.initConfig({
flake8: {},
src: ['**/*.py']
},
});
Custom Options
These options will enforce these specific rules. Note that these options will overwrite global- and project-level settings for flake8.
grunt.initConfig({
flake8: {
options: {
maxLineLength: 120,
maxComplexity: 10,
format: 'pylint',
hangClosing: true,
ignore: ['W292', 'C901', 'F401']
},
src: ['apps/**/*.py', 'tests/test.py']
},
});
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Contributors
Credit
- tarek's wonderful flake8 tool.
- Inspired by thusoy's grunt-pylint tool.
- jcrocholl's great pep8 too.
- florent's amazing PyFlakes tool.
- So much love for Grunt.js and the devs who work on it.
Release History
v0.0.0 - Initial release.