KEMBAR78
Allow nesting of Annotated with TypedDict special forms inside TypedDicts by brianschubert · Pull Request #18165 · python/mypy · GitHub
Skip to content

Conversation

brianschubert
Copy link
Member

This is allowed per the typing spec.

Updates the TypeAnalyzer to remember whether TypedDict special forms are allowed when visiting Annotated types.

@brianschubert
Copy link
Member Author

With this, mypy passes the typeddicts_readonly and typeddicts_required conformance tests:

diff --git a/conformance/results/mypy/typeddicts_readonly.toml b/conformance/results/mypy/typeddicts_readonly.toml
index 6dc58bb..ccc3d4b 100644
--- a/conformance/results/mypy/typeddicts_readonly.toml
+++ b/conformance/results/mypy/typeddicts_readonly.toml
@@ -7,11 +7,9 @@ typeddicts_readonly.py:24: error: ReadOnly TypedDict key "members" TypedDict is
 typeddicts_readonly.py:36: error: ReadOnly TypedDict key "members" TypedDict is mutated  [typeddict-readonly-mutated]
 typeddicts_readonly.py:50: error: ReadOnly TypedDict key "title" TypedDict is mutated  [typeddict-readonly-mutated]
 typeddicts_readonly.py:51: error: ReadOnly TypedDict key "year" TypedDict is mutated  [typeddict-readonly-mutated]
-typeddicts_readonly.py:56: error: NotRequired[] can be only used in a TypedDict definition  [valid-type]
 typeddicts_readonly.py:60: error: ReadOnly TypedDict key "title" TypedDict is mutated  [typeddict-readonly-mutated]
+typeddicts_readonly.py:61: error: ReadOnly TypedDict key "year" TypedDict is mutated  [typeddict-readonly-mutated]
 """
-conformance_automated = "Fail"
+conformance_automated = "Pass"
 errors_diff = """
-Line 61: Expected 1 errors
-Line 56: Unexpected errors ['typeddicts_readonly.py:56: error: NotRequired[] can be only used in a TypedDict definition  [valid-type]']
 """
diff --git a/conformance/results/mypy/typeddicts_required.toml b/conformance/results/mypy/typeddicts_required.toml
index 7cf6994..acc0431 100644
--- a/conformance/results/mypy/typeddicts_required.toml
+++ b/conformance/results/mypy/typeddicts_required.toml
@@ -7,11 +7,7 @@ typeddicts_required.py:12: error: Required[] can be only used in a TypedDict def
 typeddicts_required.py:19: error: NotRequired[] can be only used in a TypedDict definition  [valid-type]
 typeddicts_required.py:62: error: "Required[]" type cannot be nested  [valid-type]
 typeddicts_required.py:63: error: "NotRequired[]" type cannot be nested  [valid-type]
-typeddicts_required.py:68: error: Required[] can be only used in a TypedDict definition  [valid-type]
-typeddicts_required.py:70: error: Required[] can be only used in a TypedDict definition  [valid-type]
 """
-conformance_automated = "Fail"
+conformance_automated = "Pass"
 errors_diff = """
-Line 68: Unexpected errors ['typeddicts_required.py:68: error: Required[] can be only used in a TypedDict definition  [valid-type]']
-Line 70: Unexpected errors ['typeddicts_required.py:70: error: Required[] can be only used in a TypedDict definition  [valid-type]']
 """
diff --git a/conformance/results/mypy/version.toml b/conformance/results/mypy/version.toml
index bdefc8c..842fec5 100644
--- a/conformance/results/mypy/version.toml
+++ b/conformance/results/mypy/version.toml
@@ -1,2 +1,2 @@
-version = "mypy 1.13.0"
-test_duration = 2.7
+version = "mypy 1.14.0+dev.ec6dc1bc20da15dc0d8dd916d487dd3cbb7f6b69"
+test_duration = 7.0

@github-actions

This comment has been minimized.

@github-actions
Copy link
Contributor

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

@hauntsaninja hauntsaninja merged commit 11c58a7 into python:master Nov 19, 2024
19 checks passed
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.

2 participants