)]}'
{
  "log": [
    {
      "commit": "d0d63b4644a6bb99793b32548c5197cf7600544f",
      "tree": "b2fc6409efbfb06ed2455b0c2c74289280d0289d",
      "parents": [
        "eab5b5083adf1b54ab1691f5ecc5a846863420de"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Thu Aug 10 13:03:39 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 10 11:03:39 2023 +0100"
      },
      "message": "The oldest CAPI version we support right now is 3.7 (#15839)\n\nLooks like `capi_version \u003c 3.7` is not supported, so I changed the\r\nlowest version to be `3.7`.\r\n\r\nBased on the discord discussion."
    },
    {
      "commit": "eab5b5083adf1b54ab1691f5ecc5a846863420de",
      "tree": "7cd93c7e86d4e8fdb42f61e52c51277352b31b8a",
      "parents": [
        "78339b97dc911c8c6841184eaddbbc30d0e406da"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Thu Aug 10 02:32:08 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 10 02:32:08 2023 -0700"
      },
      "message": "Document new import error codes (#15840)\n\nSee https://github.com/python/mypy/pull/14740\r\n\r\nMy PR was pretty old and predates the nice check to ensure error codes\r\nare documented."
    },
    {
      "commit": "78339b97dc911c8c6841184eaddbbc30d0e406da",
      "tree": "d743e54a80f97f4f71d5f649bae9b5cd28ea5e11",
      "parents": [
        "8c219539380208bf5b8d189aafd4dec10f941f98"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Thu Aug 10 01:50:20 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 10 01:50:20 2023 -0700"
      },
      "message": "Use error subcodes to differentiate import errors (#14740)\n\nResolves #9789\r\n\r\nUsers could use `--disable-error-code\u003dimport-untyped` to only ignore\r\nerrors about libraries not having stubs, but continue to get errors\r\nabout e.g. typos in an import name.\r\n\r\nThe error subcode mechanism is new from #14570. Note that users will now\r\nget a different error code depending on whether or not a package is\r\ninstalled, and may not know that they can use the parent error code to\r\nignore the issue regardless. I think this is okay, in general type\r\nchecking results can change if you run them in two different\r\nenvironments. Note also that with `--warn-unused-ignore` / `--strict`\r\nmypy will complain about not having the most specific error code"
    },
    {
      "commit": "8c219539380208bf5b8d189aafd4dec10f941f98",
      "tree": "c8915b693726b42e66afc2e93bac75dcdbc15910",
      "parents": [
        "a7c48520560c3adf7176b91d16f4d0750ab8dfa9"
      ],
      "author": {
        "name": "Ivan Levkivskyi",
        "email": "levkivskyi@gmail.com",
        "time": "Wed Aug 09 16:33:38 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 09 16:33:38 2023 +0100"
      },
      "message": "New type inference: add support for upper bounds and values (#15813)\n\nThis is a third PR in series following\r\nhttps://github.com/python/mypy/pull/15287 and\r\nhttps://github.com/python/mypy/pull/15754. This one is quite simple: I\r\njust add basic support for polymorphic inference involving type\r\nvariables with upper bounds and values. A complete support would be\r\nquite complicated, and it will be a corner case to already rare\r\nsituation. Finally, it is written in a way that is easy to tune in the\r\nfuture.\r\n\r\nI also use this PR to add some unit tests for all three PRs so far,\r\nother two PRs only added integration tests (and I clean up existing unit\r\ntests as well)."
    },
    {
      "commit": "a7c48520560c3adf7176b91d16f4d0750ab8dfa9",
      "tree": "d2ed413d27693f3cc6a95b6966cb6bf87afe2c78",
      "parents": [
        "2aaeda4b84a863004a6694a7d562462fbe531ece"
      ],
      "author": {
        "name": "Ivan Levkivskyi",
        "email": "levkivskyi@gmail.com",
        "time": "Wed Aug 09 08:23:03 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 09 08:23:03 2023 +0100"
      },
      "message": "Revert \"Reconsider constraints involving parameter specifications (#1… (#15832)\n\n…5272)\"\r\n\r\nThis reverts commit 2aaeda4b84a863004a6694a7d562462fbe531ece.\r\n\r\n\u003c!-- If this pull request fixes an issue, add \"Fixes #NNN\" with the\r\nissue number. --\u003e\r\n\r\n(Explain how this PR changes mypy.)\r\n\r\n\u003c!--\r\nChecklist:\r\n- Read the [Contributing\r\nGuidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)\r\n- Add tests for all changed behaviour.\r\n- If you can\u0027t add a test, please explain why and how you verified your\r\nchanges work.\r\n- Make sure CI passes.\r\n- Please do not force push to the PR once it has been reviewed.\r\n--\u003e"
    },
    {
      "commit": "2aaeda4b84a863004a6694a7d562462fbe531ece",
      "tree": "11612b340d869d6338cbedc95c704203e6dd9dac",
      "parents": [
        "5617cdd03d12ff73622c8d4b496979e0377b1675"
      ],
      "author": {
        "name": "EXPLOSION",
        "email": "git@helvetica.moe",
        "time": "Wed Aug 09 15:17:13 2023 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 08 23:17:13 2023 -0700"
      },
      "message": "Reconsider constraints involving parameter specifications (#15272)\n\n- Fixes https://github.com/python/mypy/issues/15037\r\n- Fixes https://github.com/python/mypy/issues/15065\r\n- Fixes https://github.com/python/mypy/issues/15073\r\n- Fixes https://github.com/python/mypy/issues/15388\r\n- Fixes https://github.com/python/mypy/issues/15086\r\n\r\nYet another part of https://github.com/python/mypy/pull/14903 that\u0027s\r\nfinally been extracted!"
    },
    {
      "commit": "5617cdd03d12ff73622c8d4b496979e0377b1675",
      "tree": "d2ed413d27693f3cc6a95b6966cb6bf87afe2c78",
      "parents": [
        "0d708cb9c9d5291c1c988ef90a1b77307ed5315c"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Aug 04 16:39:11 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 04 07:39:11 2023 -0700"
      },
      "message": "Update black pre-commit mirror link (#15815)\n\nThe black pre-commit mirror is now hosted at:\r\nhttps://github.com/psf/black-pre-commit-mirror"
    },
    {
      "commit": "0d708cb9c9d5291c1c988ef90a1b77307ed5315c",
      "tree": "14b51cf55f32168d1865079b0a5cd7589cdd7ce4",
      "parents": [
        "2b613e5ba1ada5a44f88a90528af834bf9f770a7"
      ],
      "author": {
        "name": "Ivan Levkivskyi",
        "email": "levkivskyi@gmail.com",
        "time": "Fri Aug 04 00:17:42 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 04 00:17:42 2023 +0100"
      },
      "message": "New type inference: complete transitive closure (#15754)\n\nThis is a first follow-up for #15287 (I like how my PR titles sound like\r\nresearch paper titles, LOL)\r\n\r\nThis PR completes the new type inference foundations by switching to a\r\ncomplete and well founded algorithm [1] for transitive closure (that\r\nreplaces more ad hoc initial algorithm that covered 80% of cases and was\r\ngood for experimenting with new inference scheme). In particular the\r\nalgorithm in this PR covers two important edge cases (see tests). Some\r\ncomments:\r\n* I don\u0027t intend to switch the default for `--new-type-inference`, I\r\njust want to see the effect of the switch on `mypy_primer`, I will\r\nswitch back to false before merging\r\n* This flag is still not ready to be publicly announced, I am going to\r\nmake another 2-3 PRs from the list in #15287 before making this public.\r\n* I am not adding yet the unit tests as discussed in previous PR. This\r\nPR is already quite big, and the next one (support for upper bounds and\r\nvalues) should be much smaller. I am going to add unit tests only for\r\n`transitive_closure()` which is the core of new logic.\r\n* While working on this I fixed couple bugs exposed in `TypeVarTuple`\r\nsupport: one is rare technical corner case, another one is serious,\r\ntemplate and actual where swapped during constraint inference,\r\neffectively causing outer/return context to be completely ignored for\r\ninstances.\r\n* It is better to review the PR with \"ignore whitespace\" option turned\r\non (there is big chunk in solve.py that is just change of indentation).\r\n* There is one questionable design choice I am making in this PR, I am\r\nadding `extra_tvars` as an attribute of `Constraint` class, while it\r\nlogically should not be attributed to any individual constraint, but\r\nrather to the full list of constrains. However, doing this properly\r\nwould require changing the return type of `infer_constrains()` and all\r\nrelated functions, which would be a really big refactoring.\r\n\r\n[1] Definition 7.1 in https://inria.hal.science/inria-00073205/document\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2b613e5ba1ada5a44f88a90528af834bf9f770a7",
      "tree": "9ed8230b30c7e5c53dec4e9d47c3d17a203dc4b0",
      "parents": [
        "54bc37ccade0476a1738b33cd34b6eb35d7124e1"
      ],
      "author": {
        "name": "Marti Raudsepp",
        "email": "marti@juffo.org",
        "time": "Thu Aug 03 02:31:00 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 02 16:31:00 2023 -0700"
      },
      "message": "Fix type narrowing of `\u003d\u003d None` and `in (None,)` conditions (#15760)\n\n\r\n"
    },
    {
      "commit": "54bc37ccade0476a1738b33cd34b6eb35d7124e1",
      "tree": "8234bce28e111486f575d355b7a6312516111f10",
      "parents": [
        "cb813259c3b9dff6aaa8686793cf6a0634cf1f69"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Tue Aug 01 15:59:34 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 01 07:59:34 2023 -0700"
      },
      "message": "reduce frequency of pre-commit.ci autoupdate PRs (#15798)\n\n"
    },
    {
      "commit": "cb813259c3b9dff6aaa8686793cf6a0634cf1f69",
      "tree": "e3f00af6aab2ba497a38837242ce70a4b54406d6",
      "parents": [
        "d71afbf89437bdf34566f50923759ead2736d93a"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sun Jul 30 18:48:12 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 30 18:48:12 2023 +0300"
      },
      "message": "Update pre-commit deps (#15784)\n\nCloses https://github.com/python/mypy/pull/15526"
    },
    {
      "commit": "d71afbf89437bdf34566f50923759ead2736d93a",
      "tree": "bbd5b0e10d9fe7e105d5de4ac790350b48c59470",
      "parents": [
        "002502a0111852c360f2255830951473bcfec4a7"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sun Jul 30 16:53:47 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 30 16:53:47 2023 +0300"
      },
      "message": "Change `tuple[]` repr to `tuple[()]` (#15783)\n\nCloses https://github.com/python/mypy/issues/15782"
    },
    {
      "commit": "002502a0111852c360f2255830951473bcfec4a7",
      "tree": "5c642f4b6aedb4447ac747117db257137187eb89",
      "parents": [
        "710ad44916fa89b430407c02a62a6df98f3a06f8"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 29 15:13:21 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 29 15:13:21 2023 -0700"
      },
      "message": "Fix inference for attrs.fields (#15688)\n\n"
    },
    {
      "commit": "710ad44916fa89b430407c02a62a6df98f3a06f8",
      "tree": "cd8929e02904f702fbae327e5f70f379f7d17aff",
      "parents": [
        "8792ff1b81c98644c2563d6526dcba633fba719c"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sun Jul 30 00:50:37 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 30 00:50:37 2023 +0300"
      },
      "message": "Better `tox` configuration (#15777)\n\nIt solves two problems:\r\n1. `fix_annotate` and `async_matrix` were removed in\r\nhttps://github.com/python/mypy/pull/15728\r\n2. It is better to reuse stuff like `runtests.py` not to rewrite the\r\nsame command we already have\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8792ff1b81c98644c2563d6526dcba633fba719c",
      "tree": "16f9d4c3205905913ce26a1b0895e8970fbd4101",
      "parents": [
        "6040b237e31978b7f6764266a3d162acb68c7884"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sat Jul 29 22:33:04 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 29 22:33:04 2023 +0300"
      },
      "message": "Raise `RuntimeError` with better error messages (#15778)\n\nWhile working on https://github.com/python/mypy/pull/15776 I\u0027ve noticed\r\nthat some `RuntimeError` do not have enough metadata to understand what\r\nis going on.\r\nCI:\r\nhttps://github.com/python/mypy/actions/runs/5700479199/job/15450345887\r\n\r\nThis PR adds more context to error messages."
    },
    {
      "commit": "6040b237e31978b7f6764266a3d162acb68c7884",
      "tree": "d3ea9843a0cf7f7f51ac5920171359a809c2ac54",
      "parents": [
        "14efdf2f1ec098b59b65796b3a37bd84210eca85"
      ],
      "author": {
        "name": "Mark Byrne",
        "email": "31762852+mbyrnepr2@users.noreply.github.com",
        "time": "Sat Jul 29 18:55:19 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 29 19:55:19 2023 +0300"
      },
      "message": "Remove the Python 37 environment from the `tox.ini` (#15693)\n\nRemove the Python 37 environment from the `tox.ini` since Python 3.7 is\r\nnow end of life.\r\n\r\nCo-authored-by: Alex Waygood \u003cAlex.Waygood@Gmail.com\u003e"
    },
    {
      "commit": "14efdf2f1ec098b59b65796b3a37bd84210eca85",
      "tree": "925fafbab26639c9e39d291bd54552cdc0297d1c",
      "parents": [
        "da1853ff7f764157511ece4305a11369f63353f5"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sat Jul 29 14:47:02 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 29 14:47:02 2023 +0300"
      },
      "message": "[stubtest] Test `NamedTuple` definitions with default fields (#15774)\n\nThis is a test case for https://github.com/python/mypy/pull/15680 from\r\n`stubtest`\u0027s point of view."
    },
    {
      "commit": "da1853ff7f764157511ece4305a11369f63353f5",
      "tree": "031adb38194a3b9343c9fe2497d8f5eaedad3ba8",
      "parents": [
        "a8467c43fb6423cc3f7f330f361e6b5af0bf284f"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sat Jul 29 11:05:41 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 29 11:05:41 2023 +0300"
      },
      "message": "Correctly narrow types for `tuple[type[X], ...]` (#15691)\n\n`flatten_types` forgot about the second way we represent `tuple` inside.\r\n\r\nCloses https://github.com/python/mypy/issues/15443\r\n\r\n---------\r\n\r\nCo-authored-by: Ilya Priven \u003cilya.konstantinov@gmail.com\u003e"
    },
    {
      "commit": "a8467c43fb6423cc3f7f330f361e6b5af0bf284f",
      "tree": "0a5ea8d40d00559a2edbaeb83fa481cd97c61ebf",
      "parents": [
        "b901d21194400b856a88df62a3d7db871936a50d"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Fri Jul 28 14:59:18 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 28 14:59:18 2023 +0300"
      },
      "message": "[stubgen] Add required `...` rhs to `NamedTuple` fields with default values (#15680)\n\nCloses https://github.com/python/mypy/issues/15638"
    },
    {
      "commit": "b901d21194400b856a88df62a3d7db871936a50d",
      "tree": "1ee0918fe4c933e1ea7a03d4efd840437015addd",
      "parents": [
        "01c6994ac01e3822fe89c5dc46f8bc8b656c8263"
      ],
      "author": {
        "name": "Marcel Johannesmann",
        "email": "mj0nez@fn.de",
        "time": "Wed Jul 26 20:50:13 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 26 11:50:13 2023 -0700"
      },
      "message": "docs: add missing verb (#15765)\n\n"
    },
    {
      "commit": "01c6994ac01e3822fe89c5dc46f8bc8b656c8263",
      "tree": "37ee4afde908b3819cde97aba27b231554cb97db",
      "parents": [
        "d2022a0007c0eb176ccaf37a9aa54c958be7fb10"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Wed Jul 26 03:34:51 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 26 00:34:51 2023 -0700"
      },
      "message": "Don\u0027t flag intentionally empty generators unreachable (#15722)\n\nCo-authored-by: Alex Waygood \u003cAlex.Waygood@Gmail.com\u003e\r\n"
    },
    {
      "commit": "d2022a0007c0eb176ccaf37a9aa54c958be7fb10",
      "tree": "8710b1f4364c930265ea584578e89a712bcf776a",
      "parents": [
        "6bdcc92002a5e1a6feb1528d0221802f7514c836"
      ],
      "author": {
        "name": "Ali Hamdan",
        "email": "ali.hamdan.dev@gmail.com",
        "time": "Sun Jul 23 01:43:44 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 22 16:43:44 2023 -0700"
      },
      "message": "Add `__match_args__` to dataclasses with no fields (#15749)\n\n"
    },
    {
      "commit": "6bdcc92002a5e1a6feb1528d0221802f7514c836",
      "tree": "e883570df1a8835014881a0fa0020e81656c852f",
      "parents": [
        "14e7768c3bd8d1164e887ce3becba3459ebcfaa4"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Sat Jul 22 21:20:36 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 22 13:20:36 2023 -0700"
      },
      "message": "stubtest: Fix `__mypy-replace` false positives (#15689)\n\n"
    },
    {
      "commit": "14e7768c3bd8d1164e887ce3becba3459ebcfaa4",
      "tree": "c5de78b25cdb6a46749766832705735a36b62f4f",
      "parents": [
        "383137baaf36876dcf935c2f5be053b6419097d0"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Fri Jul 21 22:27:36 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 21 22:27:36 2023 +0300"
      },
      "message": "Raise errors on unbound TypeVars with values (#15732)\n\nCompletes a `TODO` item :)\r\n\r\nRefs https://github.com/python/mypy/issues/15724\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "383137baaf36876dcf935c2f5be053b6419097d0",
      "tree": "ebaa4ce2292d6b2152aded68441e77fdf08f08c4",
      "parents": [
        "88c0c644c78e2f31ed25a523ad1f74727f2d647f"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Thu Jul 20 22:38:20 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 20 12:38:20 2023 -0700"
      },
      "message": "Remove more unused scripts (#15728)\n\n"
    },
    {
      "commit": "88c0c644c78e2f31ed25a523ad1f74727f2d647f",
      "tree": "7b13612d8646908962094ef7ad5adfd3dc26a0d6",
      "parents": [
        "89ad125fa5a31a7c82f267e957d3c94da6b52f61"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Thu Jul 20 21:06:59 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 20 21:06:59 2023 +0300"
      },
      "message": "Update LICENSE with copyright year (#15727)\n\n"
    },
    {
      "commit": "89ad125fa5a31a7c82f267e957d3c94da6b52f61",
      "tree": "754e1e2aaa6c20ea020b188a3a43cd8ffdacf939",
      "parents": [
        "b6b6624655826985f75dfd970e2c29f7690ce323"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Wed Jul 19 01:07:53 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 19 01:07:53 2023 +0100"
      },
      "message": "Update commit hashes following typeshed sync (#15690)\n\nFollowup to #15681"
    },
    {
      "commit": "b6b6624655826985f75dfd970e2c29f7690ce323",
      "tree": "b0c3b8e600ed7363680f298009fd982b10000789",
      "parents": [
        "3f601c3641ecde3557520ddc64a18baa40b12e35"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Mon Jul 17 15:27:52 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 17 11:27:52 2023 -0800"
      },
      "message": "tests: skip-path-normalization should be a testcase option (#15660)\n\nThe \"Skip path normalization\" option applies to all [out]s of a test\r\ncase, so it\u0027s more correct for it to be a \"case\" option rather than an\r\n\"out\" option.\r\n\r\nThis also simplifies the parsing of \"out\" sections\u0027 args."
    },
    {
      "commit": "3f601c3641ecde3557520ddc64a18baa40b12e35",
      "tree": "214778e0f2d2d5532b4c6cfd3ce8168ef885f204",
      "parents": [
        "3240da455e06a292669de22b0ef313dad43cb094"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Mon Jul 17 02:09:28 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 16 18:09:28 2023 -0700"
      },
      "message": "Remove unneeded `--strict-optional` flags from test cases (#15684)\n\n"
    },
    {
      "commit": "3240da455e06a292669de22b0ef313dad43cb094",
      "tree": "6d07a846bd0e8f260cae1a358d3e3ab455160741",
      "parents": [
        "1866d28f156c413ce8cc9fec0b317a7d02c28565"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Sat Mar 04 13:14:11 2023 +0000"
      },
      "committer": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 15 12:58:18 2023 -0700"
      },
      "message": "Revert use of `ParamSpec` for `functools.wraps`\n"
    },
    {
      "commit": "1866d28f156c413ce8cc9fec0b317a7d02c28565",
      "tree": "a2a90dd2ccb85ccd10fb42e2957ef25b450017d9",
      "parents": [
        "120af30e706a0e0e29faf915c56c5b6781c9b204"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Mon May 01 20:34:55 2023 +0100"
      },
      "committer": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 15 12:58:18 2023 -0700"
      },
      "message": "Revert typeshed ctypes change\nSince the plugin provides superior type checking: https://github.com/python/mypy/pull/13987#issuecomment-1310863427\nA manual cherry-pick of e437cdf.\n"
    },
    {
      "commit": "120af30e706a0e0e29faf915c56c5b6781c9b204",
      "tree": "a24a2bb54274f11dff868488ad2c909afa767e64",
      "parents": [
        "2f6b6e66ced53a0412c46851afb963f35a012f79"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Oct 29 12:47:21 2022 -0700"
      },
      "committer": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 15 12:58:18 2023 -0700"
      },
      "message": "Revert sum literal integer change (#13961)\n\nThis is allegedly causing large performance problems, see 13821\n\ntypeshed/8231 had zero hits on mypy_primer, so it\u0027s not the worst thing\nto undo. Patching this in typeshed also feels weird, since there\u0027s a\nmore general soundness issue. If a typevar has a bound or constraint, we\nmight not want to solve it to a Literal.\n\nIf we can confirm the performance regression or fix the unsoundness\nwithin mypy, I might pursue upstreaming this in typeshed.\n\n(Reminder: add this to the sync_typeshed script once merged)\n"
    },
    {
      "commit": "2f6b6e66ced53a0412c46851afb963f35a012f79",
      "tree": "efa913c95be3848c80fa2fe653859732e3db85fe",
      "parents": [
        "d7f9f06710cec4f0bb3cd432786264fba4809897"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Mon Sep 26 12:55:07 2022 -0700"
      },
      "committer": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 15 12:58:18 2023 -0700"
      },
      "message": "Remove use of LiteralString in builtins (#13743)\n"
    },
    {
      "commit": "d7f9f06710cec4f0bb3cd432786264fba4809897",
      "tree": "18038090fc8e87ec04bf466e7c49d20f3d258dfe",
      "parents": [
        "14743a1cdd2a07ecc56ce01cc9d54130fb32931e"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Sat Jul 15 11:38:50 2023 +0100"
      },
      "committer": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Jul 15 12:58:18 2023 -0700"
      },
      "message": "Sync typeshed\n\nSource commit:\nhttps://github.com/python/typeshed/commit/a83e55990ca7f9b9f93271b9087a3f433f54d94a\n"
    },
    {
      "commit": "14743a1cdd2a07ecc56ce01cc9d54130fb32931e",
      "tree": "fe73d029d1039b330abd1a9508b9636e24ed9679",
      "parents": [
        "1958cb62f4de7492fb154323f3fdb7a0b6b51fa7"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Sat Jul 15 10:51:04 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 15 00:51:04 2023 -0700"
      },
      "message": "Bump minimum Python type check target version to 3.7 (#15668)\n\n"
    },
    {
      "commit": "1958cb62f4de7492fb154323f3fdb7a0b6b51fa7",
      "tree": "a3f61d75ddddae96815602207594d96143052fb0",
      "parents": [
        "a538cc98d54031f25e44787a90649ea909877f12"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 14 20:18:54 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 11:18:54 2023 -0700"
      },
      "message": "Remove `--py2` argument (#15670)\n\n"
    },
    {
      "commit": "a538cc98d54031f25e44787a90649ea909877f12",
      "tree": "cc4e4e41b318b38566a00debe8eb60ae80c0af68",
      "parents": [
        "211d74252b506bf0aa7ced5053428004a57c2ae9"
      ],
      "author": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Fri Jul 14 14:33:32 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 12:33:32 2023 +0100"
      },
      "message": "fix cherry-pick-typeshed (#15672)\n\nIt should exclude test_cases too"
    },
    {
      "commit": "211d74252b506bf0aa7ced5053428004a57c2ae9",
      "tree": "add6d92cf908f097aa0617241b3c7c45fc1c3593",
      "parents": [
        "7a9418356082092d2cb1585acb816b2074cff43e"
      ],
      "author": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Fri Jul 14 14:13:38 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 12:13:38 2023 +0100"
      },
      "message": "Update dev version to 1.6.0+dev (#15671)\n\nCreated the [release-1.5\r\nbranch](https://github.com/python/mypy/tree/release-1.5), updating\r\nversion"
    },
    {
      "commit": "7a9418356082092d2cb1585acb816b2074cff43e",
      "tree": "0a390dc201d6534ffef991f08887374ae4ba0c30",
      "parents": [
        "2ebd51e881490f4d20635cde92ef9e3edbbad68c"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Fri Jul 14 02:58:23 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 10:58:23 2023 +0100"
      },
      "message": "Fix dataclass/protocol crash on joining types (#15629)\n\nThe root cause is hacky creation of incomplete symbols; instead\r\nswitching to `add_method_to_class` which does the necessary\r\nhousekeeping.\r\n\r\nFixes #15618."
    },
    {
      "commit": "2ebd51e881490f4d20635cde92ef9e3edbbad68c",
      "tree": "1acb1884b4269eaf8b88eba7a4aaa360feb68293",
      "parents": [
        "39833810ddcd29561f3ffed44703380aa26a68be"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Fri Jul 14 00:40:02 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 00:40:02 2023 +0300"
      },
      "message": "Teach `stubgen` to work with `complex` and unary expressions (#15661)\n\n"
    },
    {
      "commit": "39833810ddcd29561f3ffed44703380aa26a68be",
      "tree": "d3fb4a4016bba6e10ed5c01927c135b4e09cc1bb",
      "parents": [
        "3bf85217386806b0f68bf8857b61379ae2f6ad1e"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Thu Jul 13 12:27:28 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 13 12:27:28 2023 -0700"
      },
      "message": "Fix testLiteralMeets failure (#15659)\n\n"
    },
    {
      "commit": "3bf85217386806b0f68bf8857b61379ae2f6ad1e",
      "tree": "00a30a331be9d16fe28b99e27c507f15508d06c0",
      "parents": [
        "dfea43ff96976435ee5f37d1294cca792b8f26cf"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Thu Jul 13 06:42:39 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 13 14:42:39 2023 +0100"
      },
      "message": "Consistently avoid type-checking unreachable code (#15386)\n\n- On module-level, now we\u0027ll skip remaining statements once unreachable.\r\nThis brings the behavior in line with function-level behavior.\r\n- For module and function code, if `--warn-unreachable` is enabled,\r\nwe\u0027ll emit an error, just once, on the first unreachable statement\r\nthat\u0027s not a no-op statement. Previously a no-op statement would not\r\nhave the \"Unreachable statement\" error, but the subsequent statements\r\ndid not have the error either, e.g.\r\n  ```diff\r\n   raise Exception\r\n   assert False  # no error since it\u0027s a \"no-op statement\"\r\n  -foo \u003d 42\r\n  +foo \u003d 42  # E: Unreachable statement\r\n   spam \u003d \"ham\"  # no error since we warn just once\r\n  ```"
    },
    {
      "commit": "dfea43ff96976435ee5f37d1294cca792b8f26cf",
      "tree": "ef77c754d16c62d92c74359b50e09b8ec07758fd",
      "parents": [
        "8a5d8f085185c41fce15ab108db236f1d94e5b62"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Thu Jul 13 15:37:27 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 13 14:37:27 2023 +0100"
      },
      "message": "Add error code \"explicit-override\" for strict @override mode (PEP 698) (#15512)\n\nAdd the strict mode for [PEP\r\n698](https://peps.python.org/pep-0698/#strict-enforcement-per-project).\r\n\r\nCloses: #14072"
    },
    {
      "commit": "8a5d8f085185c41fce15ab108db236f1d94e5b62",
      "tree": "395bbd40b1eff555a37e41b51faef48c600f78ce",
      "parents": [
        "b78f4b536325f77995550f69a260398b8e579734"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Thu Jul 13 00:43:08 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 13 00:43:08 2023 -0700"
      },
      "message": "type_narrowing.rst: fix syntax, consistency (#15652)\n\n"
    },
    {
      "commit": "b78f4b536325f77995550f69a260398b8e579734",
      "tree": "7c3457830944b6bd1cdfaa905b8543241eeaa542",
      "parents": [
        "fbe588ff73abd26d1a775e0bfc3db14e933159aa"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Wed Jul 12 22:59:53 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 22:59:53 2023 +0300"
      },
      "message": "Add runtime `__slots__` attribute to `attrs` (#15651)\n\nThis is similar to https://github.com/python/mypy/pull/15649 but for\r\n`attrs` :)\r\nRefs https://github.com/python/mypy/issues/15647"
    },
    {
      "commit": "fbe588ff73abd26d1a775e0bfc3db14e933159aa",
      "tree": "0b956eaa747d78122d28679dbfb1f1262522413d",
      "parents": [
        "4a1a38eee6b1558c0891584a6fdff84eab49c7a6"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Wed Jul 12 12:57:08 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 12:57:08 2023 -0700"
      },
      "message": "Ensure 3.12 tests pass (#15648)\n\n"
    },
    {
      "commit": "4a1a38eee6b1558c0891584a6fdff84eab49c7a6",
      "tree": "c1954333f07984cb433eb3678f0d83f6b28478e4",
      "parents": [
        "235a3bb456ef782ef9a6005616aeea4e3a2a432a"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Wed Jul 12 22:51:50 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 12:51:50 2023 -0700"
      },
      "message": "Add runtime `__slots__` attribute to dataclasses (#15649)\n\nCloses https://github.com/python/mypy/issues/15647"
    },
    {
      "commit": "235a3bb456ef782ef9a6005616aeea4e3a2a432a",
      "tree": "f705d5d95ebb4309270437a77f4db10a1584a5cb",
      "parents": [
        "edb41e0490ca01aea5f70a99aad9c8441773cc6e"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Wed Jul 12 16:50:12 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 16:50:12 2023 +0100"
      },
      "message": "Fix parse test case on Python 3.12 (#15577)\n\nThis fixes the test case testFStringWithFormatSpecifierExpression on\r\nPython 3.12.\r\n\r\nStrip redundant empty string literal from AST generated from f-string.\r\nIt\u0027s not generated on earlier Python versions and it seems fine to just\r\ndrop it."
    },
    {
      "commit": "edb41e0490ca01aea5f70a99aad9c8441773cc6e",
      "tree": "88a3057ae202002a3a87aede5333232f32a3e8e0",
      "parents": [
        "4d394c1cd116b0b8efbc8c73b6f49245cd46917f"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Wed Jul 12 18:27:09 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 18:27:09 2023 +0300"
      },
      "message": "Check tuples of abstract types (#15366)\n\nThe PR is quite simple (and I would like to keep it this way): \r\n- Before we were only checking `type[]` type\r\n- Now we also check `tuple[type[], ...]` type\r\n\r\nThere might be other types that we want to add in the future here:\r\n`TypedDictType`, etc?\r\nBut, let\u0027s do it one by one, because smaller PRs are easier to merge :)\r\n\r\nCloses #15264"
    },
    {
      "commit": "4d394c1cd116b0b8efbc8c73b6f49245cd46917f",
      "tree": "111791a0e77ccbba8b38480eb01a425e7a30c43e",
      "parents": [
        "87fa107661d8008f905caaf2eac8935cfab81efa"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Wed Jul 12 06:46:24 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 06:46:24 2023 -0700"
      },
      "message": "attrs: define defaults to slots\u003dTrue (#15642)\n\nFixes #15639.\r\n\r\nThe new-style API `attrs.define` [enables slots by\r\ndefault](https://www.attrs.org/en/stable/api.html#attrs.define)."
    },
    {
      "commit": "87fa107661d8008f905caaf2eac8935cfab81efa",
      "tree": "7b46f96fe1fd056c047970f322568c2529ca12be",
      "parents": [
        "38a710418dd839e4af52bd74c7afa8eb954a315b"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Wed Jul 12 06:45:52 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 06:45:52 2023 -0700"
      },
      "message": ".git-blame-ignore-revs: add #12711 (#15643)\n\n"
    },
    {
      "commit": "38a710418dd839e4af52bd74c7afa8eb954a315b",
      "tree": "9d3b63fff172ed1b2c3e5c7108ebf3cb7d5ef22e",
      "parents": [
        "569cfc9e6212e0bb841b1a299f0d8615b34cddee"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Wed Jul 12 06:44:52 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 06:44:52 2023 -0700"
      },
      "message": "tests: --update-data incompatible with xdist (#15641)\n\nFixes a\r\n[gotcha](https://github.com/python/mypy/pull/15283#issuecomment-1631820071)\r\nwith `--update-data`.\r\n\r\nWhen using `--update-data` with parallelized tests (xdist), the line\r\noffsets determined at test time may become wrong by update time, as\r\nmultiple workers perform their updates to the same file.\r\n\r\nThis makes it so we exit with a usage error when `--update-data` is used\r\nwith parallelism."
    },
    {
      "commit": "569cfc9e6212e0bb841b1a299f0d8615b34cddee",
      "tree": "9c4e3dad7ab6bee87c0032392f7ba0c8a4bf6325",
      "parents": [
        "0a020fa73cf5339a80d81c5b44e17116a5c5307e"
      ],
      "author": {
        "name": "Ilya Priven",
        "email": "ilya.konstantinov@gmail.com",
        "time": "Wed Jul 12 05:22:52 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 13:22:52 2023 +0100"
      },
      "message": "tests: enforce meaningful version checks (#15635)\n\nFollow up to #15430 — would\u0027ve made\r\nhttps://github.com/python/mypy/pull/15566#issuecomment-1616170947\r\nunnecessary."
    },
    {
      "commit": "0a020fa73cf5339a80d81c5b44e17116a5c5307e",
      "tree": "e0ee8222f6c407ded699ff58e059217bef705f13",
      "parents": [
        "67cc05926b037243b71e857a394318c3a09d1daf"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Wed Jul 12 11:22:18 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 12 11:22:18 2023 +0100"
      },
      "message": "Bump pytest to \u003e\u003d7.4.0 (#15611)\n\nThe 7.4.0 release of pytest broke mypy because we were using some\r\nundocumented, private API that was removed. Ideally we\u0027d stop using the\r\nprivate API, but nobody seems to remember why we started using the\r\nprivate API in the first place (see\r\nhttps://github.com/python/mypy/pull/15501#issuecomment-1607083799, and\r\nfollowing comments). For now it (unfortunately) seems safer to just\r\nmigrate to the new private API rather than try to figure out an\r\nalternative using public API.\r\n\r\nI also took @bluetech\u0027s advice in\r\nhttps://github.com/python/mypy/pull/15501#issuecomment-1606259499 to\r\nimprove the type annotations in the method in question."
    },
    {
      "commit": "67cc05926b037243b71e857a394318c3a09d1daf",
      "tree": "a396a01074e7509d39d371d99d0f2dd950f2a845",
      "parents": [
        "f72e4e548b3fd03b5a1b7e2ba175f35bc2e9148c"
      ],
      "author": {
        "name": "Ali Hamdan",
        "email": "ali.hamdan.dev@gmail.com",
        "time": "Sun Jul 09 17:54:29 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 09 08:54:29 2023 -0700"
      },
      "message": "stubgen: Support `ParamSpec` and `TypeVarTuple` (#15626)\n\nThese are treated the same way as `TypeVar` except imported from\r\n`typing_extensions` instead of `typing` by default."
    },
    {
      "commit": "f72e4e548b3fd03b5a1b7e2ba175f35bc2e9148c",
      "tree": "3eb9ddbc05fda322038c76e9e92e88b0524c386e",
      "parents": [
        "ebfea94c9f1dc081f8f3f0de9e78a5c83ff8af40"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Sun Jul 09 17:45:00 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 09 08:45:00 2023 -0700"
      },
      "message": "Support optional for custom dataclass descriptors (#15628)\n\nFixes: #15020"
    },
    {
      "commit": "ebfea94c9f1dc081f8f3f0de9e78a5c83ff8af40",
      "tree": "048653f2ac10aa5c549e98abaab18a5c30c935e4",
      "parents": [
        "15929457fabe5bd5e768d495ea11689d4d8be634"
      ],
      "author": {
        "name": "Ali Hamdan",
        "email": "ali.hamdan.dev@gmail.com",
        "time": "Sat Jul 08 23:25:43 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 08 14:25:43 2023 -0700"
      },
      "message": "stubdoc: Fix crash on non-str docstring (#15623)\n\n"
    },
    {
      "commit": "15929457fabe5bd5e768d495ea11689d4d8be634",
      "tree": "ef42fc4ff38f4e8e69350fe5ccfeaf8abd645cdf",
      "parents": [
        "6cd8c00983a294b4b142ee0f01e91912363d3450"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Sat Jul 08 21:35:07 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 08 12:35:07 2023 -0700"
      },
      "message": "Cleanup after enabling strict default for test files (#15627)\n\n"
    },
    {
      "commit": "6cd8c00983a294b4b142ee0f01e91912363d3450",
      "tree": "f099c0d7b3a206c5d59388a0568eb70b05bf9a12",
      "parents": [
        "d106c847904ac84d92dc828de5057d80e8774c44"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 07 20:40:01 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 07 11:40:01 2023 -0700"
      },
      "message": "Enable strict optional for more test files (3) (#15597)\n\n"
    },
    {
      "commit": "d106c847904ac84d92dc828de5057d80e8774c44",
      "tree": "cc02bcf28e8329b1441035c2026fd20fbb499bed",
      "parents": [
        "ef0b763fb25790892e208cd2691d272494ea7720"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 07 18:11:09 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 07 09:11:09 2023 -0700"
      },
      "message": "Enable strict optional for more test files (9) (#15607)\n\nFollowup to https://github.com/python/mypy/pull/15586\r\n\r\nThis will be the last one 🚀"
    },
    {
      "commit": "ef0b763fb25790892e208cd2691d272494ea7720",
      "tree": "53341f0525ba5351be312a6872f75d4366a84172",
      "parents": [
        "91e4ce496fd6032c8670d1d3ce350930ab4f3aa4"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 07 14:46:25 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 07 13:46:25 2023 +0100"
      },
      "message": "Enable strict optional for more test files (8) (#15606)\n\nFollowup to https://github.com/python/mypy/pull/15586"
    },
    {
      "commit": "91e4ce496fd6032c8670d1d3ce350930ab4f3aa4",
      "tree": "4f0e6eefd60fae97058620962df729341a9be8d8",
      "parents": [
        "d65e1e7523a30323a617ecb55cde8a9ed89e653a"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 07 05:05:14 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 20:05:14 2023 -0700"
      },
      "message": "Enable strict optional for more test files (7) (#15604)\n\n"
    },
    {
      "commit": "d65e1e7523a30323a617ecb55cde8a9ed89e653a",
      "tree": "54911cb35ca01214e9f56c5a1a7bb9ec56b6147d",
      "parents": [
        "cf863877aac1e1b54a929aca08125bfdcd4bf8f9"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Jul 07 00:04:20 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 15:04:20 2023 -0700"
      },
      "message": "Add upper bound for lxml (#15608)\n\n"
    },
    {
      "commit": "cf863877aac1e1b54a929aca08125bfdcd4bf8f9",
      "tree": "f0ac065dfefc727e9c0707f82c340c4f8bdcc1e6",
      "parents": [
        "79114d19df14b28effc8bbd7cb376521d83b0046"
      ],
      "author": {
        "name": "Stavros Ntentos",
        "email": "133706+stdedos@users.noreply.github.com",
        "time": "Thu Jul 06 22:12:34 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 12:12:34 2023 -0700"
      },
      "message": "\"mypy Gitter\" is dead; it is called \"python/typing\" (#15610)\n\n"
    },
    {
      "commit": "79114d19df14b28effc8bbd7cb376521d83b0046",
      "tree": "382902c56b3a6d7a7bdbfbe2a696f9fb92a90ad2",
      "parents": [
        "8c70e8043db2c3b537bdfaa42632451950f51b68"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Thu Jul 06 18:09:57 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 18:09:57 2023 +0100"
      },
      "message": "[mypyc] Fix multiple inheritance with a protocol on Python 3.12 (#15572)\n\nFix the testProtocol test case in mypyc/test-data/run-classes.test.\r\n\r\nThere was a comment indicating that the code that causes the test to\r\nfail on 3.12 is required Python versions older than 3.7, so let\u0027s remove\r\nit. We only support 3.8 and later these days.\r\n\r\nWork on https://github.com/mypyc/mypyc/issues/995."
    },
    {
      "commit": "8c70e8043db2c3b537bdfaa42632451950f51b68",
      "tree": "2d855d8bc9ca9fb065df858253f86e7f8bfe019f",
      "parents": [
        "e0b159e0bb6bd414d2999bfcecbb5432541ec3fd"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Thu Jul 06 18:09:27 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 18:09:27 2023 +0100"
      },
      "message": "[mypyc] Support the u8 native integer type (#15564)\n\nThis is mostly similar to `i16` that I added recently in #15464, but\r\nthere are some\r\ndifferences:\r\n* Some adjustments were needed to support unsigned integers\r\n* Add overflow checking of literals, since it\u0027s easy to over/underflow\r\nwhen using `u8` due to limited range\r\n* Rename primitive integer types from `int16` to `i16` (etc.) to match\r\nthe user-visible types (needed to get some error messages consistent,\r\nand it\u0027s generally nicer)\r\n* Overall make things a bit more consistent\r\n* Actually update `mypy_extensions` stubs\r\n\r\nThis is an unsigned type to make it easier to work with binary/bytes\r\ndata. The item values for `bytes` are unsigned 8-bit values, in\r\nparticular. This type will become much more useful once we support\r\npacked arrays.\r\n\r\n---------\r\n\r\nCo-authored-by: Shantanu \u003c12621235+hauntsaninja@users.noreply.github.com\u003e"
    },
    {
      "commit": "e0b159e0bb6bd414d2999bfcecbb5432541ec3fd",
      "tree": "8a2981687377c9e3189e035570c06259e3edb5fe",
      "parents": [
        "fa8853bda7035ef517984b4afbaa6d953318fa9d"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Thu Jul 06 10:07:13 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 06 01:07:13 2023 -0700"
      },
      "message": "Enable strict optional for more test files (6) (#15603)\n\n"
    },
    {
      "commit": "fa8853bda7035ef517984b4afbaa6d953318fa9d",
      "tree": "0a96ad3270a8d26e92f04006aa99a886b8704a69",
      "parents": [
        "fae7d90c7f18d44f7ebe7c25d63325c9811e9fe0"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Thu Jul 06 03:03:53 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 05 18:03:53 2023 -0700"
      },
      "message": "Enable strict optional for more test files (5) (#15602)\n\nFollowup to https://github.com/python/mypy/pull/15586\r\n\r\nCo-authored-by: Shantanu \u003c12621235+hauntsaninja@users.noreply.github.com\u003e"
    },
    {
      "commit": "fae7d90c7f18d44f7ebe7c25d63325c9811e9fe0",
      "tree": "8e7259c546306030f4ecb9b22a9abf395c6b8720",
      "parents": [
        "d4865b25dc6653f5d0a94a17d1fc8c445192bb32"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Thu Jul 06 01:38:29 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 05 16:38:29 2023 -0700"
      },
      "message": "Enable strict optional for more test files (4) (#15601)\n\n"
    },
    {
      "commit": "d4865b25dc6653f5d0a94a17d1fc8c445192bb32",
      "tree": "74d4e3cc99295bea4764591fd6b5d389248149d1",
      "parents": [
        "8f66718d996c11fc1f86c21331b31dcc57763cf0"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Wed Jul 05 20:57:34 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 05 11:57:34 2023 -0700"
      },
      "message": "Enable strict optional for more test files (2) (#15596)\n\n"
    },
    {
      "commit": "8f66718d996c11fc1f86c21331b31dcc57763cf0",
      "tree": "78f020bb7caf6df65e1346fd3e700fd9f17120ad",
      "parents": [
        "c13f1d416e907f58bc77d086b84819f500f1bde9"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Wed Jul 05 20:55:45 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 05 11:55:45 2023 -0700"
      },
      "message": "Enable strict optional for more test files (1) (#15595)\n\n"
    },
    {
      "commit": "c13f1d416e907f58bc77d086b84819f500f1bde9",
      "tree": "efcb63ffe870b844d89c63872ef4c1ee81a7a9c0",
      "parents": [
        "7d1a89998e90acd36a5673399f5e75bc029526f9"
      ],
      "author": {
        "name": "Erik Kemperman",
        "email": "erikkemperman@gmail.com",
        "time": "Wed Jul 05 09:34:11 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 05 00:34:11 2023 -0700"
      },
      "message": "Better consistency with explicit staticmethods (#15353)\n\n"
    },
    {
      "commit": "7d1a89998e90acd36a5673399f5e75bc029526f9",
      "tree": "78fc9b3c93ee70768024b15a35ad1299ec8213d1",
      "parents": [
        "1e14d13a4453a0a68909650faba86f683a1b90a5"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Tue Jul 04 23:48:17 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 14:48:17 2023 -0700"
      },
      "message": "Add foundation to enable `--strict-optional` in all test files (#15586)\n\n"
    },
    {
      "commit": "1e14d13a4453a0a68909650faba86f683a1b90a5",
      "tree": "e5ca4d8bb3ca94a1e13f94362af4582d45e16523",
      "parents": [
        "a9f8df7cda032f637946bb2ea7a60f790f81350f"
      ],
      "author": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 20:15:43 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 20:15:43 2023 +0100"
      },
      "message": "Update commits for sync-typeshed cherry picks (#15592)\n\nGot commits from https://github.com/python/mypy/commits/master after\r\nmerging https://github.com/python/mypy/pull/15590"
    },
    {
      "commit": "a9f8df7cda032f637946bb2ea7a60f790f81350f",
      "tree": "b1d59d7d0d450c8653078dd31a47d60b3873a11b",
      "parents": [
        "186fbb18e1cb30c8e51b79fe2d193c15a49d4588"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Tue Jul 04 20:04:46 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 12:04:46 2023 -0700"
      },
      "message": "Remove `six` as a test dependency (#15589)\n\n"
    },
    {
      "commit": "186fbb18e1cb30c8e51b79fe2d193c15a49d4588",
      "tree": "01a96b9576efbf5dc6f61a154af56d3cecdc3590",
      "parents": [
        "71c4269df306e53cb0eec7474dcde26e5a72d45e"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Sat Mar 04 13:14:11 2023 +0000"
      },
      "committer": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:41:27 2023 +0100"
      },
      "message": "Revert use of `ParamSpec` for `functools.wraps`\n"
    },
    {
      "commit": "71c4269df306e53cb0eec7474dcde26e5a72d45e",
      "tree": "ed444ed2b6c2d45f64962027b477a258ce4ee536",
      "parents": [
        "56f43433673fe97de14b903cbeb9bc940b67f09d"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Mon May 01 20:34:55 2023 +0100"
      },
      "committer": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:41:27 2023 +0100"
      },
      "message": "Revert typeshed ctypes change\nSince the plugin provides superior type checking: https://github.com/python/mypy/pull/13987#issuecomment-1310863427\nA manual cherry-pick of e437cdf.\n"
    },
    {
      "commit": "56f43433673fe97de14b903cbeb9bc940b67f09d",
      "tree": "804949f0982e80c087a17a9163e62ad945a4e0bd",
      "parents": [
        "9f4c0d8af2c0542f749563535de2c28da736a9a7"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sat Oct 29 12:47:21 2022 -0700"
      },
      "committer": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:41:27 2023 +0100"
      },
      "message": "Revert sum literal integer change (#13961)\n\nThis is allegedly causing large performance problems, see 13821\n\ntypeshed/8231 had zero hits on mypy_primer, so it\u0027s not the worst thing\nto undo. Patching this in typeshed also feels weird, since there\u0027s a\nmore general soundness issue. If a typevar has a bound or constraint, we\nmight not want to solve it to a Literal.\n\nIf we can confirm the performance regression or fix the unsoundness\nwithin mypy, I might pursue upstreaming this in typeshed.\n\n(Reminder: add this to the sync_typeshed script once merged)\n"
    },
    {
      "commit": "9f4c0d8af2c0542f749563535de2c28da736a9a7",
      "tree": "b90c3f7651a1a1920abbeb3baac9d4cf4ba9bc44",
      "parents": [
        "c44fe1a6bf09413d0dd74a354e479e8b041c4a04"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Mon Sep 26 12:55:07 2022 -0700"
      },
      "committer": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:41:27 2023 +0100"
      },
      "message": "Remove use of LiteralString in builtins (#13743)\n"
    },
    {
      "commit": "c44fe1a6bf09413d0dd74a354e479e8b041c4a04",
      "tree": "d53625b60ae921d629a1d963d0351e9a4457037e",
      "parents": [
        "59ba4293679dbed20a6d67fc3eff88d8f98eda43"
      ],
      "author": {
        "name": "AlexWaygood",
        "email": "alex.waygood@gmail.com",
        "time": "Tue Jul 04 18:18:52 2023 +0100"
      },
      "committer": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:41:27 2023 +0100"
      },
      "message": "Sync typeshed\n\nSource commit:\nhttps://github.com/python/typeshed/commit/fc7d4722eaa54803926cee5730e1f784979c0531\n"
    },
    {
      "commit": "59ba4293679dbed20a6d67fc3eff88d8f98eda43",
      "tree": "7d5e23bbce37c631139bcf11a17ae50287d34132",
      "parents": [
        "85ba5745afcc646c1728dbb690bfb196537abe04"
      ],
      "author": {
        "name": "Valentin Stanciu",
        "email": "250871+svalentin@users.noreply.github.com",
        "time": "Tue Jul 04 19:40:46 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 19:40:46 2023 +0100"
      },
      "message": "When sync-typeshed fails to apply CP allow manual user merges (#15591)\n\nIf misc/sync-typeshed.py fails to apply a cherry pick, it just fails.\r\nLet\u0027s try to give the user a chance to manually merge the CP and\r\ncontinue with the script.\r\nThis should block for user input only in cases where stdin is a tty. So\r\nautomation should continue failing. (but the only way to test is by\r\nrunning it)\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e\r\nCo-authored-by: Alex Waygood \u003cAlex.Waygood@Gmail.com\u003e"
    },
    {
      "commit": "85ba5745afcc646c1728dbb690bfb196537abe04",
      "tree": "d6a9370604240dcf275429e78efbe38e876e9586",
      "parents": [
        "913477ee68094b137d3a70f4724a460db1400a7e"
      ],
      "author": {
        "name": "Erik Kemperman",
        "email": "erikkemperman@gmail.com",
        "time": "Tue Jul 04 20:17:31 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 11:17:31 2023 -0700"
      },
      "message": "Handle type same as typing.Type in classmethod 1st arg (#15297)\n\n"
    },
    {
      "commit": "913477ee68094b137d3a70f4724a460db1400a7e",
      "tree": "cbfb63a9c125ecc629fdb150069a2ac780b95a36",
      "parents": [
        "cb0a44630a0608994116e3de3be07b6d3b14381a"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Tue Jul 04 17:00:04 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 16:00:04 2023 +0100"
      },
      "message": "Target py38 for ruff (#15585)\n\n"
    },
    {
      "commit": "cb0a44630a0608994116e3de3be07b6d3b14381a",
      "tree": "68328fd26951fa455ff1cef4f981446221f55301",
      "parents": [
        "781dc8f82adacce730293479517fd0fb5944c255"
      ],
      "author": {
        "name": "Federico Padua",
        "email": "fermilab_fede@hotmail.it",
        "time": "Tue Jul 04 16:28:49 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 04 07:28:49 2023 -0700"
      },
      "message": "Fix variable name in comment in `getting_started.rst` (#15587)\n\nThis PR fixes a word within a code block of the `Getting Started/Types\r\nfrom libraries` documentation.\r\nIn particular, the variable name `file_path` is used instead of the\r\ncorrect `template_path`.\r\nThis commit fixes that and it replaces `file_path` with `template_path`.\r\n\r\nThis PR doesn\u0027t change the behaviour of `mypy` code since it involves\r\njust a word change in the documentation, so no tests are provided and it\r\nis expected that current working code works as usual, given the change\r\nmade by this PR."
    },
    {
      "commit": "781dc8f82adacce730293479517fd0fb5944c255",
      "tree": "60ced3bfea8e8f5bac37ab0192f5f121499f03ac",
      "parents": [
        "e86f097ee9dac7488ccd0d444182e33733710c42"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Mon Jul 03 22:59:27 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 14:59:27 2023 -0700"
      },
      "message": "[mypyc] Fix self-compilation on Python 3.12 (#15582)\n\n"
    },
    {
      "commit": "e86f097ee9dac7488ccd0d444182e33733710c42",
      "tree": "2e6c9caaa95ef583e610388308ebe8ff9c2e8414",
      "parents": [
        "dcdcc60b3082b99b0088e0f5c443f90a60091d77"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Mon Jul 03 23:26:27 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 23:26:27 2023 +0300"
      },
      "message": "Target py3.8+ for black (#15583)\n\n"
    },
    {
      "commit": "dcdcc60b3082b99b0088e0f5c443f90a60091d77",
      "tree": "6b95ad28175e1aaa88f3627a8488eb5dcbb34bd6",
      "parents": [
        "49d95cf6b40fb3ebee2183e95206c91c81e7a107"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Mon Jul 03 22:37:47 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 12:37:47 2023 -0700"
      },
      "message": "Run `pyupgrade --py38-plus` on the source code (#15575)\n\n"
    },
    {
      "commit": "49d95cf6b40fb3ebee2183e95206c91c81e7a107",
      "tree": "635c9268696dd242a97836eca3085226bf1d4037",
      "parents": [
        "5e4d097a1801bcc6f4c160f99cd1ee95f24768aa"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Mon Jul 03 20:37:03 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 12:37:03 2023 -0700"
      },
      "message": "Don\u0027t add fictional parameters to `NamedTuple._make()` (#15578)\n\n"
    },
    {
      "commit": "5e4d097a1801bcc6f4c160f99cd1ee95f24768aa",
      "tree": "83a9a8cb9138ace0325b253beb670fe88d933025",
      "parents": [
        "2e9c9b4ec9eece1209c6df1e559ed371cdfbd1b3"
      ],
      "author": {
        "name": "Ivan Levkivskyi",
        "email": "levkivskyi@gmail.com",
        "time": "Mon Jul 03 20:20:48 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 20:20:48 2023 +0100"
      },
      "message": "Fix strict optional handling in dataclasses (#15571)\n\nThere were few cases when someone forgot to call `strict_optional_set()`\r\nin dataclasses plugin, let\u0027s move the calls directly to two places where\r\nthey are needed for typeops. This may cause a tiny perf regression, but\r\nis much more robust in terms of preventing bugs."
    },
    {
      "commit": "2e9c9b4ec9eece1209c6df1e559ed371cdfbd1b3",
      "tree": "393a29f312d1930b34ad7203d8cd7b0a9b6ec8f5",
      "parents": [
        "4df2215981593d14faf25e3dec658fffeed9c41f"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Mon Jul 03 22:07:10 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 12:07:10 2023 -0700"
      },
      "message": "Solve import cycles in expandtype and testtypes.py (#15580)\n\n"
    },
    {
      "commit": "4df2215981593d14faf25e3dec658fffeed9c41f",
      "tree": "c7f8f3884aa1857521b82763ac1a23bef086371b",
      "parents": [
        "a759c490d21bb9d73e788da4a8dc5c10b077a482"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Mon Jul 03 20:06:23 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 20:06:23 2023 +0100"
      },
      "message": "[mypyc] Fix 3.12 issue with pickling of instances with __dict__ (#15574)\n\nThis fixes the testPickling test case in\r\nmypyc/test-data/run-classes.test on Python 3.12.\r\n\r\nHandle another case that was missed in #15471. On 3.12 we rely on\r\nPy_TPFLAGS_MANAGED_DICT and shouldn\u0027t define an explicit `__dict__`\r\nmember.\r\n\r\nWork on mypyc/mypyc#995."
    },
    {
      "commit": "a759c490d21bb9d73e788da4a8dc5c10b077a482",
      "tree": "ee58e9e7eba90dd3835feb1824995cb657a4ca36",
      "parents": [
        "259c822938c4d3461ba80e8162faf082d487162a"
      ],
      "author": {
        "name": "Nikita Sobolev",
        "email": "mail@sobolevn.me",
        "time": "Mon Jul 03 20:05:49 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 03 20:05:49 2023 +0300"
      },
      "message": "Fix `ast` warnings for Python3.12 (#15558)\n\nWarnings before:\r\nhttps://github.com/python/mypy/issues/15330#issuecomment-1615010604\r\nWarnings after:\r\n\r\n```\r\n(.venv312) ~/Desktop/mypy  master ✗                                                       \r\n» python -m mypy ex.py\r\nSuccess: no issues found in 1 source file\r\n```\r\n\r\nZero :)\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "259c822938c4d3461ba80e8162faf082d487162a",
      "tree": "f034ab02e6bdf5431debdba2cde6a6104ef3a7f6",
      "parents": [
        "96eadfd29ab30517e8a2d44361bd6292d29284f4"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sun Jul 02 20:30:38 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 02 20:30:38 2023 -0700"
      },
      "message": "Unskip some tests that appear to pass (#15567)\n\nThese mostly date back to https://github.com/python/mypy/pull/4369 There\r\nare also some skipped tests in here that fail that I don\u0027t touch\r\n"
    },
    {
      "commit": "96eadfd29ab30517e8a2d44361bd6292d29284f4",
      "tree": "faf8a917e105d642c6c0bf980bc35ae66f0a5993",
      "parents": [
        "2edaf35ec1f91c139dfe1930b1b0d1e1cac59599"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sun Jul 02 19:46:00 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 02 19:46:00 2023 -0700"
      },
      "message": "Fix wheel build trigger (#15568)\n\n"
    },
    {
      "commit": "2edaf35ec1f91c139dfe1930b1b0d1e1cac59599",
      "tree": "7dfffc8c16482fa64ec81e2ea66b38d13a24270d",
      "parents": [
        "19c5d5f7848a94c810c8d840a42e29ffe3f8906f"
      ],
      "author": {
        "name": "Shantanu",
        "email": "12621235+hauntsaninja@users.noreply.github.com",
        "time": "Sun Jul 02 18:59:35 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 02 18:59:35 2023 -0700"
      },
      "message": "Drop support for running with Python 3.7 (#15566)\n\n"
    },
    {
      "commit": "19c5d5f7848a94c810c8d840a42e29ffe3f8906f",
      "tree": "fdaffe7ef71d2328e3f4b0ec167534975a0cc01f",
      "parents": [
        "3730899fce2917e312511dc68d813e5dc42d5685"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Sat Jul 01 17:36:42 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 01 17:36:42 2023 +0100"
      },
      "message": "[mypyc] Improve failure reporting in default run test driver (#15563)\n\nFix stdout flushing to avoid empty lines getting out of alignment with\r\nthe rest of the output.\r\n\r\nDisplay the name of a failed test function, since it\u0027s sometimes not\r\nvisible in the traceback (at least if something incorrectly propagates exceptions)."
    },
    {
      "commit": "3730899fce2917e312511dc68d813e5dc42d5685",
      "tree": "314dca6ae929ec9b2e60c0166d5dba01f08dc2ae",
      "parents": [
        "92602c523975495af544bd493d0bd59d15334440"
      ],
      "author": {
        "name": "Jukka Lehtosalo",
        "email": "jukka.lehtosalo@iki.fi",
        "time": "Sat Jul 01 17:35:52 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 01 17:35:52 2023 +0100"
      },
      "message": "Define mypy_extensions.i16 in stubs (#15562)\n\nI forgot to add this when I added mypyc support for the i16 native\r\ninteger type.\r\n\r\nThe mypy_extensions stubs are maintained here instead of typeshed.\r\n\r\nThis is a copy of the stubs for `i32`, with references to `i32` replaced\r\nwith `i16`."
    },
    {
      "commit": "92602c523975495af544bd493d0bd59d15334440",
      "tree": "69bacb256d1aa2878f87275ed5e8eabb256b9736",
      "parents": [
        "21beadc0aef5149111ae88504ec1514b943d4f78"
      ],
      "author": {
        "name": "Richard Si",
        "email": "sichard26@gmail.com",
        "time": "Fri Jun 30 11:47:00 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 30 16:47:00 2023 +0100"
      },
      "message": "[mypyc] Document more unsupported features \u0026 update supported features (#15524)\n\nTowards mypyc/mypyc#978.\r\n\r\n---------\r\n\r\nCo-authored-by: Jukka Lehtosalo \u003cjukka.lehtosalo@iki.fi\u003e\r\nCo-authored-by: Alex Waygood \u003cAlex.Waygood@Gmail.com\u003e"
    },
    {
      "commit": "21beadc0aef5149111ae88504ec1514b943d4f78",
      "tree": "42c6b0566e4b61510bb9f88bab4a8a93c499bff5",
      "parents": [
        "b995e1620789a3ab2fc5dbcf0698a9077b0f5731"
      ],
      "author": {
        "name": "Alex Waygood",
        "email": "Alex.Waygood@Gmail.com",
        "time": "Fri Jun 30 16:41:30 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 30 16:41:30 2023 +0100"
      },
      "message": "Enforce typing_extensions \u003e\u003d4.7.0 on py37 (#15556)\n\nThe changes made in #15543 mean that mypy\u0027s tests will no longer pass if\r\nyou\u0027ve got `typing_extensions\u003c4.7` installed and you\u0027re running on\r\nPython 3.7. "
    },
    {
      "commit": "b995e1620789a3ab2fc5dbcf0698a9077b0f5731",
      "tree": "43d7f936cfa69e272e6cd72653eca66892f78e1f",
      "parents": [
        "95dde9d8dc9007b28881eee10231bdd8ae0c9d43"
      ],
      "author": {
        "name": "Ivan Levkivskyi",
        "email": "levkivskyi@gmail.com",
        "time": "Thu Jun 29 23:34:15 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 29 23:34:15 2023 +0100"
      },
      "message": "Rebind self-types in subclass methods without Self annotation (#15541)\n\nFixes #15529\r\n\r\nThe fix is straightforward, hopefully there will be no fallout. (Note\r\nthat #14075 would also fix this, but I am still not sure we should do\r\nthat)\r\n\r\n---------\r\n\r\nCo-authored-by: Shantanu \u003c12621235+hauntsaninja@users.noreply.github.com\u003e"
    }
  ],
  "next": "95dde9d8dc9007b28881eee10231bdd8ae0c9d43"
}
