Skip to content

add analysis.lexical-return-callable-typevars: keep a type variable t… - #217

Open
KotlinIsland wants to merge 1 commit into
mainfrom
lexical-return-callable-typevars
Open

KotlinIsland wants to merge 1 commit into
mainfrom
lexical-return-callable-typevars

Conversation

@KotlinIsland

Copy link
Copy Markdown
Owner

…hat only a returned callable mentions on the function

on by default, off under ty-compatible, and the same for .py and .by. typeshed keeps the moved reading unless analysis.lexical-return-callable-typevars-in-typeshed is set, since stubs like unittest.skip rely on it. inherited mdtests whose subject is the moved reading pin the option off

…hat only a returned callable mentions on the function

off by default, and the same for .py and .by when enabled. typeshed keeps the
moved reading unless analysis.lexical-return-callable-typevars-in-typeshed is
also set, since stubs like unittest.skip rely on it
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

by ecosystem round-trip

base: 57db3e43afc90ce1329b5c568326f38a895edf02 (merge base) → head: 217/merge

regressions: 0, changed: 20, improvements: 0, error changes: 0 (across 29674 files in 149 projects)

⚠️ 8 project(s) fail to round-trip on both base and head, so this check says nothing about them.

ℹ️ changed round-trip output

pycryptodome — _by_sourcemap.py
--- base/_by_sourcemap.py
+++ head/_by_sourcemap.py
@@ -432,5 +432,5 @@
     "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Random/test_random.py": {"by": "sha256:11a20824d4f1ae9b303629b26d716d5f6acfda24239a49ecf10c17dece54850d", "py": "sha256:ad0707618f4a8114a8ffb4f1cd2bd61780956bdb60f586e55937ed08c851dc9a"},
     "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Signature/__init__.py": {"by": "sha256:43095f4173f93e9c98d8e8be9f642e9a35030cbff6fa445e5d7e1773f00d05f7", "py": "sha256:43095f4173f93e9c98d8e8be9f642e9a35030cbff6fa445e5d7e1773f00d05f7"},
-    "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Signature/test_dss.py": {"by": "sha256:07642f460f9e613957797c4957a02f260b3f7e690755e68cfd8bd92bdb21e0cd", "py": "sha256:31c860f46bca46efc9de84107ca9879e331050782e43307e1dcf8705a1670fb6"},
+    "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Signature/test_dss.py": {"by": "sha256:07642f460f9e613957797c4957a02f260b3f7e690755e68cfd8bd92bdb21e0cd", "py": "sha256:ea795e437f46a7faa761746ea56412cd2f1902a81ab8ade2c6a374083be6c8e8"},
     "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Signature/test_eddsa.py": {"by": "sha256:b48e98ea0cf6dd574541e13828dbbd64d1e80e6479edc509553228916c2a844e", "py": "sha256:3b21b0b5cb6cf5c675e12923affcf477d97cffa6b9d5d517525ba57aafe705e1"},
     "/tmp/tmp6c8xywta/pycryptodome/build/lib/Crypto/SelfTest/Signature/test_mldsa.py": {"by": "sha256:78e10c68d2ee0b721f90d1a0c01a62757fbd4d3a32de96e84859507fa0f118cb", "py": "sha256:c25b5b7f039ad66de2de72d54e4c961f4d51dbe4ee87d6535eca64fd274b8518"},
pycryptodome — lib/Crypto/SelfTest/Signature/test_dss.py
--- base/lib/Crypto/SelfTest/Signature/test_dss.py
+++ head/lib/Crypto/SelfTest/Signature/test_dss.py
@@ -647,7 +647,7 @@
         TestKey = namedtuple("TestKey", "p q g x y")
         new_keys = {}
-        for k in _soundness_iter(self.keys, (tuple, str)):
-            tk = TestKey(*[t2l(y) for y in _soundness_iter(_soundness_check(k[:-1], (tuple, str)), str)])
-            new_keys[_soundness_check(k[-1], str)] = tk
+        for k in self.keys:
+            tk = TestKey(*[t2l(y) for y in k[:-1]])
+            new_keys[k[-1]] = tk
         self.keys = new_keys
pytest-autoprofile — lib/pytest_autoprofile/__init__.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_doctest.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_json.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_multiprocessing.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_patches.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_test_util_capture_warnings.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_test_utils.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_typing.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_warnings.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/_xdoctest.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/importers.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/option_hooks.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/plugin.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/profiler.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/rewriting.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/setup.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/startup_hook.py
(only produced on base)
pytest-autoprofile — lib/pytest_autoprofile/utils.py
(only produced on base)

💥 fails to round-trip (unchanged from base)

  • jax: build: killed: timed out after 900s
  • kopf: reverse: thread '' (4820) has overflowed its stack
  • manticore: reverse: killed: exceeded 11.7365GB memory budget
  • openlibrary: reverse: killed: timed out after 900s
  • pandas: build: killed: timed out after 900s
  • pandas-stubs: build: killed: timed out after 900s
  • scipy: reverse: killed: exceeded 11.7358GB memory budget
  • sympy: reverse: thread '' (5580) has overflowed its stack

⏭️ skipped

  • CPython (Argument Clinic): skipped: 2360 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • CPython (cases_generator): skipped: 2360 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • CPython (peg_generator): skipped: 2360 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • core: skipped: 19994 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • dd-trace-py: skipped: 3104 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • ecosystem-analyzer: setup failed: setup_primer_project.py failed for 'ecosystem-analyzer': Cloning into '/tmp/tmpz4xuv0ab/ecosystem-analyzer'... Using CPython 3.12.3 interpreter at: /home/runner/work/_temp/setup-uv-cach…
  • mongo-python-driver: setup failed: setup_primer_project.py failed for 'mongo-python-driver': Cloning into '/tmp/tmpd0x94jy3/mongo-python-driver'... Submodule 'drivers-evergreen-tools' (https://github.com/mongodb-labs/dri…
  • pylint: skipped: 2521 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • rotki: skipped: 2683 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory
  • spack: skipped: known to spike past the runner's memory during by build (faster than the watchdog can react)
  • zulip: skipped: 2042 .py files exceeds --max-project-py-files (2000); by build would not fit in the runner's memory

@KotlinIsland
KotlinIsland force-pushed the lexical-return-callable-typevars branch from 1386799 to 00665ca Compare October 26, 2026 15:59

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant