Sha256: beeb67ab5cb1959e97fcf512699182576ad9672a8c8aa99d5b29f48d81347b72
Contents?: true
Size: 940 Bytes
Versions: 19
Compression:
Stored size: 940 Bytes
Contents
# frozen_string_literal: true 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
19 entries across 19 versions & 2 rubygems