You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.4 KiB

From 5a8f1050011a6eeca96c1b8a0fe1988fda97f214 Mon Sep 17 00:00:00 2001
From: Mathieu Kniewallner <mathieu.kniewallner@gmail.com>
Date: Fri, 25 Mar 2022 23:27:56 +0100
Subject: [PATCH] Replace `toml` with `tomli` (#829)
* Replace `toml` with `tomli`
* Only require `tomli` on Python < 3.11
* Update test-requirements.txt
Co-authored-by: Eric Brown <ericwb@users.noreply.github.com>
---
bandit/core/config.py | 20 ++++++++++++--------
setup.cfg | 2 +-
test-requirements.txt | 2 +-
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/bandit/core/config.py b/bandit/core/config.py
index 7c259bcc..236f357c 100644
--- a/bandit/core/config.py
+++ b/bandit/core/config.py
@@ -3,13 +3,17 @@
#
# SPDX-License-Identifier: Apache-2.0
import logging
+import sys
import yaml
-try:
- import toml
-except ImportError:
- toml = None
+if sys.version_info >= (3, 11):
+ import tomllib
+else:
+ try:
+ import tomli as tomllib
+ except ImportError:
+ tomllib = None
from bandit.core import constants
from bandit.core import extension_loader
@@ -34,14 +38,14 @@ def __init__(self, config_file=None):
if config_file:
try:
- f = open(config_file)
+ f = open(config_file, "rb")
except OSError:
raise utils.ConfigError(
"Could not read config file.", config_file
)
if config_file.endswith(".toml"):
- if toml is None:
+ if tomllib is None:
raise utils.ConfigError(
"toml parser not available, reinstall with toml extra",
config_file,
@@ -49,8 +53,8 @@ def __init__(self, config_file=None):
try:
with f:
- self._config = toml.load(f)["tool"]["bandit"]
- except toml.TomlDecodeError as err:
+ self._config = tomllib.load(f)["tool"]["bandit"]
+ except tomllib.TOMLDecodeError as err:
LOG.error(err)
raise utils.ConfigError("Error parsing file.", config_file)
else:
diff --git a/setup.cfg b/setup.cfg
index 5d570eea..7449f15b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -31,7 +31,7 @@ project_urls =
yaml =
PyYAML
toml =
- toml
+ tomli>=1.1.0; python_version < "3.11"
[entry_points]
console_scripts =