# python-attrs/attrs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/python-attrs-attrs).**

5,799 stars · 442 forks · Python · MIT

## Links

- GitHub: https://github.com/python-attrs/attrs
- Homepage: https://www.attrs.org/
- awesome-repositories: https://awesome-repositories.com/repository/python-attrs-attrs.md

## Description

attrs is a Python library that automatically generates initialization, representation, equality, hashing, and ordering methods from declarative class attribute definitions. At its core, it provides a class decorator metaprogramming framework that intercepts class creation to rewrite the class body, producing dunder methods without manual boilerplate. The library includes a comprehensive attribute validation toolkit with built-in validators for type checks, range constraints, regex matching, length limits, and logical composition of validation rules.

The library distinguishes itself through its ability to create immutable and slotted class instances, where frozen instances prevent attribute mutation after initialization and slot-based memory layout stores attributes in a compact C-level array instead of a dictionary, reducing memory overhead and improving access speed. It also offers a command-line argument parser that maps each attribute of a class definition to a CLI flag, generating a type-safe argument parser from the class structure. Additional differentiators include a converter chain pipeline that transforms attribute values through callable converters during initialization, inheritance-aware attribute resolution that merges definitions from parent classes, and support for structural pattern matching on Python 3.10 and later.

The broader capability surface covers object serialization and deserialization, converting class instances to and from dictionaries, tuples, JSON, MessagePack, YAML, and TOML formats with support for nested object models and binary encoding. The library provides hooks into the initialization lifecycle, attribute setting, and class creation process, along with tools for dynamic class creation, configuration management, and integration with static type checkers through PEP 681 dataclass transform markers.

## Tags

### Data & Databases

