characteristic is a Python package with class decorators that ease the chores of implementing the most common attribute-related object protocols. You just specify the attributes to work with and characteristic gives you any or all of: a nice human-readable __repr__, a complete set of comparison methods, immutability for attributes, and a kwargs-based initializer without writing dull boilerplate code again and again. WWW: https://github.com/hynek/characteristic