python-attrs/attrs

Python Classes Without Boilerplate

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 30 minutes ago
Added to GitGenius on September 11th, 2026
Created on January 27th, 2015
Open Issues & Pull Requests: 155 (+0)
GitHub issues: Enabled
Number of forks: 477
Total Stargazers: 5,836 (+0)
Total Subscribers: 56 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 11.4 hours
Mean response time: 63.0 days
90th percentile: 108.5 days
Tracked items: 107

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 95% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 8% of issues opened in the past year have been closed. Three people close 77% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 37
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 987 days
Stale 30+ days: 33
Stale 90+ days: 29

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Feature (21)
  • Typing (7)
  • Documentation (5)
  • Bug (4)
  • Performance (2)
  • Pyright (2)
  • Duplicate (1)
  • Fly paper (1)

Most active issues this week

Detailed Description

attrs is a Python package that eliminates boilerplate from class definitions by automatically generating object protocol methods.

The problem attrs solves is the tedium of manually implementing dunder methods like __init__, __repr__, __eq__, and __hash__ for every class. Rather than writing these methods by hand, attrs uses decorators and class annotations to generate them automatically. This approach keeps code concise while ensuring correctness, since the generated implementations follow consistent patterns and handle edge cases that manual implementations might miss.

Developers should choose attrs if they write many classes with attributes and want to reduce repetitive code without sacrificing performance. The tool suits any project where classes are central to the design, from small utilities to large systems. attrs works well alongside type hints and integrates naturally with Python's standard protocols, making it compatible with existing codebases and tools that expect standard class behavior.

The project maintains a substantial base of real-world adopters, as evidenced by the fact that almost all open issues are raised by outside users rather than the core team. Maintainers typically respond to new issues and pull requests within a day. Work in the issue tracker is dominated by feature requests, typing improvements, and documentation enhancements.