Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Apr 1, 2025

Close and reopen this PR to trigger CI

@github-actions github-actions bot added the internal An internal refactor or improvement label Apr 1, 2025
@carljm carljm closed this Apr 1, 2025
@carljm carljm reopened this Apr 1, 2025
@github-actions
Copy link
Contributor Author

github-actions bot commented Apr 1, 2025

mypy_primer results

No ecosystem changes detected ✅

@carljm
Copy link
Contributor

carljm commented Apr 1, 2025

Whoops, this brings in the new definition of Any as a class instead of just object, so we need to update to accommodate that first, or else it breaks our understanding of Any entirely.

@carljm
Copy link
Contributor

carljm commented Apr 1, 2025

I rebased this on top of #17107 to fix our understanding of Any.

Now this PR has zero ecosystem impact.

carljm added a commit that referenced this pull request Apr 1, 2025
## Summary

In python/typeshed#13520 the typeshed definition
of `typing.Any` was changed from `Any = object()` to `class Any: ...`.
Our automated typeshed updater pulled down this change in
#17106, with the consequence that
we no longer understand `Any`, which is... not good.

This PR gives us the ability to understand `Any` defined as a class
instead of `object()`. It doesn't remove our ability to understand the
old form. Perhaps at some point we'll want to remove it, but for now we
may as well support both old and new typeshed?

This also directly patches typeshed to use the new form of `Any`; this
is purely to work around our tests that no known class is inferred as
`Unknown`, which otherwise fail with the old typeshed and the changes in
this PR. (All other tests pass.) This patch to typeshed will shortly be
subsumed by #17106 anyway.

## Test Plan

Without the typeshed change in this PR, all tests pass except for the
two `known_class_doesnt_fallback_to_unknown_unexpectedly_*` tests (so we
still support the old form of defining `Any`). With the typeshed change
in this PR, all tests pass, so we now support the new form in a way that
is indistinguishable to our test suite from the old form. And
indistinguishable to the ecosystem check: after rebasing
#17106 on this PR, there's zero
ecosystem impact.
@carljm carljm force-pushed the typeshedbot/sync-typeshed branch from fead8f0 to 8c758ce Compare April 1, 2025 16:39
@AlexWaygood
Copy link
Member

Primer hits are 0, CI is green. Mergin'

@AlexWaygood AlexWaygood merged commit a15404a into main Apr 1, 2025
22 checks passed
@AlexWaygood AlexWaygood deleted the typeshedbot/sync-typeshed branch April 1, 2025 16:44
dcreager added a commit that referenced this pull request Apr 1, 2025
* main:
  [red-knot] Add property tests for callable types (#17006)
  [red-knot] Disjointness for callable types (#17094)
  [red-knot] Flatten `Type::Callable` into four `Type` variants (#17126)
  mdtest.py: do a full mdtest run immediately when the script is executed (#17128)
  [red-knot] Fix callable subtyping for standard parameters (#17125)
  [red-knot] Fix more `redundant-cast` false positives (#17119)
  Sync vendored typeshed stubs (#17106)
  [red-knot] support Any as a class in typeshed (#17107)
  Visit `Identifier` node as part of the `SourceOrderVisitor` (#17110)
  [red-knot] Don't infer Todo for quite so many tuple type expressions (#17116)
  CI: Run pre-commit on depot machine (#17120)
  Error instead of `panic!` when running Ruff from a deleted directory (#16903) (#17054)
  Control flow graph: setup (#17064)
  [red-knot] Playground improvements (#17109)
  [red-knot] IDE crate (#17045)
  Update dependency vite to v6.2.4 (#17104)
  [red-knot] Add redundant-cast error (#17100)
  [red-knot] Narrowing on `in tuple[...]` and `in str` (#17059)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal An internal refactor or improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants