Sha256: 8d763da7714eee685b5953ccc45582105cbfd69e6a62c5784a015edc7b0a3cea
Contents?: true
Size: 909 Bytes
Versions: 28
Compression:
Stored size: 909 Bytes
Contents
module Overcommit::Hook::PreCommit # Runs `flake8` against any modified Python files. # # @see https://pypi.python.org/pypi/flake8 class PythonFlake8 < Base MESSAGE_REGEX = /^(?<file>(?:\w:)?.+):(?<line>\d+):\d+:\s(?<type>\w\d+)/ # Classify 'Exxx' and 'Fxxx' message codes as errors, # everything else as warnings. # http://flake8.readthedocs.org/en/latest/warnings.html MESSAGE_TYPE_CATEGORIZER = lambda do |type| 'EF'.include?(type[0]) ? :error : :warning end def run result = execute(command, args: applicable_files) return :pass if result.success? output = result.stdout.chomp # example message: # path/to/file.py:2:13: F812 list comprehension redefines name from line 1 extract_messages( output.split("\n").grep(MESSAGE_REGEX), MESSAGE_REGEX, MESSAGE_TYPE_CATEGORIZER ) end end end
Version data entries
28 entries across 26 versions & 2 rubygems