Defensive DRY Python properties without the boilerplate
copied from cf-staging / pypropropPyproprop lets you write classes that contain lots of repetitive properties which implement idioms such as type checking, bounds checking, type casting, method applications etc. with ease and in a DRY manner.