<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb" -->

---
title: The Mypy Blog: Mypy 1.18.1 Released | daily.dev
description: Mypy 1.18.1 has been released with major performance improvements, including roughly a 40% speedup over 1.17 when type checking mypy itself (up to 10x in...
canonical: https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Mypy Blog: Mypy 1.18.1 Released | daily.dev
og:description: Mypy 1.18.1 has been released with major performance improvements, including roughly a 40% speedup over 1.17 when type checking mypy itself (up to 10x in...
og:url: https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb
og:image: https://api.daily.dev/og/posts/zmlfY6Gvb.png
og:image:alt: The Mypy Blog: Mypy 1.18.1 Released
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Mypy Blog: Mypy 1.18.1 Released

**[mypy - Optional Static Typing for Python](https://daily.dev/sources/mypy-lang)** · 13 min read · 0 upvotes · 0 comments

## Summary

Mypy 1.18.1 has been released with major performance improvements, including roughly a 40% speedup over 1.17 when type checking mypy itself (up to 10x in extreme cases). Highlights include an experimental fixed-format cache for faster incremental builds, an update on the experimental --allow-redefinition-new flag (planned to become default in mypy 2.0), inferred types for bare ClassVar, support for disjoint base classes per PEP 800, experimental free-threading support for mypyc on Python 3.14 release candidates, faster generators and async functions in mypyc, numerous crash fixes, stubtest improvements, and documentation updates. The deprecated --new-type-inference flag has been removed.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://mypy-lang.blogspot.com/2025/09/mypy-1181-released.html>

## Questions this post answers

### What performance improvements does mypy 1.18.1 include?

Mypy 1.18.1 delivers about a 40% speedup compared to version 1.17 when type checking mypy itself, with some extreme cases improving 10x or higher. The gains come from dozens of optimizations including type caching, faster subtype checking, optimized generic inference, and a new experimental fixed-format cache that makes incremental builds up to twice as fast.

_Track performance-focused releases like this one on daily.dev to keep type-checking fast in large Python codebases._

### How do I enable the new fixed-format cache in mypy 1.18.1?

Use the --fixed-format-cache flag or set fixed_format_cache = True in a mypy configuration file. This experimental cache format makes incremental builds up to twice as fast but currently only works with a compiled version of mypy, and unlike the JSON-based cache, it is not easy to parse or inspect manually.

_Developers evaluating mypy's incremental build options can follow updates like this on daily.dev._

### What does the @disjoint_base decorator do in mypy and PEP 800?

Mypy 1.18.1 adds support for PEP 800 disjoint bases, recognizing the @disjoint_base decorator and rejecting class definitions that combine mutually incompatible base classes, such as inheriting from both str and Exception. This lets mypy take advantage of the guarantee that such classes cannot exist when narrowing and checking reachability.

_Python developers adopting new typing PEPs can follow changes like PEP 800 support on daily.dev._

## Similar posts on daily.dev

- [The Mypy Blog: Mypy 2.4 Released](https://daily.dev/posts/the-mypy-blog-mypy-2-4-released-frfrx4bzr) · mypy - Optional Static Typing for Python · 1 upvotes · 0 comments
- [Pyrefly 1.0: A fast, forward-looking Python linter](https://daily.dev/posts/pyrefly-1-0-a-fast-forward-looking-python-linter-k4vukcqpr) · InfoWorld · 0 upvotes · 0 comments
- [Pyrefly Now Type Checks PyTorch – PyTorch](https://daily.dev/posts/pyrefly-now-type-checks-pytorch-pytorch-adohlgdfc) · PyTorch · 0 upvotes · 0 comments
- [ty: An extremely fast Python type checker and language server](https://daily.dev/posts/ty-an-extremely-fast-python-type-checker-and-language-server-ddtwcgcrp) · Hacker News · 11 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#python](https://daily.dev/tags/python), [#performance](https://daily.dev/tags/performance)

[View this post on daily.dev](https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Mypy Blog: Mypy 1.18.1 Released","url":"https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb"},"datePublished":"2026-08-23T12:17:27.847Z","dateModified":"2026-08-23T12:22:36.597Z","description":"Mypy 1.18.1 has been released with major performance improvements, including roughly a 40% speedup over 1.17 when type checking mypy itself (up to 10x in...","image":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","thumbnailUrl":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","isAccessibleForFree":true,"articleSection":"mypy - Optional Static Typing for Python","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"mypy - Optional Static Typing for Python","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/mypy-lang"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,python,performance","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"mypy - Optional Static Typing for Python","item":"https://daily.dev/sources/mypy-lang"},{"@type":"ListItem","position":3,"name":"The Mypy Blog: Mypy 1.18.1 Released"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-mypy-blog-mypy-1-18-1-released-zmlfy6gvb#faq","mainEntity":[{"@type":"Question","name":"What performance improvements does mypy 1.18.1 include?","acceptedAnswer":{"@type":"Answer","text":"Mypy 1.18.1 delivers about a 40% speedup compared to version 1.17 when type checking mypy itself, with some extreme cases improving 10x or higher. The gains come from dozens of optimizations including type caching, faster subtype checking, optimized generic inference, and a new experimental fixed-format cache that makes incremental builds up to twice as fast. Track performance-focused releases like this one on daily.dev to keep type-checking fast in large Python codebases."}},{"@type":"Question","name":"How do I enable the new fixed-format cache in mypy 1.18.1?","acceptedAnswer":{"@type":"Answer","text":"Use the --fixed-format-cache flag or set fixed_format_cache = True in a mypy configuration file. This experimental cache format makes incremental builds up to twice as fast but currently only works with a compiled version of mypy, and unlike the JSON-based cache, it is not easy to parse or inspect manually. Developers evaluating mypy's incremental build options can follow updates like this on daily.dev."}},{"@type":"Question","name":"What does the @disjoint_base decorator do in mypy and PEP 800?","acceptedAnswer":{"@type":"Answer","text":"Mypy 1.18.1 adds support for PEP 800 disjoint bases, recognizing the @disjoint_base decorator and rejecting class definitions that combine mutually incompatible base classes, such as inheriting from both str and Exception. This lets mypy take advantage of the guarantee that such classes cannot exist when narrowing and checking reachability. Python developers adopting new typing PEPs can follow changes like PEP 800 support on daily.dev."}}]}
```

