diff --git a/dev-python/csvkit/csvkit-2.1.0-r1.ebuild b/dev-python/csvkit/csvkit-2.1.0-r1.ebuild new file mode 100644 index 0000000000000..7846f823dc85e --- /dev/null +++ b/dev-python/csvkit/csvkit-2.1.0-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A suite of utilities for converting to and working with CSV" +HOMEPAGE=" + https://github.com/wireservice/csvkit/ + https://pypi.org/project/csvkit/ +" +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64-macos ~x64-macos" + +RDEPEND=" + >=dev-python/agate-1.12.0[${PYTHON_USEDEP}] + >=dev-python/agate-excel-0.4.0[${PYTHON_USEDEP}] + >=dev-python/agate-dbf-0.2.3[${PYTHON_USEDEP}] + >=dev-python/agate-sql-0.7.0[${PYTHON_USEDEP}] + dev-python/openpyxl[${PYTHON_USEDEP}] + dev-python/sqlalchemy[${PYTHON_USEDEP}] + dev-python/xlrd[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/zstandard[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/wireservice/csvkit/commit/de4ec58126e3341e4cf8c54735c297d6496fecf5 + "${FILESDIR}/${P}-py314.patch" +) + +python_test() { + local EPYTEST_DESELECT=( + # fails depending on locale, let's not force en_US + tests/test_utilities/test_csvstat.py::TestCSVStat::test_decimal_format + ) + local -x LC_ALL=C.UTF-8 + epytest +} diff --git a/dev-python/csvkit/files/csvkit-2.1.0-py314.patch b/dev-python/csvkit/files/csvkit-2.1.0-py314.patch new file mode 100644 index 0000000000000..76daa627005c4 --- /dev/null +++ b/dev-python/csvkit/files/csvkit-2.1.0-py314.patch @@ -0,0 +1,24 @@ +From de4ec58126e3341e4cf8c54735c297d6496fecf5 Mon Sep 17 00:00:00 2001 +From: James McKinney <26463+jpmckinney@users.noreply.github.com> +Date: Mon, 9 Jun 2025 23:51:26 -0400 +Subject: [PATCH] fix: Set ArgumentParser(prog=) for Python 3.14, #1284 (bis) + +--- + csvkit/cli.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/csvkit/cli.py b/csvkit/cli.py +index a1bde8018..a1ad1bff8 100644 +--- a/csvkit/cli.py ++++ b/csvkit/cli.py +@@ -163,7 +163,9 @@ def _init_common_parser(self): + whose single-letter form is contained in 'omitflags' will be left out of the configured parser. Use 'f' for + file. + """ +- self.argparser = argparse.ArgumentParser(description=self.description, epilog=self.epilog) ++ self.argparser = argparse.ArgumentParser( ++ prog=type(self).__name__.lower(), description=self.description, epilog=self.epilog ++ ) + + # Input + if 'f' not in self.override_flags: