Before: runtime ale_linters/python/pycodestyle.vim After: call ale#linter#Reset() silent file something_else.py Execute(The pycodestyle handler should parse output): AssertEqual \ [ \ { \ 'lnum': 8, \ 'col': 3, \ 'type': 'E', \ 'text': 'SyntaxError: invalid syntax', \ 'code': 'E999', \ }, \ { \ 'lnum': 69, \ 'col': 11, \ 'text': 'multiple imports on one line', \ 'code': 'E401', \ 'type': 'E', \ 'sub_type': 'style', \ }, \ { \ 'lnum': 77, \ 'col': 1, \ 'text': 'expected 2 blank lines, found 1', \ 'code': 'E302', \ 'type': 'E', \ 'sub_type': 'style', \ }, \ { \ 'lnum': 88, \ 'col': 5, \ 'text': 'expected 1 blank line, found 0', \ 'code': 'E301', \ 'type': 'E', \ 'sub_type': 'style', \ }, \ { \ 'lnum': 222, \ 'col': 34, \ 'text': 'deprecated form of raising exception', \ 'code': 'W602', \ 'type': 'W', \ 'sub_type': 'style', \ }, \ { \ 'lnum': 544, \ 'col': 21, \ 'text': '.has_key() is deprecated, use ''in''', \ 'code': 'W601', \ 'type': 'W', \ 'sub_type': 'style', \ }, \ ], \ ale_linters#python#pycodestyle#Handle(bufnr(''), [ \ 'stdin:8:3: E999 SyntaxError: invalid syntax', \ 'stdin:69:11: E401 multiple imports on one line', \ 'stdin:77:1: E302 expected 2 blank lines, found 1', \ 'stdin:88:5: E301 expected 1 blank line, found 0', \ 'stdin:222:34: W602 deprecated form of raising exception', \ 'example.py:544:21: W601 .has_key() is deprecated, use ''in''', \ ])