Это у меня и так прикручено. Ридонли я могу сделать или одним флагом, который сменит сеттер на поднятие ошибки в переменной, или подменяя объект переменной таким же, но с переопределенным присвоением на опять же NotImplementedError
У тебя это используется неявно) так и хочется переписать и сделать пуллреквест)