commit:     ecde638d7bf2760abe6472089cda20be58d4f7b4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 10:03:55 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 10:04:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ecde638d

dev-python/bandit: Backport tomllib/tomli port

Closes: https://bugs.gentoo.org/878661
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...{bandit-1.7.4.ebuild => bandit-1.7.4-r1.ebuild} | 13 +++-
 dev-python/bandit/files/bandit-1.7.4-tomli.patch   | 85 ++++++++++++++++++++++
 2 files changed, 96 insertions(+), 2 deletions(-)

diff --git a/dev-python/bandit/bandit-1.7.4.ebuild 
b/dev-python/bandit/bandit-1.7.4-r1.ebuild
similarity index 81%
rename from dev-python/bandit/bandit-1.7.4.ebuild
rename to dev-python/bandit/bandit-1.7.4-r1.ebuild
index cc946f6f00ff..769c2883561f 100644
--- a/dev-python/bandit/bandit-1.7.4.ebuild
+++ b/dev-python/bandit/bandit-1.7.4-r1.ebuild
@@ -9,7 +9,10 @@ PYTHON_COMPAT=( python3_{9..11} )
 inherit distutils-r1
 
 DESCRIPTION="A security linter from OpenStack Security"
-HOMEPAGE="https://github.com/PyCQA/bandit";
+HOMEPAGE="
+       https://github.com/PyCQA/bandit/
+       https://pypi.org/project/bandit/
+"
 SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
 
 LICENSE="Apache-2.0"
@@ -30,8 +33,14 @@ BDEPEND="
                >=dev-python/testtools-2.3.0[${PYTHON_USEDEP}]
                >=dev-python/beautifulsoup4-4.8.0[${PYTHON_USEDEP}]
                >=dev-python/pylint-1.9.4[${PYTHON_USEDEP}]
-               dev-python/toml[${PYTHON_USEDEP}]
+               $(python_gen_cond_dep '
+                       dev-python/tomli[${PYTHON_USEDEP}]
+               ' 3.{8..10})
        )
 "
 
 distutils_enable_tests unittest
+
+PATCHES=(
+       "${FILESDIR}"/${P}-tomli.patch
+)

diff --git a/dev-python/bandit/files/bandit-1.7.4-tomli.patch 
b/dev-python/bandit/files/bandit-1.7.4-tomli.patch
new file mode 100644
index 000000000000..238cc1f6d352
--- /dev/null
+++ b/dev-python/bandit/files/bandit-1.7.4-tomli.patch
@@ -0,0 +1,85 @@
+From 5a8f1050011a6eeca96c1b8a0fe1988fda97f214 Mon Sep 17 00:00:00 2001
+From: Mathieu Kniewallner <[email protected]>
+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 <[email protected]>
+---
+ 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 =

Reply via email to