{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":7053637,"defaultBranch":"master","name":"mypy","ownerLogin":"python","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-12-07T13:30:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1525981?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717672962.0","currentOid":""},"activityList":{"items":[{"before":"8dd268ffd84ccf549b3aa9105dd35766a899b2bd","after":"3518f2499f5677792888bc97484cc53404472fca","ref":"refs/heads/master","pushedAt":"2024-06-08T19:01:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilevkivskyi","name":"Ivan Levkivskyi","path":"/ilevkivskyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12005495?s=80&v=4"},"commit":{"message":"Move apply_type() to applytype.py (#17346)\n\nMoving towards https://github.com/python/mypy/issues/15907\r\n\r\nThis is a pure refactoring. It was surprisingly easy, this didn't add\r\nnew import cycles, because there is already (somewhat fundamental) cycle\r\n`applytype.py` <-> `subtypes.py`.","shortMessageHtmlLink":"Move apply_type() to applytype.py (#17346)"}},{"before":"516e1bb6eb5418fb2be5b774f53867620e03baab","after":"ff1c839d1566edcb6af8ffdc2783cfe60c2368dd","ref":"refs/heads/type-var-syntax-error-checks","pushedAt":"2024-06-06T12:05:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Attempt to work around mypyc error","shortMessageHtmlLink":"Attempt to work around mypyc error"}},{"before":"21834c5b1c0a9af0e6744a42ed20e0c54d94d5ce","after":"516e1bb6eb5418fb2be5b774f53867620e03baab","ref":"refs/heads/type-var-syntax-error-checks","pushedAt":"2024-06-06T11:24:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Black","shortMessageHtmlLink":"Black"}},{"before":null,"after":"21834c5b1c0a9af0e6744a42ed20e0c54d94d5ce","ref":"refs/heads/type-var-syntax-error-checks","pushedAt":"2024-06-06T11:22:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Black","shortMessageHtmlLink":"Black"}},{"before":"09c48a4d9da2b0d8bf5ce116ca35d51a46c415f2","after":"8dd268ffd84ccf549b3aa9105dd35766a899b2bd","ref":"refs/heads/master","pushedAt":"2024-06-06T10:43:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Fix handling of undefined name in generic function annotation (#17338)\n\nThis was generating a false positive.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Fix handling of undefined name in generic function annotati…"}},{"before":"dc3103b92a48b2c8ef2643f7430cb46cb8586be3","after":null,"ref":"refs/heads/type-var-syntax-undefined","pushedAt":"2024-06-06T10:43:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":null,"after":"dc3103b92a48b2c8ef2643f7430cb46cb8586be3","ref":"refs/heads/type-var-syntax-undefined","pushedAt":"2024-06-06T10:19:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Fix handling of undefined name in generic function annotation\n\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Fix handling of undefined name in generic function annotation"}},{"before":"919e69657508f21ae331a14668a88397ba444373","after":null,"ref":"refs/heads/mypyc-int-inline","pushedAt":"2024-06-06T09:35:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"f989414d9db8c94268e593200ab94b4aec2cc3d3","after":"09c48a4d9da2b0d8bf5ce116ca35d51a46c415f2","ref":"refs/heads/master","pushedAt":"2024-06-06T09:35:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[mypyc] Inline tagged integer arithmetic and bitwise operations (#17265)\n\nInline the fast path of various tagged integer operations by using C\r\ninline functions. Most of these operations are very quick, so getting \r\nrid of the overhead of a C call improves performance significantly. \r\nThis also enables the C compiler to optimize things more, if there \r\nare constant operands, for example.\r\n\r\nThis speeds up an older version of the richards benchmark, which didn't\r\nuse native integers, by 10% (on CPython 3.12). Even bigger \r\nimprovements are possible in some microbenchmarks.\r\n\r\nWe didn't do this in the past because of worries about compilation time.\r\nHowever, I couldn't measure an impact to self-compilation speed, and \r\nthe binary size is only increased by about 0.1%.\r\n\r\nWork on mypyc/mypyc#757.","shortMessageHtmlLink":"[mypyc] Inline tagged integer arithmetic and bitwise operations (#17265)"}},{"before":"7a22997e5700d8fb7a79c3aebc240610c41eaabc","after":null,"ref":"refs/heads/type-var-syntax-fix-crash","pushedAt":"2024-06-06T09:34:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"668256364bc320a371e0a705436f1a700a724edc","after":"f989414d9db8c94268e593200ab94b4aec2cc3d3","ref":"refs/heads/master","pushedAt":"2024-06-06T09:34:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Don't crash when redefining something as a type alias (#17335)\n\nGenerate an error instead.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Don't crash when redefining something as a type alias (#17335)"}},{"before":"6bdd854083604e4416123edf87a8f549356f783f","after":"668256364bc320a371e0a705436f1a700a724edc","ref":"refs/heads/master","pushedAt":"2024-06-05T22:11:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilevkivskyi","name":"Ivan Levkivskyi","path":"/ilevkivskyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12005495?s=80&v=4"},"commit":{"message":"Use namespaces for function type variables (#17311)\n\nFixes https://github.com/python/mypy/issues/16582\r\n\r\nIMO this is long overdue. Currently, type variable IDs are 99% unique,\r\nbut when they accidentally clash, it causes hard to debug issues. The\r\nimplementation is generally straightforward, but it uncovered a whole\r\nbunch of unrelated bugs. Few notes:\r\n* This still doesn't fix the type variables in nested generic callable\r\ntypes (those that appear in return types of another generic callable).\r\nIt is non-trivial to put namespace there, and luckily this situation is\r\nalready special-cased in `checkexpr.py` to avoid ID clashes.\r\n* This uncovered a bug in overloaded dunder overrides handling, fix is\r\nsimple.\r\n* This also uncovered a deeper problem in unsafe overload overlap logic\r\n(w.r.t. partial parameters overlap). Here proper fix would be hard, so\r\ninstead I tweak current logic so it will not cause false positives, at a\r\ncost of possible false negatives.\r\n* This makes explicit that we use a somewhat ad-hoc logic for join/meet\r\nof generic callables. FWIW I decided to keep it, since it seems to work\r\nreasonably well.\r\n* This accidentally highlighted two bugs in error message locations. One\r\nvery old one related to type aliases, I fixed newly discovered cases by\r\nextending a previous partial fix. Second, the error locations generated\r\nby `partial` plugin were completely off (you can see examples in\r\n`mypy_primer` where there were errors on empty lines etc).\r\n* This PR (naturally) causes a significant amount of new valid errors\r\n(fixed false negatives). To improve the error messages, I extend the\r\nname disambiguation logic to include type variables (and also type\r\naliases, while I am at it), previously it only applied to `Instance`s.\r\nNote that I use a notation `TypeVar@namespace`, which is a semantic\r\nequivalent of qualified name for type variables. For now, I shorten the\r\nnamespace to only the last component, to make errors less verbose. We\r\ncan reconsider this if it causes confusion.\r\n* Finally, this PR will hopefully allow a more principled implementation\r\nof https://github.com/python/mypy/issues/15907\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Use namespaces for function type variables (#17311)"}},{"before":"ddcf90d1c43b078b8acc5a341074a1c9ab260569","after":"6bdd854083604e4416123edf87a8f549356f783f","ref":"refs/heads/master","pushedAt":"2024-06-05T21:32:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilevkivskyi","name":"Ivan Levkivskyi","path":"/ilevkivskyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12005495?s=80&v=4"},"commit":{"message":"Do not forget that a `TypedDict` was wrapped in `Unpack` after a `name-defined` error occurred. (#17226)\n\nDo not set the `unpacked_kwargs` attribute of `CallableType` to False\r\nwhen visiting a callable of which the `Unpack` wrapper of a `TypedDict`\r\nhas already been removed.\r\n\r\nFixes #17225","shortMessageHtmlLink":"Do not forget that a TypedDict was wrapped in Unpack after a `nam…"}},{"before":null,"after":"7a22997e5700d8fb7a79c3aebc240610c41eaabc","ref":"refs/heads/type-var-syntax-fix-crash","pushedAt":"2024-06-05T15:51:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Update test case","shortMessageHtmlLink":"Update test case"}},{"before":"bfc18e817f67a6c9056699ad32a67152e3ff85f0","after":null,"ref":"refs/heads/type-var-syntax-alias-nested","pushedAt":"2024-06-05T15:16:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"fbaa7e0121a180051c28d72bf1ed73f5c3c3b947","after":"ddcf90d1c43b078b8acc5a341074a1c9ab260569","ref":"refs/heads/master","pushedAt":"2024-06-05T15:16:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Add tests for type alias in class body or function (#17334)\n\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Add tests for type alias in class body or function (#17334)"}},{"before":null,"after":"bfc18e817f67a6c9056699ad32a67152e3ff85f0","ref":"refs/heads/type-var-syntax-alias-nested","pushedAt":"2024-06-05T14:54:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Add tests for type alias in class body or function\n\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Add tests for type alias in class body or function"}},{"before":"618663f2394ec8b8edd2a09b0effff66906fa585","after":null,"ref":"refs/heads/type-var-syntax-8-alias-more","pushedAt":"2024-06-05T09:49:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"ad0e180659f8bb1ef0c270045c655888b3b1223a","after":"fbaa7e0121a180051c28d72bf1ed73f5c3c3b947","ref":"refs/heads/master","pushedAt":"2024-06-05T09:49:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Add tests for type aliases with bounds and value restrictions (#17330)\n\nThe functionality already works, but there was missing test coverage.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Add tests for type aliases with bounds and value restrictio…"}},{"before":"16d5aaf7f7f1e7f267c0a51924f6ca53ac5abe99","after":"ad0e180659f8bb1ef0c270045c655888b3b1223a","ref":"refs/heads/master","pushedAt":"2024-06-04T19:38:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JelleZijlstra","name":"Jelle Zijlstra","path":"/JelleZijlstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/906600?s=80&v=4"},"commit":{"message":"Fix false positive for Final local scope variable in Protocol (#17308)\n\nThis PR fixes and closes #17281 ,which reported a false positive when\r\nusing Final within the local function scope of a protocol method.\r\n\r\nWith these changes:\r\n- Local variables within protocol methods can be marked as Final.\r\n- Protocol members still cannot be marked as Final\r\n\r\nModified ``semanal.py`` file and added a unit test in\r\n``test-data/unit/check.final.test``\r\n\r\n---------\r\n\r\nCo-authored-by: Jelle Zijlstra \r\nCo-authored-by: Stanislav Terliakov","shortMessageHtmlLink":"Fix false positive for Final local scope variable in Protocol (#17308)"}},{"before":null,"after":"618663f2394ec8b8edd2a09b0effff66906fa585","ref":"refs/heads/type-var-syntax-8-alias-more","pushedAt":"2024-06-04T15:46:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Add tests for type aliases with bounds and value restrictions\n\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Add tests for type aliases with bounds and value restrictions"}},{"before":"46647aa7df9b506642e799b3250f1fdfb74a542c","after":null,"ref":"refs/heads/type-var-syntax-7-daemon","pushedAt":"2024-06-04T14:31:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"c7621912e2451f7135169f7d458f91c6c947ddba","after":"16d5aaf7f7f1e7f267c0a51924f6ca53ac5abe99","ref":"refs/heads/master","pushedAt":"2024-06-04T14:31:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Add daemon tests that use new type parameter syntax (#17327)\n\nAdd some basic mypy daemon test coverage, and make it possible to write\r\ndaemon tests that only work on recent Python versions.\r\n\r\nEverything tested seems to work already.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Add daemon tests that use new type parameter syntax (#17327)"}},{"before":null,"after":"46647aa7df9b506642e799b3250f1fdfb74a542c","ref":"refs/heads/type-var-syntax-7-daemon","pushedAt":"2024-06-04T12:57:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Add test case + remove TODO","shortMessageHtmlLink":"Add test case + remove TODO"}},{"before":"f9bcd7a1132e89ae905bbf7ea1fcd22536391604","after":null,"ref":"refs/heads/type-var-syntax-6-call-alias","pushedAt":"2024-06-04T12:32:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"93dac05cc8461f13c2031dff48711eecbe2595af","after":"c7621912e2451f7135169f7d458f91c6c947ddba","ref":"refs/heads/master","pushedAt":"2024-06-04T12:32:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Generate error if 3.12 type alias is called (#17320)\n\nPEP 695 type aliases raise an exception at runtime if called.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Generate error if 3.12 type alias is called (#17320)"}},{"before":"d10ba740250e74e7e28db0581c4ff4cc001ce77d","after":"f9bcd7a1132e89ae905bbf7ea1fcd22536391604","ref":"refs/heads/type-var-syntax-6-call-alias","pushedAt":"2024-06-04T09:52:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Fix serialization","shortMessageHtmlLink":"Fix serialization"}},{"before":null,"after":"d10ba740250e74e7e28db0581c4ff4cc001ce77d","ref":"refs/heads/type-var-syntax-6-call-alias","pushedAt":"2024-06-03T16:57:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"Also support type alias created using TypeAliasType(...)","shortMessageHtmlLink":"Also support type alias created using TypeAliasType(...)"}},{"before":"f1eaf14b996ab91e7103732189394ee31d34996a","after":null,"ref":"refs/heads/type-var-syntax-5-misc","pushedAt":"2024-06-03T16:10:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"}},{"before":"aa4410ff7806425f143c3c4a21324d8f10b3f76d","after":"93dac05cc8461f13c2031dff48711eecbe2595af","ref":"refs/heads/master","pushedAt":"2024-06-03T16:10:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JukkaL","name":"Jukka Lehtosalo","path":"/JukkaL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1107911?s=80&v=4"},"commit":{"message":"[PEP 695] Fix a few issues and add tests (#17318)\n\nFix badly formed types that could be created when using aliases like\r\n`type A = list`.\r\n\r\nImprove some error messages when using PEP 695 syntax.\r\n\r\nAdd a few PEP 695 tests.\r\n\r\nWork on #15238.","shortMessageHtmlLink":"[PEP 695] Fix a few issues and add tests (#17318)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYAxRIgA","startCursor":null,"endCursor":null}},"title":"Activity · python/mypy"}