Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Clarify next-gen auto_attribs inference rules (#742)
* Clarify next-gen auto_attribs inference rules The next-gen auto_attribs api documentation does not clearly describe cases where (a) only a subset of attributes are annotated and (b) `field` definitions are provided for a subset of fields. Update docstring to reflect current, desirable, behavior. Add tests to clarify `.define` behavior focused on fully-annotated classes with partially-defined fields, which is commonly used to add non-default behavior to a subset of a classes fields. For example: ```python @attr.define class NewSchool: x: int y: list = attr.field() @y.validator def _validate_y(self, attribute, value): if value < 0: raise ValueError("y must be positive") ``` The previous docstring *could* be read to imply that: * The new-school API will not infer auto_attribs if there are any unannotated attributes. * The new-school API will not infer auto_attribs if *any* attr.ib are defined, even if those attr.ibs are type annotated. * Update test to match PR example * Fix lint error Co-authored-by: Hynek Schlawack <[email protected]>
- Loading branch information