feature_request(verbose): “--verbose” command-line argument without the “Files excluded” section
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.3k
- Forks
- 836
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 1
Description
1. Summary
It would be nice if bandit will have a command-line argument with behavior like current --verbose argument but without the section Files excluded.
2. Justification of the need of the feature
Output of the bandit command with the --verbose command-line argument is useful for me. The exception — the section Files excluded. If I run the command bandit with arguments --recursive and --verbose for my real project, bandit prints to a console all tens of thousands of filenames of my projects. The section Files excluded spammed a console output and created difficulties for reading useful information provided by the argument --verbose. It would be nice to have the command --verbose without the Files excluded noise.
3. MCVE
3.1. Command
bandit . --configfile bandit.yaml --recursive --verbose
I run this command for my real project.
3.2. bandit.yaml
The part of my bandit.yaml:
exclude_dirs:
- .venv
- node_modules
3.3. Behavior
3.3.1. Desired
[main] INFO profile include tests: None
[main] INFO profile exclude tests: B603,B404
[main] INFO cli include tests: None
[main] INFO cli exclude tests: None
[main] INFO using config: bandit.yaml
[main] INFO running on Python 3.13.2
Run started:2025-03-23 13:18:34.867087
Files in scope (11):
.\installation_scripts\gh_release_install.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\jinja_filter_all.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\jinja_filter_any.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\pelican_settings_loader.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\pelicanconf.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\autotitle\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\autotitle\autotitle.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\putkiry\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\putkiry\putkiry.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\publishconf.py (score: {SEVERITY: 0, CONFIDENCE: 0})
Test results:
No issues identified.
Code scanned:
Total lines of code: 295
Total lines skipped (#nosec): 0
Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0
Run metrics:
Total issues (by severity):
Undefined: 0
Low: 0
Medium: 0
High: 0
Total issues (by confidence):
Undefined: 0
Low: 0
Medium: 0
High: 0
Files skipped (0):
The output contains useful information for me.
It would be nice if default behavior of the --verbose command-line argument will be as in my example.
3.3.2. Current
[main] INFO profile include tests: None
[main] INFO profile exclude tests: B603,B404
[main] INFO cli include tests: None
[main] INFO cli exclude tests: None
[main] INFO using config: bandit.yaml
[main] INFO running on Python 3.13.2
Run started:2025-03-23 13:18:34.867087
Files in scope (11):
.\installation_scripts\gh_release_install.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\jinja_filter_all.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\jinja_filters\jinja_filter_any.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\pelican_settings_loader.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\pelicanconf.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\autotitle\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\autotitle\autotitle.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\putkiry\__init__.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\personal-plugins\putkiry\putkiry.py (score: {SEVERITY: 0, CONFIDENCE: 0})
.\publishconf.py (score: {SEVERITY: 0, CONFIDENCE: 0})
Files excluded (78002):
# Bandit prints names of all 78002 excluded files
# Files from the “.git” directory
.\.git\COMMIT_EDITMSG
.\.git\FETCH_HEAD
.\.git\HEAD
.\.git\ORIG_HEAD
.\.git\config
.\.git\credential.log
.\.git\description
# …
# Files from the “.venv” directory
.\.venv\.gitignore
.\.venv\.project
.\.venv\CACHEDIR.TAG
.\.venv\Lib\site-packages\3204bda914b7f2c6f497__mypyc.cp313-win_amd64.pyd
.\.venv\Lib\site-packages\3c22db458360489351e4__mypyc.cp313-win_amd64.pyd
.\.venv\Lib\site-packages\EditorConfig-0.17.0.dist-info\COPYING
.\.venv\Lib\site-packages\EditorConfig-0.17.0.dist-info\INSTALLER
# …
# Files from the “node_modules” directory
.\node_modules\.bin\JSONStream
.\node_modules\.bin\JSONStream.cmd
.\node_modules\.bin\JSONStream.ps1
.\node_modules\.bin\acorn
.\node_modules\.bin\acorn.cmd
.\node_modules\.bin\acorn.ps1
.\node_modules\.bin\asset-resolver
# …
Test results:
No issues identified.
Code scanned:
Total lines of code: 295
Total lines skipped (#nosec): 0
Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0
Run metrics:
Total issues (by severity):
Undefined: 0
Low: 0
Medium: 0
High: 0
Total issues (by confidence):
Undefined: 0
Low: 0
Medium: 0
High: 0
Files skipped (0):
Printing names of all 78002 excluded files it’s noise for me.
If user want to get Files excluded section, new command-line argument -vvv with behavior like current --verbose behavior can be introduced.
Thanks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the CLI entry point that parses --verbose and the output path that emits the “Files excluded” section; run the provided recursive command to reproduce the noise. Done means normal --verbose output omits that section while a more-verbose option can still display it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100