- [Python Data Class Declarations](https://awesome-repositories.com/f/data-databases/data-structure-definitions/data-class-generators/kotlin-data-class-declarations/python-data-class-declarations.md) — Lists attributes and automatically generates initialization, representation, equality, and hashing methods. ([source](https://www.attrs.org/en/stable/why.html))
- [Attribute Value Converters](https://awesome-repositories.com/f/data-databases/data-source-definitions/field-definitions/custom-field-type-definitions/field-value-converters/attribute-value-converters.md) — Applies converter functions to normalize or transform attribute values during initialization with instance context. ([source](https://www.attrs.org/en/stable/init.html))
- [Data Class Generators](https://awesome-repositories.com/f/data-databases/data-structure-definitions/data-class-generators.md) — Automatically generates __init__, __repr__, __eq__, __hash__, and ordering methods from declarative attribute definitions. ([source](https://www.attrs.org/en/stable/why.html))
- [Value Comparators](https://awesome-repositories.com/f/data-databases/value-comparators.md) — Generates equality methods comparing instances by type and all field values. ([source](https://www.attrs.org/en/stable/comparison.html))
- [Instance Copy Functions](https://awesome-repositories.com/f/data-databases/zero-copy-cloning/deep-class-instance-cloning/data-class-copy-functions/instance-copy-functions.md) — Creates a modified copy of an existing instance by specifying which attribute values to change. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Type-Converter Pipelines](https://awesome-repositories.com/f/data-databases/custom-type-converters/type-converter-pipelines.md) — Ships a converter chain pipeline that transforms attribute values through callable converters during initialization.
- [Class Instance to Dict Converters](https://awesome-repositories.com/f/data-databases/data-export/model-to-dictionary-serialization/class-instance-to-dict-converters.md) — Converts class instances to plain dictionaries or tuples for serialization and inspection. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Class Instance JSON](https://awesome-repositories.com/f/data-databases/high-performance-binary-serialization/messagepack-serializers/class-instance-json.md) — Encodes class instances into JSON, MessagePack, YAML, or TOML and decodes them back with validation. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Default Value Assignments](https://awesome-repositories.com/f/data-databases/key-value-stores/default-value-assignments.md) — Assigns default values to attributes, including mutable defaults, used when no value is provided during construction. ([source](https://www.attrs.org/en/stable/why.html))
- [Class Instance to Plain Object Converters](https://awesome-repositories.com/f/data-databases/ordered-data-structures/ordered-collection-literals/object-collection-processors/object-transformation/class-instance-to-plain-object-converters.md) — Converts class instances into plain dictionaries for serialization or inspection. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Instance-Aware Converters](https://awesome-repositories.com/f/data-databases/ordered-data-structures/ordered-collection-literals/object-collection-processors/object-transformation/class-instance-to-plain-object-converters/instance-aware-converters.md) — Provides instance-aware converters that receive the current instance during conversion. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Python Class Instance to Dict Converters](https://awesome-repositories.com/f/data-databases/ordered-data-structures/ordered-collection-literals/object-collection-processors/object-transformation/class-instance-to-plain-object-converters/python-class-instance-to-dict-converters.md) — Converts attrs class instances to and from plain Python dictionaries with high performance. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Python Dict to Class Instance Converters](https://awesome-repositories.com/f/data-databases/ordered-data-structures/ordered-collection-literals/object-collection-processors/object-transformation/plain-object-to-class-instance-converters/python-dict-to-class-instance-converters.md) — Converts plain Python dictionaries into typed attrs class instances and reverses the process. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Class Instance to Dict Converters](https://awesome-repositories.com/f/data-databases/unstructured-data-transformation-tools/class-instance-to-dict-converters.md) — Converts class instances to plain Python dictionaries and reconstructs them from dictionaries for interchange. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Pickle and Copy Compatibilities](https://awesome-repositories.com/f/data-databases/zero-copy-cloning/deep-class-instance-cloning/data-class-copy-functions/instance-copy-functions/pickle-and-copy-compatibilities.md) — Enables pickling, deep copying, and shallow copying of instances, including slotted and frozen classes. ([source](https://www.attrs.org/en/stable/changelog.html))

### Programming Languages & Runtimes

- [Declarative Attribute Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/class-method-definitions/class-definitions-with-constructors/declarative-attribute-definitions.md) — Declares attributes via decorator and type annotations, then automatically generates initializer, repr, and equality methods. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Class Attribute Management](https://awesome-repositories.com/f/programming-languages-runtimes/class-attribute-management.md) — Declares attributes and automatically generates initialization, representation, equality, and hashing methods. ([source](https://www.attrs.org/en/stable/why.html))
- [Class Inheritance](https://awesome-repositories.com/f/programming-languages-runtimes/class-inheritance.md) — Allows subclasses to inherit, override, or extend attribute definitions from parent classes. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Per-Instance Mutable Defaults](https://awesome-repositories.com/f/programming-languages-runtimes/function-argument-passing/default-arguments/mutable-default-argument-guards/per-instance-mutable-defaults.md) — Provides per-instance mutable default values via factory functions, avoiding shared-state bugs in data classes. ([source](https://www.attrs.org/en/stable/why.html))
- [Instance Variable Initializers](https://awesome-repositories.com/f/programming-languages-runtimes/instance-initialization-hooks/instance-variable-initializers.md) — Generates an initializer method from declared attributes, eliminating manual assignment of instance variables. ([source](https://www.attrs.org/en/stable/))
- [Struct Methods and Operators](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/struct-generators/struct-property-accessors/struct-methods-and-operators.md) — Automatically generates ordering methods (__lt__, __le__, __gt__, __ge__) from declared attributes. ([source](https://www.attrs.org/en/stable/why.html))
- [Slotted Class Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/slotted-class-definitions.md) — Creates classes that store attributes in slots instead of a dictionary, reducing memory usage. ([source](https://www.attrs.org/en/latest/glossary.html))
- [Frozen Instance Builders](https://awesome-repositories.com/f/programming-languages-runtimes/slotted-class-definitions/frozen-instance-builders.md) — Builds frozen instances with hash caching and slotted classes for memory efficiency.
- [Slotted](https://awesome-repositories.com/f/programming-languages-runtimes/slotted-class-definitions/frozen-instance-builders/slotted.md) — Builds memory-efficient or frozen instances that prevent attribute mutation and use slots for faster access and reduced overhead.
- [Type Annotations](https://awesome-repositories.com/f/programming-languages-runtimes/type-annotations/type-annotations.md) — Infers attribute types and defaults from variable annotations, a core feature of the library. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Boilerplate Object Methods](https://awesome-repositories.com/f/programming-languages-runtimes/type-methods/boilerplate-object-methods.md) — Automatically generates initialization, representation, equality, and hashing methods from declared attributes. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Generated Method Overrides](https://awesome-repositories.com/f/programming-languages-runtimes/type-methods/boilerplate-object-methods/generated-method-overrides.md) — Generates string representation methods for class instances, a core feature of the library. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Attribute Mutability Controls](https://awesome-repositories.com/f/programming-languages-runtimes/class-attribute-management/attribute-mutability-controls.md) — Marks individual attributes or entire classes as immutable, preventing accidental modification after initialization. ([source](https://www.attrs.org/en/stable/why.html))
- [Dict-Based Class Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/class-attribute-management/dict-based-class-definitions.md) — Creates regular classes that store attributes in each instance's dictionary for dynamic attribute assignment. ([source](https://www.attrs.org/en/latest/glossary.html))
- [Factory Functions](https://awesome-repositories.com/f/programming-languages-runtimes/class-instantiation/factory-functions.md) — Creates named constructors or factory methods as classmethods to decouple instantiation from external data sources. ([source](https://www.attrs.org/en/stable/init.html))
- [Dynamic Class Creation](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation.md) — Builds new classes at runtime with a given name and attribute list using a factory function. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Runtime Class Constructors](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/runtime-class-constructors.md) — Creates classes dynamically at runtime by specifying attribute names and types with optional base classes. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Hashable Object Generators](https://awesome-repositories.com/f/programming-languages-runtimes/hashable-object-generators.md) — Generates hash methods for objects, enabling their use as dictionary keys or set members. ([source](https://www.attrs.org/en/stable/))
- [Object Serialization](https://awesome-repositories.com/f/programming-languages-runtimes/object-serialization.md) — Converts class instances to and from dictionaries, tuples, JSON, and other formats.
- [Special Type Equality Handlers](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structure-utilities/deep-equality-checking/special-type-equality-handlers.md) — Provides customizable equality logic for special types like NumPy arrays during instance comparison. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Structural Pattern Matching](https://awesome-repositories.com/f/programming-languages-runtimes/structural-pattern-matching.md) — Generates match arguments to enable structural pattern matching on instances in Python 3.10+. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Annotation-Free Attribute Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/type-annotations/type-annotations/annotation-free-attribute-definitions.md) — Assigns attributes using field calls instead of type annotations, keeping auto-generated methods while omitting type hints. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Named Argument Invocations](https://awesome-repositories.com/f/programming-languages-runtimes/type-methods/named-argument-invocations.md) — Renames public argument names in the generated initializer to support private attributes or arbitrary aliases. ([source](https://www.attrs.org/en/stable/init.html))
- [Init Argument Aliases](https://awesome-repositories.com/f/programming-languages-runtimes/type-methods/named-argument-invocations/init-argument-aliases.md) — Allows custom aliases for initializer parameter names, a notable feature. ([source](https://www.attrs.org/en/stable/changelog.html))

### Software Engineering & Architecture

- [Data Class Decorators](https://awesome-repositories.com/f/software-engineering-architecture/decorator-based-validation/data-class-decorators.md) — Provides the core decorator and field API for defining data classes with validators, converters, and defaults.
- [Inline Validator Factories](https://awesome-repositories.com/f/software-engineering-architecture/callable-factories/instance-aware-factory-defaults/inline-validator-factories.md) — Defines validators and default factories using decorator syntax directly on the attribute declaration. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Comparison Method Generators](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/dynamic-method-generation/comparison-method-generators.md) — Automatically creates ordering methods for a class based on its attributes. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Default Configuration Values](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values.md) — Sets default values for class attributes using static values, factory functions, or decorator-based methods. ([source](https://www.attrs.org/en/stable/init.html))
- [Attribute Default Values](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/attribute-default-values.md) — Sets default values for class attributes using static values, factory functions, or decorator-based methods. ([source](https://www.attrs.org/en/stable/init.html))
- [Equality and Ordering Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/equality-and-ordering-interfaces.md) — Generates equality and ordering methods based on selected attributes for comparing and sorting instances. ([source](https://www.attrs.org/en/stable/why.html))
- [Python Descriptors](https://awesome-repositories.com/f/software-engineering-architecture/python-descriptors.md) — Implements Python descriptor protocol to control attribute access, initialization, and validation.
- [Pre-Assignment Value Validations](https://awesome-repositories.com/f/software-engineering-architecture/runtime-value-validation/allowed-value-validations/single-value-validators/pre-assignment-value-validations.md) — Runs user-defined validator functions each time an attribute is set, catching invalid data early and preventing corrupt object state. ([source](https://www.attrs.org/en/stable/why.html))
- [Immutable Instance Enforcers](https://awesome-repositories.com/f/software-engineering-architecture/service-configuration/scoped-service-instances/parameterized-mutation-instances/immutable-instance-enforcers.md) — Enforces frozen instances by overriding __setattr__ and __delattr__ to raise exceptions on modification attempts.
- [Class Instance JSON Serializers](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-tools/internal-tree-representations/json-serializers/dom-to-json-serialization/class-instance-json-serializers.md) — Provides serialization of class instances to JSON and other structured text formats with validation. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Instance-Aware Factory Defaults](https://awesome-repositories.com/f/software-engineering-architecture/callable-factories/instance-aware-factory-defaults.md) — Supports factory defaults that receive the partially initialized instance for computed defaults. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Custom Comparison Logic](https://awesome-repositories.com/f/software-engineering-architecture/custom-comparison-logic.md) — Excludes specific fields from equality or ordering checks, or applies custom key functions for comparison. ([source](https://www.attrs.org/en/stable/comparison.html))
- [Special Type Equality Handlers](https://awesome-repositories.com/f/software-engineering-architecture/custom-equality-definitions/special-type-equality-handlers.md) — Generates equality checks that correctly handle special types like NumPy arrays for accurate comparisons. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Type-Annotation Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation/type-annotation-validation.md) — Reads PEP 484 type hints from class annotations to automatically determine attribute types and generate validators.
- [Deep Equality Comparison](https://awesome-repositories.com/f/software-engineering-architecture/deep-equality-comparison.md) — Defines which attributes participate in equality checks and how they are compared, overriding default all-attribute comparison. ([source](https://www.attrs.org/en/stable/why.html))
- [Computed Attribute Derivation](https://awesome-repositories.com/f/software-engineering-architecture/deterministic-attribute-derivation/computed-attribute-derivation.md) — Computes attribute values based on other attributes using post-initialization hooks or decorator-based defaults. ([source](https://www.attrs.org/en/stable/init.html))
- [Slot-Based Instance Layouts](https://awesome-repositories.com/f/software-engineering-architecture/memory-layout-optimizations/slot-based-instance-layouts.md) — Stores instance attributes in slots instead of dictionaries, reducing memory overhead and improving access speed.
- [Nested Object Serializers](https://awesome-repositories.com/f/software-engineering-architecture/nested-type-modeling/nested-object-serializers.md) — Creates hierarchical object structures that serialize and deserialize nested child objects automatically. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Nested Object Serializers](https://awesome-repositories.com/f/software-engineering-architecture/object-oriented-models/object-oriented-modeling/message-object-models/nested-object-serializers.md) — Defines hierarchical data models where child objects automatically serialize and deserialize alongside their parent. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Validator Composition](https://awesome-repositories.com/f/software-engineering-architecture/runtime-value-validation/allowed-value-validations/single-value-validators/validator-composition.md) — Combines multiple validators into a single validator using logical AND, OR, or NOT operations. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Sentinel Value Patterns](https://awesome-repositories.com/f/software-engineering-architecture/sentinel-value-patterns.md) — Uses a sentinel value to indicate the absence of a value, a notable feature for attribute defaults. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Validator Composition](https://awesome-repositories.com/f/software-engineering-architecture/validator-composition.md) — Combines multiple validation functions using logical operators to create complex validation rules.

### Part of an Awesome List

- [Attribute Validations](https://awesome-repositories.com/f/awesome-lists/ai/model-validation/attribute-validations.md) — Attaches validation logic to individual attributes that runs during initialization. ([source](https://www.attrs.org/en/stable/why.html))
- [Built-in Validator Libraries](https://awesome-repositories.com/f/awesome-lists/ai/model-validation/attribute-validations/built-in-validator-libraries.md) — Ships a comprehensive set of built-in validators for type, range, regex, and length checks.
- [Custom Attribute Rule Validations](https://awesome-repositories.com/f/awesome-lists/ai/model-validation/attribute-validations/custom-attribute-rule-validations.md) — Applies user-defined validation functions to attributes with configurable error messages. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Serialization and Encoding](https://awesome-repositories.com/f/awesome-lists/data/serialization-and-encoding.md) — Converts class instances to and from dictionaries, tuples, JSON, and other formats.
- [General Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/general-utilities.md) — Boilerplate-free class definition and data structure management.
- [Language Extensions](https://awesome-repositories.com/f/awesome-lists/devtools/language-extensions.md) — Reduces boilerplate code in class definitions.

### Development Tools & Productivity

- [Attribute Initialization Customizations](https://awesome-repositories.com/f/development-tools-productivity/attribute-initialization-customizations.md) — Controls attribute initialization via defaults, factory functions, and hooks that plug into the class creation process. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
- [Attribute Metadata Annotations](https://awesome-repositories.com/f/development-tools-productivity/attribute-metadata-annotations.md) — Attaches custom metadata to each attribute so external tools can read it for serialization or validation. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Class Behavior Hooks](https://awesome-repositories.com/f/development-tools-productivity/class-behavior-hooks.md) — Provides hooks for customizing attribute processing during class creation and initialization. ([source](https://www.attrs.org/en/stable/))
- [Command-Line Argument Parsers](https://awesome-repositories.com/f/development-tools-productivity/command-line-argument-parsers.md) — Generates a type-safe command-line argument parser directly from class attribute definitions. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Typed Configuration Classes](https://awesome-repositories.com/f/development-tools-productivity/configuration-generators/typed-configuration-classes.md) — Wraps classes to load typed, stateful configuration parameters from files or environment variables. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))
- [Initializer Argument Name Aliases](https://awesome-repositories.com/f/development-tools-productivity/initializer-argument-name-aliases.md) — Controls parameter names in the generated initializer, including stripping underscores or setting explicit aliases. ([source](https://www.attrs.org/en/stable/init.html))

### Security & Cryptography

- [Dunder Method Detection](https://awesome-repositories.com/f/security-cryptography/alternative-authentication-methods/authentication-method-configurations/automatic-method-inferrers/dunder-method-detection.md) — Provides automatic detection of user-defined dunder methods to prevent redundant generation. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Attribute Value Validation](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/access-control-models/attribute-based-access-controls/attribute-value-validation.md) — Checks attribute values against built-in or custom validators, including type checks, range checks, and regex matching. ([source](https://www.attrs.org/en/stable/why.html))
- [Object Hash Generators](https://awesome-repositories.com/f/security-cryptography/md5-hash-generation/object-hash-generators.md) — Generates hash methods for class instances, a core feature of the library. ([source](https://www.attrs.org/en/stable/changelog.html))

### User Interface & Experience

- [Attribute-Based Instance Ordering](https://awesome-repositories.com/f/user-interface-experience/attribute-based-sorting/attribute-based-instance-ordering.md) — Generates comparison methods (__eq__, __ne__, __lt__, etc.) based on declared attributes with customization. ([source](https://www.attrs.org/en/stable/))
- [Class Body Rewriting Decorators](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/rendering-models/composition-rendering-patterns/component-patterns/class-components/class-decorators/class-body-rewriting-decorators.md) — Provides a decorator that rewrites class bodies to auto-generate initialization and comparison methods.
- [Initialization Hooks](https://awesome-repositories.com/f/user-interface-experience/component-initialization/initialization-hooks.md) — Runs custom pre- or post-initialization hooks during instance creation. ([source](https://www.attrs.org/en/stable/init.html))
- [Attribute Value Converters](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/data-binding-syntax/html-attribute-bindings/html-attribute-bindings/attribute-converters/attribute-value-converters.md) — Applies converter functions to attribute values during initialization for normalization. ([source](https://www.attrs.org/en/stable/why.html))
- [Initialization Value Converters](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/data-binding-syntax/html-attribute-bindings/html-attribute-bindings/attribute-converters/initialization-value-converters.md) — Applies converter functions to attribute values during initialization for type transformation. ([source](https://www.attrs.org/en/stable/why.html))

### Web Development

- [Custom Attribute Validators](https://awesome-repositories.com/f/web-development/custom-data-attributes/custom-attribute-validators.md) — Checks attribute values against type constraints, custom validators, and logical combinations during instance creation.
- [Attribute Setting Hooks](https://awesome-repositories.com/f/web-development/attribute-binding/attribute-lifecycle-hooks/attribute-setting-hooks.md) — Runs custom callbacks on attribute assignment for validation, conversion, or freezing. ([source](https://www.attrs.org/en/stable/changelog.html))
- [Attribute Merging from Parent Classes](https://awesome-repositories.com/f/web-development/attribute-inheritance/attribute-merging-from-parent-classes.md) — Merges attribute definitions from parent classes with child declarations, resolving conflicts during class creation.
- [Comparison Attribute Selectors](https://awesome-repositories.com/f/web-development/custom-data-attributes/custom-attribute-validators/custom-attribute-handlers/comparison-attribute-selectors.md) — Configures which attributes participate in equality and ordering checks and how they compare. ([source](https://www.attrs.org/en/stable/why.html))
- [Custom Comparison Functions](https://awesome-repositories.com/f/web-development/custom-data-attributes/custom-attribute-validators/custom-attribute-handlers/comparison-attribute-selectors/custom-comparison-functions.md) — Customizes equality and ordering comparison for individual attributes using a callable. ([source](https://www.attrs.org/en/stable/changelog.html))

### Networking & Communication

- [Class Instance Multi-Format Serializers](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/contract-data-decoders/built-in-format-decoders/class-instance-multi-format-serializers.md) — Encodes and decodes class instances using JSON, MessagePack, YAML, or TOML with built-in validation. ([source](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs))

### Testing & Quality Assurance

- [Special Type Equality Handlers](https://awesome-repositories.com/f/testing-quality-assurance/array-equality-comparison/special-type-equality-handlers.md) — Customizes equality checks to handle special types like NumPy arrays correctly during instance comparison. ([source](https://cdn.jsdelivr.net/gh/python-attrs/attrs@main/README.md))
