summaryrefslogtreecommitdiff
path: root/dev-python/mypy
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/mypy')
-rw-r--r--dev-python/mypy/Manifest9
-rw-r--r--dev-python/mypy/files/mypy-1.10.1-py313.patch153
-rw-r--r--dev-python/mypy/mypy-1.11.1.ebuild (renamed from dev-python/mypy/mypy-1.10.0.ebuild)26
-rw-r--r--dev-python/mypy/mypy-1.11.2.ebuild (renamed from dev-python/mypy/mypy-1.10.1.ebuild)9
4 files changed, 25 insertions, 172 deletions
diff --git a/dev-python/mypy/Manifest b/dev-python/mypy/Manifest
index a90ab87d0acc..04e745bd270b 100644
--- a/dev-python/mypy/Manifest
+++ b/dev-python/mypy/Manifest
@@ -1,6 +1,5 @@
-AUX mypy-1.10.1-py313.patch 5922 BLAKE2B 3dd0e1feb0351f9b83424c0b9e31ddee82134332c8610f9a211c815701019a3e760a0d3656eb9457f5de0a72d4d0bcfe1bec489462b905b739aa66e25c6c0765 SHA512 f944d7b3e44ed84a8bc7cf333e5806dedf9d9989bb5d356acca088209c0d425abd01c87bd88307771bb3a4e44d4e54124bdd1750dce5bde24ac02f64a02aef7d
-DIST mypy-1.10.0.gh.tar.gz 3062151 BLAKE2B ddc7354b2b62247387fd04b309c50d4ffa5c1b8af58873cc8787bd17c04069b528850bfb586925aa7df6634a65af6a1e951e4d6036d5bd0e688b8608980510bd SHA512 c936c299d9d4b6911505ef7b7df6f8d7344bd199a2d654e66467291f6e6ba4432dfa7aed5a504e6ec9518d9d53ac85f771e7b31dc6a72e06e79c443547bc2b66
-DIST mypy-1.10.1.gh.tar.gz 3062383 BLAKE2B 326fb33e42ad8920a235e510b3d39663f333dc46d0dd3ffc59f4604e9a4f29f0be95f73bac42166aae00b53987d6a2a54446f1f58033dce389c43044dbaa9cdd SHA512 10d29ae145d71911dc7c9b4538371bf1caa64f333984ab3a4cbf9561d7c4e752c68380496489f56d0941f143d6684d84d28f157be578d6f55f1e81d3d47b204c
-EBUILD mypy-1.10.0.ebuild 3636 BLAKE2B 6743ea6ae4c646ff7024731a3ce102596168db3ad9037816bd3e701933accdb0358f75bcf35bcf30c3f0206f72e56c1f3488e2e25dae450c1deb5751482e8d62 SHA512 4615b351f6254ace77b5646ac2c377c433054da83c40270151f724e62ef45b7016b1905a61ebb18dbc800444a5c1ee881f0acbfc6ef164b9a536bc8099c9f3d8
-EBUILD mypy-1.10.1.ebuild 4089 BLAKE2B cbc1f669fc62d00096c2c0d210fdbb49948c85ada5ed1d115622a3bbaa3778534cd0c21105e18e114a2880c5e10a3f1978fd337514d0b0cf85546bf1e9d0e3c7 SHA512 15208625c5fc3a77d99d3b2e54e06f2759209d9f6258376e1a90a6f5e5005be359a067cec3050b8decb248e69c0ec91ea88e8e557058592148445cabdae37ff1
+DIST mypy-1.11.1.gh.tar.gz 3122001 BLAKE2B 6b4db9a363190177b96ea807538f1582071b213eae816ff55723c22de098e7ff2745e433a8a174fe3ebb6a9ed66f8ac75917883dfa027bdd7bca750a7517478e SHA512 8baa916ffe7e37c54c6dac98241441cc615ea8f847ebe3d12f41912d4a596ca47068d4fb0460e3bfc4b020ad7d2580814422b9dc3a22830c9031cec4111e3aab
+DIST mypy-1.11.2.gh.tar.gz 3122502 BLAKE2B 228127662f4c607aacf3ee37410d0fa039a225fdbf2fec27eefab4aaabf4b68fa33499bb978aa5f06e24b45b525ce524decfa84f4d7d6bb7961724db92a4589b SHA512 c25584db08adcf7693944e5a6a41743101e80a0ff03f36f0353a07674ad4e2d63dbd4ff3fa0e307c19d63bc5aac9f7523340bd5a7cb3661642f3fb33759aafd0
+EBUILD mypy-1.11.1.ebuild 3905 BLAKE2B 1150897e24c51af84c5f7af491ce109393090b835f78936aba7c98c77d513b550520c6a4e3fdde6161d34fa504c76e797792c07c8d41637bbf9e270ea337e13f SHA512 18b4170b35653647092c8bee866d201fe53743b2681651d422316258ec36ded52353001beabc464809d4a5716a1fbba6d91d9c8164733a4b57f325f55db7fe29
+EBUILD mypy-1.11.2.ebuild 3909 BLAKE2B 35f768540345e569c38fde1cd6f8bc463a36fb493757e8769135d9bc87f86f67c35fc000b41cff7d73da31c790831a99361d877d54f03aa7e944fa2f23c5347b SHA512 1b75547b7461cfcb885708ebbf564de37c938d12acbd185f816180da91da9e33fd947e3f2db789e0658dace34997e83d20a8b17ffb25e3f2a3673e426a701424
MISC metadata.xml 661 BLAKE2B df57cc2dfde5b112f8c26b51ca5cc9e7727d318ee274ea7e1abf448819daf0307f471aeb7c32b19f20e87ce1ccffd47a5529415003765c275523e1b5236f3bb1 SHA512 eddd19c4b0b5211f73f9619f388a799ced108b62bb43d852ed2d01d0b1717e7b9ef118d34b9d61db543c7b47080fb8058c3d35f7359cc456069636f357e080c9
diff --git a/dev-python/mypy/files/mypy-1.10.1-py313.patch b/dev-python/mypy/files/mypy-1.10.1-py313.patch
deleted file mode 100644
index 5b9932852e19..000000000000
--- a/dev-python/mypy/files/mypy-1.10.1-py313.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 29b4303e905f43556043efde95e19f32e04df9a5 Mon Sep 17 00:00:00 2001
-From: Jelle Zijlstra <jelle.zijlstra@gmail.com>
-Date: Fri, 24 May 2024 21:00:17 -0700
-Subject: [PATCH] Fix stubgen for Python 3.13
-
-__firstlineno__ and __static_attributes__ are new in 3.13.
-__annotate__ will be new in 3.14, so we might as well add it now.
----
- mypy/stubgenc.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/mypy/stubgenc.py b/mypy/stubgenc.py
-index 29b2636d39cc..7e3ef49c6e9a 100755
---- a/mypy/stubgenc.py
-+++ b/mypy/stubgenc.py
-@@ -466,6 +466,9 @@ def is_skipped_attribute(self, attr: str) -> bool:
- "__module__",
- "__weakref__",
- "__annotations__",
-+ "__firstlineno__",
-+ "__static_attributes__",
-+ "__annotate__",
- )
- or attr in self.IGNORED_DUNDERS
- or is_pybind_skipped_attribute(attr) # For pickling
-From 071e3f5f4685470f55dab7fc474e9f89a8e49fb9 Mon Sep 17 00:00:00 2001
-From: hauntsaninja <hauntsaninja@gmail.com>
-Date: Fri, 17 May 2024 18:49:27 -0400
-Subject: [PATCH] stubtest: changes for py313
-
-Technically it feels like we should be able to put the new dunders on
-`type` or something, but that wasn't enough to make false positives go
-away. But also we might not want to do that because it only applies to
-pure Python types
----
- mypy/stubtest.py | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/mypy/stubtest.py b/mypy/stubtest.py
-index dd43c472d67f..d78b71715159 100644
---- a/mypy/stubtest.py
-+++ b/mypy/stubtest.py
-@@ -634,6 +634,10 @@ def strip_prefix(s: str, prefix: str) -> str:
- if strip_prefix(stub_arg.variable.name, "__") == runtime_arg.name:
- return
-
-+ nonspecific_names = {"object", "args"}
-+ if runtime_arg.name in nonspecific_names:
-+ return
-+
- def names_approx_match(a: str, b: str) -> bool:
- a = a.strip("_")
- b = b.strip("_")
-@@ -1455,6 +1459,8 @@ def verify_typealias(
- "__getattr__", # resulting behaviour might be typed explicitly
- "__setattr__", # defining this on a class can cause worse type checking
- "__vectorcalloffset__", # undocumented implementation detail of the vectorcall protocol
-+ "__firstlineno__",
-+ "__static_attributes__",
- # isinstance/issubclass hooks that type-checkers don't usually care about
- "__instancecheck__",
- "__subclasshook__",
-diff --git a/mypy/plugins/dataclasses.py b/mypy/plugins/dataclasses.py
-index dd2eceab217f..edfc6840fc37 100644
---- a/mypy/plugins/dataclasses.py
-+++ b/mypy/plugins/dataclasses.py
-@@ -385,6 +385,9 @@ def transform(self) -> bool:
-
- self._add_dataclass_fields_magic_attribute()
- self._add_internal_replace_method(attributes)
-+ if self._api.options.python_version >= (3, 13):
-+ self._add_dunder_replace(attributes)
-+
- if "__post_init__" in info.names:
- self._add_internal_post_init_method(attributes)
-
-@@ -395,6 +398,18 @@ def transform(self) -> bool:
-
- return True
-
-+ def _add_dunder_replace(self, attributes: list[DataclassAttribute]) -> None:
-+ """Add a `__replace__` method to the class, which is used to replace attributes in the `copy` module."""
-+ args = [attr.to_argument(self._cls.info, of="replace") for attr in attributes]
-+ type_vars = [tv for tv in self._cls.type_vars]
-+ add_method_to_class(
-+ self._api,
-+ self._cls,
-+ "__replace__",
-+ args=args,
-+ return_type=Instance(self._cls.info, type_vars),
-+ )
-+
- def _add_internal_replace_method(self, attributes: list[DataclassAttribute]) -> None:
- """
- Stashes the signature of 'dataclasses.replace(...)' for this specific dataclass
-From 160a9c767324460e916978d49f8d770738572119 Mon Sep 17 00:00:00 2001
-From: hauntsaninja <hauntsaninja@gmail.com>
-Date: Fri, 17 May 2024 18:23:01 -0400
-Subject: [PATCH 1/2] Support namedtuple.__replace__ in Python 3.13
-
----
- mypy/semanal_namedtuple.py | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/mypy/semanal_namedtuple.py b/mypy/semanal_namedtuple.py
-index 9a0be9d9c14c..bdd633a60635 100644
---- a/mypy/semanal_namedtuple.py
-+++ b/mypy/semanal_namedtuple.py
-@@ -599,6 +599,12 @@ def add_method(
- ret=selftype,
- args=[Argument(var, var.type, EllipsisExpr(), ARG_NAMED_OPT) for var in vars],
- )
-+ if self.options.python_version >= (3, 13):
-+ add_method(
-+ "__replace__",
-+ ret=selftype,
-+ args=[Argument(var, var.type, EllipsisExpr(), ARG_NAMED_OPT) for var in vars],
-+ )
-
- def make_init_arg(var: Var) -> Argument:
- default = default_items.get(var.name, None)
-
-From 9fcaedb9f757595486ed231dbdb9433151ec669d Mon Sep 17 00:00:00 2001
-From: hauntsaninja <hauntsaninja@gmail.com>
-Date: Sat, 18 May 2024 18:40:09 -0400
-Subject: [PATCH 2/2] .
-
----
- test-data/unit/check-namedtuple.test | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/test-data/unit/check-namedtuple.test b/test-data/unit/check-namedtuple.test
-index 23e109e1af78..b2ba69abb045 100644
---- a/test-data/unit/check-namedtuple.test
-+++ b/test-data/unit/check-namedtuple.test
-@@ -1376,3 +1376,17 @@ class Test3(NamedTuple, metaclass=type): # E: Unexpected keyword argument "meta
- ...
- [builtins fixtures/tuple.pyi]
- [typing fixtures/typing-namedtuple.pyi]
-+
-+
-+[case testNamedTupleDunderReplace]
-+# flags: --python-version 3.13
-+from typing import NamedTuple
-+
-+class A(NamedTuple):
-+ x: int
-+
-+A(x=0).__replace__(x=1)
-+A(x=0).__replace__(x="asdf") # E: Argument "x" to "__replace__" of "A" has incompatible type "str"; expected "int"
-+A(x=0).__replace__(y=1) # E: Unexpected keyword argument "y" for "__replace__" of "A"
-+[builtins fixtures/tuple.pyi]
-+[typing fixtures/typing-namedtuple.pyi]
diff --git a/dev-python/mypy/mypy-1.10.0.ebuild b/dev-python/mypy/mypy-1.11.1.ebuild
index 2db7b7b8d663..906b969de108 100644
--- a/dev-python/mypy/mypy-1.10.0.ebuild
+++ b/dev-python/mypy/mypy-1.11.1.ebuild
@@ -5,9 +5,9 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
-inherit distutils-r1 multiprocessing
+inherit distutils-r1
DESCRIPTION="Optional static typing for Python"
HOMEPAGE="
@@ -29,7 +29,7 @@ IUSE="+native-extensions"
RDEPEND="
!dev-util/stubgen
>=dev-python/psutil-4[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
>=dev-python/mypy_extensions-1.0.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/tomli[${PYTHON_USEDEP}]
@@ -56,9 +56,15 @@ distutils_enable_tests pytest
# test files (https://github.com/mypyc/mypyc/issues/1014)
export CCACHE_DISABLE=1
-src_compile() {
+python_compile() {
local -x MYPY_USE_MYPYC=$(usex native-extensions 1 0)
- distutils-r1_src_compile
+ case ${EPYTHON} in
+ python3.13)
+ # https://github.com/mypyc/mypyc/issues/1056
+ MYPY_USE_MYPYC=0
+ ;;
+ esac
+ distutils-r1_python_compile
}
python_test() {
@@ -87,6 +93,14 @@ python_test() {
mypyc/test/test_run.py::TestRun::run-i64.test::testI64ErrorValuesAndUndefined
)
;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # https://github.com/mypyc/mypyc/issues/1056
+ mypyc/test
+ # requires typeshed update
+ mypy/test/teststubtest.py::StubtestUnit::test_type_alias
+ )
+ ;;
esac
# Some mypy/test/testcmdline.py::PythonCmdlineSuite tests
@@ -104,7 +118,7 @@ python_test() {
local failed=
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest -n "$(makeopts_jobs)" --dist=worksteal || failed=1
+ nonfatal epytest || failed=1
rm conftest.py pyproject.toml || die
diff --git a/dev-python/mypy/mypy-1.10.1.ebuild b/dev-python/mypy/mypy-1.11.2.ebuild
index 9bd317074557..81a7e950a754 100644
--- a/dev-python/mypy/mypy-1.10.1.ebuild
+++ b/dev-python/mypy/mypy-1.11.2.ebuild
@@ -29,7 +29,7 @@ IUSE="+native-extensions"
RDEPEND="
!dev-util/stubgen
>=dev-python/psutil-4[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
>=dev-python/mypy_extensions-1.0.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/tomli[${PYTHON_USEDEP}]
@@ -51,13 +51,6 @@ BDEPEND="
EPYTEST_XDIST=1
distutils_enable_tests pytest
-PATCHES=(
- # https://github.com/python/mypy/pull/17259
- # https://github.com/python/mypy/pull/17261
- # https://github.com/python/mypy/pull/17290
- "${FILESDIR}/${P}-py313.patch"
-)
-
# 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)