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

Version Path
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/python_flake8.rb
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/python_flake8.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/python_flake8.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.46.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.45.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.44.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.43.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.42.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.41.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.40.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.39.1 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.39.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.38.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.37.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.36.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.35.0 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.34.2 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.34.1 lib/overcommit/hook/pre_commit/python_flake8.rb
overcommit-0.34.0 lib/overcommit/hook/pre_commit/python_flake8.rb