summaryrefslogtreecommitdiff
path: root/ale_linters/python
diff options
context:
space:
mode:
authorKevin Locke <kevin@kevinlocke.name>2019-02-17 14:11:56 -0700
committerKevin Locke <kevin@kevinlocke.name>2019-02-17 14:24:18 -0700
commit52c24007860b1e29c2e2cb318f29aff9889cb3c0 (patch)
treefc24fd3dc06eaad3d613619eef1efe6c9b7009e9 /ale_linters/python
parentc3d4e0983b4b08e61692cdd88990a79525a78707 (diff)
downloadale-52c24007860b1e29c2e2cb318f29aff9889cb3c0.zip
python/bandit: Use .bandit configuration file
Bandit automatically [uses any .bandit file] within the directories on which it is invoked. Since ALE invokes bandit on stdin, it does not load a .bandit file automatically. Add support for automatically finding a .bandit file and passing it to bandit via the --ini option along with a variable to disable this behavior if desired. Note: This is useful for the skips and tests configuration options, but not exclude which would require invoking bandit using a file name, which may or may not be a good trade-off. [uses any .bandit file]: https://github.com/PyCQA/bandit/blob/1.5.1/bandit/cli/main.py#L70-L73 Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Diffstat (limited to 'ale_linters/python')
-rw-r--r--ale_linters/python/bandit.vim9
1 files changed, 9 insertions, 0 deletions
diff --git a/ale_linters/python/bandit.vim b/ale_linters/python/bandit.vim
index 819c83aa..5c9500a6 100644
--- a/ale_linters/python/bandit.vim
+++ b/ale_linters/python/bandit.vim
@@ -3,6 +3,7 @@
call ale#Set('python_bandit_executable', 'bandit')
call ale#Set('python_bandit_options', '')
+call ale#Set('python_bandit_use_config', 1)
call ale#Set('python_bandit_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('python_bandit_auto_pipenv', 0)
@@ -22,6 +23,14 @@ function! ale_linters#python#bandit#GetCommand(buffer) abort
let l:flags = ' --format custom'
\ . ' --msg-template "{line}:{test_id}:{severity}:{msg}" '
+ if ale#Var(a:buffer, 'python_bandit_use_config')
+ let l:config_path = ale#path#FindNearestFile(a:buffer, '.bandit')
+
+ if !empty(l:config_path)
+ let l:flags = ' --ini ' . ale#Escape(l:config_path) . l:flags
+ endif
+ endif
+
let l:exec_args = l:executable =~? 'pipenv$'
\ ? ' run bandit'
\ : ''