Fixed parsing of pydocstyle errors

ale#Escape function seems to prepend and append ' to the file name, which
are not present in the pydocstyle output. Having the parsing regexp match
the file name was overkill anyway, since there is an obvious 1:1
correspondence between the buffer number and the (potential) errors
reported by pydocstyle.
This commit is contained in:
Pablo Acosta-Serafini 2019-01-14 20:36:14 -05:00
parent a50e049e74
commit 86af4be0d0
2 changed files with 4 additions and 5 deletions

View File

@ -33,8 +33,7 @@ function! ale_linters#python#pydocstyle#Handle(buffer, lines) abort
" Matches patterns like the following:
" mydir/myfile.py:33 in public function `myfunction`:
" DXXX: Error description
let l:fname = ale#Escape(fnamemodify(bufname(a:buffer), ':p:t'))
let l:line1_pattern = '\v^' . l:fname . ':\s*(\d+)\s+.*$'
let l:line1_pattern = '\v^.*:\s*(\d+)\s+.*$'
let l:line2_pattern = '\v^.*([a-zA-Z]\d+):\s*(.*)$'
let l:output = []

View File

@ -66,7 +66,7 @@ Execute(Basic pydocstyle warnings should be handled):
\ ],
\ ale_linters#python#pydocstyle#Handle(bufnr(''), [
\ 'Checking file ' . fnamemodify(bufname(bufnr('')), ':p') . '.',
\ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':1 at module level:',
\ './mydir/myfile.py:1 at module level:',
\ ' D100: Missing docstring in public module',
\ '',
\ ' All modules should normally have docstrings. [...] all functions and',
@ -80,7 +80,7 @@ Execute(Basic pydocstyle warnings should be handled):
\ ' 1: # 2: 3: s 4: a 5: m 6: p 7: l ...',
\ '',
\ '',
\ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':4 in public function `main`:',
\ 'C:\mydir\myfile.py:4 in public function `main`:',
\ ' D205: 1 blank line required between summary line and description (found 0)',
\ '',
\ ' Multi-line docstrings consist of a summary line just like a one-line',
@ -92,7 +92,7 @@ Execute(Basic pydocstyle warnings should be handled):
\ ' 3: d 4: e 5: f 6: 7: m 8: a 9: i ...',
\ '',
\ '',
\ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':4 in public function `main`:',
\ 'myfile.py:4 in public function `main`:',
\ ' D400: First line should end with a period (not ''e'')',
\ '',
\ ' The [first line of a] docstring is a phrase ending in a period.',