attrs seems to be all over the place, but I find Schematics (http://schematics.readthedocs.io/en/latest/) much better designed and more powerful.
My understanding is that the main reason is to make constructors more flexible, with arguments like _raw_data_, _trusted_data_ etc. But it is trivial to write a simple helper function that would accept keyword pairs and build a model instance.