<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily" -->

---
title: Pyrefly v1.2 is here! | daily.dev
description: Pyrefly v1.2 adds native type checking support for attrs classes without requiring plugins, and introduces a standard Bazel integration via a new pyrefly...
canonical: https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Pyrefly v1.2 is here! | daily.dev
og:description: Pyrefly v1.2 adds native type checking support for attrs classes without requiring plugins, and introduces a standard Bazel integration via a new pyrefly...
og:url: https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily
og:image: https://api.daily.dev/og/posts/P1VLYsIly.png
og:image:alt: Pyrefly v1.2 is here!
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.

# Pyrefly v1.2 is here!

**[Pyrefly: A Fast Python Type Checker and Language Server \| Pyrefly](https://daily.dev/sources/pyrefly)** · 6 min read · 0 upvotes · 0 comments

## Summary

Pyrefly v1.2 adds native type checking support for attrs classes without requiring plugins, and introduces a standard Bazel integration via a new pyrefly bazel-check command and the rules_pyrefly package. The release also stabilizes the pyrefly coverage command for tracking type annotation coverage in CI, expands tensor shape checking (still early alpha), and ships numerous type-checking improvements for functools.partial, singledispatch, pattern matching, Pydantic, Django, TypedDict, and Enum. Language server improvements include baseline diagnostics, better hover info, alias-aware auto-imports, and more reliable renames. The release includes 901 commits from 59 contributors, is about 8% faster than v1.1 with 2-4% lower memory use, and closed 137 bug issues.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pyrefly.org/blog/v1.2>

## Questions this post answers

### How do I type-check attrs classes with Pyrefly?

As of Pyrefly 1.2, attrs classes are type-checked automatically with no plugin or configuration required. Pyrefly recognizes both the modern API (@define, @frozen, @mutable, attrs.field) and the classic API (@attr.s, @attr.ib, @attr.dataclass), synthesizes __init__ signatures including converter input types, and catches misconfigurations at class creation.

_Teams adopting stricter typing for attrs-based codebases can track tooling updates like this on daily.dev._

### How do I run Pyrefly type checking with Bazel?

Pyrefly 1.2 introduces a standard Bazel integration through the pyrefly bazel-check command and the rules_pyrefly package, available on the Bazel Central Registry as version 0.1.0. It uses a Bazel aspect to apply Pyrefly across py_library, py_binary, and py_test targets, reading the Python version from the rules_python toolchain, so projects no longer need custom build logic or wrapper rules. Run it with bazel build --config=pyrefly //path/to/package:target; the integration is still early stage with some import layouts unsupported.

_Python teams standardizing Bazel builds can follow integration changes like this via daily.dev._

### How much faster is Pyrefly 1.2 compared to 1.1?

Pyrefly 1.2 is about 8% faster than version 1.1, based on benchmarks across eight projects from Astral's ty_benchmark suite. Memory use also dropped 2% to 4% on tested repositories, alongside 137 closed bug issues covering false positives, crashes, stack overflows, and narrowing improvements.

_Developers comparing Python type checker performance can keep tabs on benchmarks like these through daily.dev._

## Similar posts on daily.dev

- [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
- [Pyrefly v1.3: More configurability and composable tensor shapes](https://daily.dev/posts/pyrefly-v1-3-more-configurability-and-composable-tensor-shapes-dolihjblt) · Pyrefly: A Fast Python Type Checker and Language Server \| Pyrefly · 0 upvotes · 0 comments
- [Adopting Pyrefly as the Python type checker at Google](https://daily.dev/posts/adopting-pyrefly-as-the-python-type-checker-at-google-ixrvzgxi3) · Google Open Source Blog · 0 upvotes · 0 comments
- [Pyrefly LSP Integration in PyCharm 2026.1.2](https://daily.dev/posts/pyrefly-lsp-integration-in-pycharm-2026-1-2-5vifkrupr) · JetBrains · 4 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#bazel](https://daily.dev/tags/bazel)

[View this post on daily.dev](https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily)

```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":"Pyrefly v1.2 is here!","url":"https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily"},"datePublished":"2026-08-23T12:17:16.306Z","dateModified":"2026-08-23T12:58:37.140Z","description":"Pyrefly v1.2 adds native type checking support for attrs classes without requiring plugins, and introduces a standard Bazel integration via a new pyrefly...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ce7cceb523e1bdb0e6d2d6310d2d101d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ce7cceb523e1bdb0e6d2d6310d2d101d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","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":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","logo":"https://media.daily.dev/image/upload/s--Qzw5NpnF--/c_limit,w_256/f_auto,q_auto/v1787487420/logos/pyrefly?_a=BAMAMicg0","url":"https://daily.dev/sources/pyrefly"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,bazel","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","item":"https://daily.dev/sources/pyrefly"},{"@type":"ListItem","position":3,"name":"Pyrefly v1.2 is here!"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pyrefly-v1-2-is-here--p1vlysily#faq","mainEntity":[{"@type":"Question","name":"How do I type-check attrs classes with Pyrefly?","acceptedAnswer":{"@type":"Answer","text":"As of Pyrefly 1.2, attrs classes are type-checked automatically with no plugin or configuration required. Pyrefly recognizes both the modern API (@define, @frozen, @mutable, attrs.field) and the classic API (@attr.s, @attr.ib, @attr.dataclass), synthesizes __init__ signatures including converter input types, and catches misconfigurations at class creation. Teams adopting stricter typing for attrs-based codebases can track tooling updates like this on daily.dev."}},{"@type":"Question","name":"How do I run Pyrefly type checking with Bazel?","acceptedAnswer":{"@type":"Answer","text":"Pyrefly 1.2 introduces a standard Bazel integration through the pyrefly bazel-check command and the rules_pyrefly package, available on the Bazel Central Registry as version 0.1.0. It uses a Bazel aspect to apply Pyrefly across py_library, py_binary, and py_test targets, reading the Python version from the rules_python toolchain, so projects no longer need custom build logic or wrapper rules. Run it with bazel build --config=pyrefly //path/to/package:target; the integration is still early stage with some import layouts unsupported. Python teams standardizing Bazel builds can follow integration changes like this via daily.dev."}},{"@type":"Question","name":"How much faster is Pyrefly 1.2 compared to 1.1?","acceptedAnswer":{"@type":"Answer","text":"Pyrefly 1.2 is about 8% faster than version 1.1, based on benchmarks across eight projects from Astral's ty_benchmark suite. Memory use also dropped 2% to 4% on tested repositories, alongside 137 closed bug issues covering false positives, crashes, stack overflows, and narrowing improvements. Developers comparing Python type checker performance can keep tabs on benchmarks like these through daily.dev."}}]}
```

