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
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 =
|