commit: 716f3463e1a906330f9208c634d62876daa91186 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Fri Oct 14 11:31:31 2022 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Fri Oct 14 11:31:31 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=716f3463
dev-python/ipdb: Use tomli instead of toml Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/ipdb/files/ipdb-0.13.9-tomli.patch | 54 ++++++++++++++++++++++ ...ipdb-0.13.9-r2.ebuild => ipdb-0.13.9-r3.ebuild} | 22 +++++++-- 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/dev-python/ipdb/files/ipdb-0.13.9-tomli.patch b/dev-python/ipdb/files/ipdb-0.13.9-tomli.patch new file mode 100644 index 000000000000..20eecdd8721c --- /dev/null +++ b/dev-python/ipdb/files/ipdb-0.13.9-tomli.patch @@ -0,0 +1,54 @@ +From bc06e22817f2644c6ecc838f60c93fbedb9e0016 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org> +Date: Wed, 12 Oct 2022 16:57:24 +0200 +Subject: [PATCH] Support tomllib/tomli in newer Python versions + +Support the built-in `tomllib` module from Python 3.11 and the modern +TOML processing library `tomli` in newer versions of Python 3. The old +`toml` package is unmaintained and does not implement TOML 1.0 +correctly. +--- + ipdb/__main__.py | 14 ++++++++++++-- + setup.py | 4 ++-- + 2 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/ipdb/__main__.py b/ipdb/__main__.py +index ea2ae88..2c3f675 100644 +--- a/ipdb/__main__.py ++++ b/ipdb/__main__.py +@@ -176,8 +176,18 @@ def get_config(): + read_func(f) + # To use on pyproject.toml, put [tool.ipdb] section + elif filepath.endswith('pyproject.toml'): +- import toml +- toml_file = toml.load(filepath) ++ try: ++ if sys.version_info >= (3, 11): ++ import tomllib ++ else: ++ import tomli as tomllib ++ ++ with open(filepath, "rb") as f: ++ toml_file = tomllib.load(f) ++ except ImportError: ++ import toml ++ toml_file = toml.load(filepath) ++ + if "tool" in toml_file and "ipdb" in toml_file["tool"]: + if not parser.has_section("ipdb"): + parser.add_section("ipdb") +diff --git a/setup.py b/setup.py +index 6ce51c0..04f594c 100644 +--- a/setup.py ++++ b/setup.py +@@ -64,8 +64,8 @@ + # FTR, `decorator` is also a dependency of Ipython. + ':python_version == "3.4"': ['ipython >= 6.0.0, < 7.0.0', 'toml >= 0.10.2', 'decorator < 5.0.0'], + ':python_version == "3.5"': ['ipython >= 7.0.0, < 7.10.0', 'toml >= 0.10.2', 'decorator'], +- ':python_version == "3.6"': ['ipython >= 7.10.0, < 7.17.0', 'toml >= 0.10.2', 'decorator'], +- ':python_version > "3.6"': ['ipython >= 7.17.0', 'toml >= 0.10.2', 'decorator'], ++ ':python_version == "3.6"': ['ipython >= 7.10.0, < 7.17.0', 'tomli', 'decorator'], ++ ':python_version > "3.6"': ['ipython >= 7.17.0', 'tomli', 'decorator'], + }, + tests_require=[ + 'mock; python_version<"3"' diff --git a/dev-python/ipdb/ipdb-0.13.9-r2.ebuild b/dev-python/ipdb/ipdb-0.13.9-r3.ebuild similarity index 61% rename from dev-python/ipdb/ipdb-0.13.9-r2.ebuild rename to dev-python/ipdb/ipdb-0.13.9-r3.ebuild index 9ab449099c1c..b68eb873626a 100644 --- a/dev-python/ipdb/ipdb-0.13.9-r2.ebuild +++ b/dev-python/ipdb/ipdb-0.13.9-r3.ebuild @@ -5,23 +5,37 @@ EAPI=8 PYTHON_COMPAT=( python3_{8..10} ) DISTUTILS_USE_PEP517=setuptools + inherit distutils-r1 optfeature DESCRIPTION="IPython-enabled pdb" -HOMEPAGE="https://pypi.org/project/ipdb/ https://github.com/gotcha/ipdb" +HOMEPAGE=" + https://github.com/gotcha/ipdb/ + https://pypi.org/project/ipdb/ +" SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 ~arm ~arm64 ~ppc ppc64 ~riscv ~sparc x86" -RDEPEND=">=dev-python/ipython-7.17[${PYTHON_USEDEP}]" -BDEPEND="test? ( dev-python/toml[${PYTHON_USEDEP}] )" +RDEPEND=" + >=dev-python/ipython-7.17[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/tomli[${PYTHON_USEDEP}] + ) +" DOCS=( AUTHORS HISTORY.txt README.rst ) +PATCHES=( + "${FILESDIR}"/${P}-tomli.patch +) + distutils_enable_tests unittest pkg_postinst() { - optfeature "pyproject.toml support" dev-python/toml + optfeature "pyproject.toml support" dev-python/tomli }