I think that this should be replaced by a `WriteOnce` descriptor (as per http://nedbatchelder.com/blog/201306/explaining_descriptors.html). Basically, this would encode the notion of 'this is a field that should only get assigned to once', and then we can just assign that decoratively at the class level, replacing all of the 'set_*' methods.