repo/gentoo:master commit in: dev-python/mypy/

Michał Górny <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786777641.dd47348bd2029ceca3496d31942508d3a405c9e6.mgorny@gentoo>
commit:     dd47348bd2029ceca3496d31942508d3a405c9e6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 15 05:07:05 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 15 07:07:21 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd47348b

dev-python/mypy: Bump to 2.3.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/mypy/Manifest          |   1 +
 dev-python/mypy/mypy-2.3.1.ebuild | 148 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 149 insertions(+)

diff --git a/dev-python/mypy/Manifest b/dev-python/mypy/Manifest
index cb694adf9a4c..d8c5adfb88d5 100644
--- a/dev-python/mypy/Manifest
+++ b/dev-python/mypy/Manifest
@@ -1,3 +1,4 @@
 DIST mypy-1.20.2.gh.tar.gz 3837137 BLAKE2B cc28ad8a145d27dd4f6f395496e44ed80859df634e89fe7d584975107534cf063db97817b5b94665e2b7629ca1fa67c75c0ed2978237f10d68606c33bc6e79d3 SHA512 55affb5d086b18ea16b5cc9fd4bb2fbc99987d444f2c0b6c64aaa9dd87a7790f99385b922eb6afbd5fe0c0ff0a5da9f69ab03bb3d8aac350aa5b2f85174fc130
 DIST mypy-2.2.0.gh.tar.gz 3970949 BLAKE2B 975d59c31ad9127be7d490a706c9bceb06b9eb0c19e96ed9112f35626c0a615edd51f83ddd4c1a30188c58572b45768dfbdd3f3c65c670972de46f96c3427cd3 SHA512 6f8d3be955df2e3de1495c67931ec813f62c05b68969108a2ba1a978221924e860bc03b48eddf51f4efca1c8f684e2708637004f6ce457489ba6fdea31582fdb
 DIST mypy-2.3.0.gh.tar.gz 4005925 BLAKE2B 72d9e55459d11729fe75e299c36dee981acb0576925bc4c4273f688bf7859736e17ccebf349bcf345f3cd1939353e1bbfe81ad655c3ba99cc08f11d3cf89cf78 SHA512 6457a9372149cb7154ea772bc3981838a7f7a51d652fefe2caa56015d7b1c1389ea069cfae6086e9840e317a97eb980548089b70b3135f5d1b1e6580298dfcbe
+DIST mypy-2.3.1.gh.tar.gz 4008667 BLAKE2B db4a2d68e4211421ef3bc308417d7aad7703507d6647793f29ef0b562e88549cfd7135249aebd279f59ca75ae0aea8cb4da39c0b8971cb0f555ce462d2e2a6df SHA512 2418744d3868aedd7fac232346cc5986eb064422168020d3428f95cbbf524e872f5977eb602d8b163a108bae7f4056545fb2ced4e1f1b5299d310e100b439922

