It's easy to do immutability in python, just use NamedTuple for classes and tuple instead of list
(Specifically avoid namedtuples unless you're hoisting a tuple to a real record. Record types also being a weird union with a tuple is...oft confusing)
For immutable basic data types, adopt type annotations and prefer to use sequence/iterable and mapping to direct didn't/list types. These provide statically verifiable immutability and also allow begin to encourage useful async-friendly patterns.
[1]: https://www.python.org/dev/peps/pep-0591/For non-primitive members, `frozenset` is in the standard library, but frozen dictionaries are unfortunately lacking.
Would Thursday be a good time to checkpoint on this?
Thank you so much.