diff --git a/dev-python/mypy/mypy-2.3.1.ebuild b/dev-python/mypy/mypy-2.3.1.ebuild
new file mode 100644
index 000000000000..2b139b6fd100
--- /dev/null
+++ b/dev-python/mypy/mypy-2.3.1.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Optional static typing for Python"
+HOMEPAGE="
+	https://www.mypy-lang.org/
+	https://github.com/python/mypy/
+	https://pypi.org/project/mypy/
+"
+SRC_URI="
+	https://github.com/python/mypy/archive/v${PV}.tar.gz
+		-> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="native-extensions"
+
+# stubgen collides with this package: https://bugs.gentoo.org/585594
+RDEPEND="
+	!dev-util/stubgen
+	<dev-python/ast-serialize-1[${PYTHON_USEDEP}]
+	>=dev-python/ast-serialize-0.6.0[${PYTHON_USEDEP}]
+	>=dev-python/librt-0.13.0[${PYTHON_USEDEP}]
+	>=dev-python/mypy-extensions-1.0.0[${PYTHON_USEDEP}]
+	>=dev-python/pathspec-1.0.0[${PYTHON_USEDEP}]
+	>=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+	native-extensions? (
+		${RDEPEND}
+		dev-python/types-psutil[${PYTHON_USEDEP}]
+		dev-python/types-setuptools[${PYTHON_USEDEP}]
+	)
+	test? (
+		>=dev-python/attrs-18.0[${PYTHON_USEDEP}]
+		>=dev-python/filelock-3.3.0[${PYTHON_USEDEP}]
+		>=dev-python/lxml-4.9.1[${PYTHON_USEDEP}]
+	)
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+# frustratingly, mypyc produces non-deterministic output. If ccache is enabled it will be a waste of time,
+# but simultaneously it might trash your system and fill up the cache with a giant wave of non-reproducible
+# test files (https://github.com/mypyc/mypyc/issues/1014)
+export CCACHE_DISABLE=1
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.14.0-no-werror.patch
+)
+
+src_prepare() {
+	distutils-r1_src_prepare
+
+	# don't force pytest-xdist, in case user asked for EPYTEST_JOBS=1
+	sed -i -e '/addopts/s:-nauto::' pyproject.toml || die
+}
+
+python_compile() {
+	local -x MYPY_USE_MYPYC=$(usex native-extensions 1 0)
+	distutils-r1_python_compile
+}
+
+python_test() {
+	local EPYTEST_DESELECT=(
+		# the majority of them require Internet (via pip)
+		mypy/test/testpep561.py
+		# known broken with assertions enabled
+		# https://github.com/python/mypy/issues/16043
+		mypyc/test/test_external.py::TestExternal::test_c_unit_test
+		mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncMiscTypesInEnvironment
+		mypyc/test/test_run.py::TestRun::run-bools.test::testBoolOps
+		mypyc/test/test_run.py::TestRun::run-classes.test::testDelException
+		mypyc/test/test_run.py::TestRun::run-classes.test::testDelForDictSubclass
+		mypyc/test/test_run.py::TestRun::run-classes.test::testSubclassDict
+		mypyc/test/test_run.py::TestRun::run-dicts.test::testDictIterationMethodsRun
+		mypyc/test/test_run.py::TestRun::run-dicts.test::testDictMethods
+		mypyc/test/test_run.py::TestRun::run-dunders.test::testDundersContainer
+		mypyc/test/test_run.py::TestRun::run-floats.test::testFloatOps
+		mypyc/test/test_run.py::TestRun::run-i64.test::testI64BasicOps
+		mypyc/test/test_run.py::TestRun::run-i64.test::testI64DefaultArgValues
+		mypyc/test/test_run.py::TestRun::run-i64.test::testI64ErrorValuesAndUndefined
+		mypyc/test/test_run.py::TestRun::run-i64.test::testI64GlueMethodsAndInheritance
+		mypyc/test/test_run.py::TestRun::run-librt-strings.test::testLibrtStrings_librt
+		mypyc/test/test_run.py::TestRun::run-vecs-i64.test::testVecI64BasicOps_librt
+		mypyc/test/test_run.py::TestRun::run-vecs-i64.test::testVecI64BasicOps_librt_experimental
+		mypyc/test/test_run.py::TestRun::run-vecs-misc.test::testVecMiscBasicOps_librt
+		mypyc/test/test_run.py::TestRun::run-vecs-nested.test::testVecNestedBasicOps_librt
+		mypyc/test/test_run.py::TestRun::run-vecs-t.test::testVecTBasicOps_librt
+		mypyc/test/test_run.py::TestRun::run-vecs-t.test::testVecTBasicOps_librt_experimental
+		mypyc/test/test_run.py::TestRunStrictDunderTyping::run-dunders.test::testDundersContainer_dunder_typing
+		mypyc/test/test_run.py::TestRunStrictDunderTyping::run-floats.test::testFloatOps_dunder_typing
+		# these assume that types-docutils are not installed
+		mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testIgnoreImportIfNoPython3StubAvailable
+		mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testNoPython3StubAvailable
+		# TODO
+		mypy/test/meta/test_parse_data.py
+		mypy/test/meta/test_update_data.py
+		# Unknown SIGBUS, bug #967850
+		mypyc/test/test_run.py::TestRun::run-classes.test::testBufferRoundTrip_native_libs
+	)
+
+	case ${EPYTHON} in
+		python3.1[45]*)
+			EPYTEST_DESELECT+=(
+				mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncRefCounting
+				mypyc/test/test_run.py::TestRun::run-tuples.test::testNamedTupleClassSyntax
+			)
+			;;
+	esac
+
+	# Some mypy/test/testcmdline.py::PythonCmdlineSuite tests
+	# fail with high COLUMNS values
+	local -x COLUMNS=80
+
+	# The tests depend on having in-source compiled extensions if you want to
+	# test those compiled extensions. Various crucial test dependencies aren't
+	# installed. Even pyproject.toml is needed because that's where pytest args
+	# are in. Hack them into the build directory and delete them afterwards.
+	# See: https://github.com/python/mypy/issues/16143
+	local -x MYPY_TEST_PREFIX="${S}"
+	cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+	cp -r "${S}"/{conftest.py,pyproject.toml} . || die
+
+	local failed=
+	nonfatal epytest || failed=1
+
+	rm -r conftest.py pyproject.toml .mypy_cache || die
+
+	[[ ${failed} ]] && die "epytest failed with ${EPYTHON}"
+}
+
+pkg_postinst() {
+	optfeature "dmypy status -v support for memory use" dev-python/psutil
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.